Docker,docker-compose命令列表
要做的事情 zuò de
每当我操作Docker和docker-compose时,即使是一些基本的事情,我都觉得每次都要查看参考文档或他人的文章,所以我将基本功能总结在一张表格中,以便能够一瞬间掌握所有基本知识。这基本上是为了自己而做的。
※網羅出来ていないので、随時更新していきます。
环境
docker 20.10.7
docker-compose 1.29.2
※截至2021年7月5日,这是当前最新版本。
Docker命令
使用图像、容器名称等
今回は、pythonのイメージを使用しコンテナ名はmycontainerとします。
種類使用イメージタグ備考イメージpythonlatestDockerhubのpythonのイメージ。最近は軽いと評判のalpine多め。コンテナ名mycontainer—コンテナ名です
構築・起動系
コマンド名イメージ作成コンテナ作成起動停止例備考pull〇×××docker pull pythonタグ指定無しでlatestを取得。デフォルトはdockerhubからだが、別のレジストリからも取得可能。build〇×××docker build -t python:latest .Dockerfileからイメージを構築。-tオプションでimage名を指定出来る。create×〇××docker create -t -p 8000:8000 –name myproject -v C:\Users\user\myproject:/home/myproject python:latestコンテナを作成する。-tで疑似ターミナルを割り当て起動し続ける。-pでホスト側に公開するポートを指定、-vでマウントするパスを指定、nameでコンテナ名指定。最後にオプション無しでイメージを指定。run×〇〇×docker run (createとオプションはほぼ同じ)python:latest起動までしてくれる。オプションはcreateに似てる。start××〇×docker start mycontainer指定コンテナの起動stop×××〇docker stop mycontainer指定コンテナの停止pause×××〇※1docker pause mycontainer※1.指定コンテナの一時停止unpause××〇※2×docker unpause mycontainer※2.一時停止した指定コンテナの再開restart××〇×docker restart mycontainer指定コンテナの再起動kill×××〇※4docker kill mycontainer※4. 指定のコンテナを停止する。-sでシグナルも指定出来る。デフォルトはSIGKILL。
连接系统
コマンド名接続切断例備考exec〇×docker exec -it mycontainer bashbashでエラー吐くなら、shか/bin/shを使用する。
确认名称
コマンド名確認内容例備考psコンテナ一覧docker ps -a-aで全てのコンテナを表示。オプション無しで起動しているものを表示。imagesイメージ一覧docker images-aで中間コンテナも表示する。オプション無しだと中間コンテナは非表示。statsリソース状態docker stats mycontainerコンテナのリソース状態をリアルタイム監視出来る。コンテナ指定無しで-aを付けると全てのコンテナが対象。diffファイルの変更分の差分docker diff mycontainerファイルシステムで変更したところを出力してくれる。top実行中のプロセスdocker top mycontainerコンテナで実行中のプロセスを表示。infoシステムの広範囲な情報docker infoシステム情報を表示。logsコンテナのログの出力docker logs mycontainer -f-fでリアルタイムで出力し続ける。historyイメージの履歴の出力docker history python:latestイメージの履歴の出力。searchイメージの検索docker search –limit=100 djangodjangoという単語でDocker Hubからイメージを検索する。–limitで出力結果の最大数を決められる。eventsリアルタイムでイベントの監視docker eventsdockerシステムのイベントを監視する。オプションで時間指定や、出力結果のフィルタも指定可能。
整理系 -> 整理系統
コマンド名用途例備考rmコンテナ削除docker rm mycontainer-fで強制的に削除、-lでリンクを削除、-vで紐づけられたボリューム削除。rmiイメージ削除docker rmi python:latest-fで強制的に削除renameコンテナ名変更docker rename mycontainer newMyContainer古い名前の次に新しい名前を入力する。tagイメージにタグ付けdocker tag ed45d5bb6847 python:mypythondocker tag 【ソース】 【ターゲット】で指定する。ソースのところはイメージ名でも可、ターゲットはプライベートリポジトリとかも可。
docker-compose命令
作为示例,docker-compose.yml文件中的服务名称将如下所示。
version: '3.8'
services:
api:
# 省略
web:
# 省略
在整个过程中,docker-compose命令将针对docker-compose.yml文件中的services进行操作。在这种情况下,操作的是api和web。
构建和启动系统
コマンド名イメージ作成コンテナ作成起動停止例備考pull〇×××docker-compose pull全てのサービスのイメージを取得する。サービス名指定も出来る。build〇×××docker-compose build今いるディレクトリのdocker-compose.ymlを元にビルドする。up〇〇〇×docker-compose -f docker-compose-dev.yml up -d-fでファイル名指定出来る。-dでバックグラウンドでコンテナを起動する。デフォルトでイメージが無かったらビルドしてくれるが、–buildオプション付けてと怒られる。ビルドしない指定なども可能。down×××〇※1docker-compose down※1. コンテナの停止~削除まで行う。起動してなかったら削除のみ行う。start××〇×docker-compose start既存の指定コンテナ起動stop×××〇docker-compose stop既存の指定コンテナ停止restart××〇×docker-compose restart停止中あるいは実行中の既存の指定コンテナの再起動をする。pause×××〇※2docker-compose pause※2. 起動中のコンテナを一時停止状態にする。unpause××〇※3×docker-compose unpause※3. 一時停止状態のコンテナを起動する。kill×××〇※4docker-compose kill※4. 実行中のコンテナを強制終了させる。-sオプションでコンテナに送信するシグナルを指定出来る。デフォルトはSIGKILL。
连接系统
コマンド名接続切断例備考exec〇×docker-compose exec api bashdocker execと同じ。こちらはサービス名を指定して接続できる。-Tオプションは無くても平気。bashでエラー吐くなら、shか/bin/shを使用する。
启动连接
コマンド名コンテナ起動接続例備考run〇〇docker-compose run –rm api bash1つのサービスに対して、1コマンドを実行出来る。この場合だとapiというサービスにbashコマンドを実行し、起動から接続まで行える。抜け出すとコンテナは停止状態になっている。–rmオプションで起動したらコンテナを削除する。付けないとrunする度にコンテナが生成されるため付けておく。
確認系 -> 确认系统
コマンド名確認内容例備考psコンテナ一覧docker-compose ps指定のコンテナ一覧port公開ポートdocker-compose port api 8000「サービス名 port」と指定すると公開されるip:portを表示。logsログdocker-compose logs -f-fでリアルタイムでログを監視出来る。imagesイメージ一覧docker-compose images生成済みコンテナで利用しているイメージ一覧を表示。configComposeファイルの検証docker-compose config –services–servicesでサービス一覧のみを表示。オプション無しで検証して表示。top実行中のプロセスdocker-compose top実行中のプロセスの表示。helpヘルプの表示docker-compose helpヘルプ表示events各コンテナのイベントの監視docker-compose events入力すると受信状態になり、別端末からコマンドを打ったりするとイベントが確認出来る。
整理专业
コマンド名削除対象例備考rmコンテナdocker-compose rm停止中のコンテナの削除
其他
コマンド名内容例備考bundleDABの作成docker-compose bundleComposeファイルから分散アプリケーションバンドル(Distributed Application Bundle;DAB)を作成する。