Dockerコマンドの学習を1つの記事にまとめる

Dockerコマンドの学習を1つの記事にまとめる

導入

Docker コマンドは、使用コマンドと管理コマンドに分かれています。この記事では、他の人の学習を容易にし、自分自身で確認して使用できるように、Docker の使用コマンドと管理コマンドのサンプルプロンプトをまとめ、提供します。

Docker は、さまざまなリンクで使用されるコマンドを提供するだけでなく、HTTP を使用して Docker と対話し、独自の Docker を開発するための DockerAPI も提供します。

コマンドが多すぎるため、すべてのコマンドを事前に理解できるように、以下に大まかなリストを示します。その後、わからないコマンドをクリックしてください。

管理コマンド:
 コンテナはコンテナを管理します。イメージはイメージを管理します。ネットワークはネットワークを管理します。ノードは Swarm ノードを管理します。プラグインはプラグインを管理します。シークレットは Docker シークレットを管理します。
 サービス管理 サービススタック管理 Dockerスタック
 swarm は Swarm クラスターを管理します。system はシステム情報を表示します。volume は次のようなボリュームを管理します: docker container ls はすべてのコンテナーを表示します。一般的なコマンド:
 
 // 開発者は以下のスキルを習得している必要があります:
 images イメージリストを表示します rmi イメージを削除します save 指定されたイメージを tar アーカイブとして保存します load アーカイブまたは STDIN からイメージをロードします build DockerFile からイメージをビルドします commit コンテナからイメージを作成します create コンテナを作成します run 新しいコンテナを作成し、コマンドを実行します rename コンテナの名前を変更します start コンテナを起動します stop コンテナを停止します restart コンテナを再起動します rm コンテナを削除します logs コンテナのログを取得します exec 実行中のコンテナでコマンドを実行します cp コンテナとホストファイルシステム間でファイルをコピーします ps コンテナリストを表示します // 運用と保守では次のスキルが必要です: 
 login Docker イメージ リポジトリにログインします logout Docker イメージ リポジトリを終了します search Docker Hub からイメージを検索します pull イメージ リポジトリからイメージをプルします push ローカル イメージをイメージ リポジトリにアップロードします。まずイメージ リポジトリにログインする必要があります tag ローカル イメージにタグを付け、特定のリポジトリに割り当てます export コンテナーのファイル システムを tar アーカイブとしてエクスポートします import アーカイブ ファイルからイメージを作成します info システム全体の情報を表示します version Docker のバージョン情報を表示します stats コンテナーのリソース使用状況に関する (リアルタイムの) 統計情報を表示します inspect Docker オブジェクトに関する低レベルの情報を表示します (オブジェクトの詳細を表示)
 diff はコンテナファイルシステムの変更を表示します (コンテナの変更を表示)
 events はサーバーからのリアルタイムイベントを表示します(docker で変更を表示できます)
 ポート コンテナのポートマッピングのリストまたは特定のマッピングを表示します (ポートビュー)
 top はコンテナ内で実行中のプロセスを表示します (プロセスの表示)
 history はイメージの履歴を表示します。attach は実行中のコンテナに入ります。pause は 1 つ以上のコンテナ内のすべてのプロセスを一時停止します。unpause はコンテナ内のすべてのプロセスを再開します。kill は実行中のコンテナを強制終了します。wait はコンテナが停止するまでブロックし、終了コードを出力します。update はコンテナの設定を更新します。

ミラーリポジトリ

ログイン

dockerlogin: Dockerイメージリポジトリにログインします。イメージリポジトリのアドレスが指定されていない場合、デフォルトは公式リポジトリDocker Hubです。

docker logout : Docker イメージ リポジトリからログアウトします。イメージ リポジトリのアドレスが指定されていない場合、デフォルトは公式リポジトリ Docker Hub です。

文法:

docker ログイン/ログアウト (-$) [サーバー]

-u ログインユーザー名

-p ログインパスワード

例:

Docker Hubにログイン

dockerログイン -u ユーザー名 -p パスワード

Docker Hubからログアウトする

docker ログアウト

引く

dockerpull: イメージリポジトリから指定されたイメージをプルまたは更新します

文法:

docker pull (-$) 名前[:タグ|@DIGEST]

-a,all タグ付けされたすべてのイメージを取得します

--disable-content-trust イメージ検証を無視します。デフォルトで有効になっています

例:

Docker Hub から最新の Java イメージをダウンロードします。

docker プル java

Docker Hub から REPOSITORY java を含むすべてのイメージをダウンロードします。

docker pull -a java

押す

docker push: ローカルイメージをイメージウェアハウスにアップロードするには、まずイメージウェアハウスにログインする必要があります。

文法:

docker push (-$) 名前[:タグ]

--disable-content-trust イメージ検証を無視します。デフォルトで有効になっています

例:

ローカルイメージmyapache:v1をイメージリポジトリにアップロードします。

docker プッシュ myapache:v1

画像ライブラリをプライベートソースにプッシュする

docker push 192.168.0.100:5000/ubuntu

検索

docker search : Docker Hub からイメージを検索する

文法:

docker 検索 (-$) 用語

-automated は自動ビルドタイプのイメージのみをリストします。

--no-trunc 完全なイメージの説明を表示します。

-s 指定された値以上のコレクション数を持つイメージを一覧表示します。

例:

Docker Hub から、イメージ名に java が含まれ、お気に入りが 10 個以上あるすべてのイメージを検索します。

docker 検索 -s 10 java
runoob@runoob:~$ docker search -s 10 java
名前 説明 星 公式 自動化
java Java は並行型、クラスベースの... 1037 [OK] 
anapsix/alpine-java Oracle Java 8 (および 7) と GLIBC ... 115 [OK]
develar/java 46 [OK]
isuper/java-oracle このリポジトリにはすべての java が含まれています... 38 [OK]
lwieske/java-8 Oracle Java 8 コンテナ - フル + ... 27 [OK]
nimmis/java-centos これは CentOS 7...13 の Docker イメージです [OK]

ローカル画像管理

画像

docker images : ローカルイメージを一覧表示します。

文法:

docker イメージ (-$) [リポジトリ[:タグ]]

-a はすべてのローカルイメージを一覧表示します (中間イメージレイヤーを含む。デフォルトでは、中間イメージレイヤーは除外されます)

--digests イメージの概要情報を表示します

-f 条件を満たす画像を表示する

--format は戻り値のテンプレートファイルを指定します

--no-trunc 完全なイメージ情報を表示する

-q イメージ ID のみを表示します。

例:

役に立たない画像のクエリ

docker イメージ -f dangling=true

REPOSITORY が alpine であるローカルミラーのミラーリストを一覧表示します。

docker イメージ アルパイン
[root@master ~]# docker イメージ alpine
リポジトリ タグ イメージ ID 作成 サイズ
アルパイン 3.9 cdf98d1859c1 3か月前 5.53MB
アルパイン 最新 cdf98d1859c1 3か月前 5.53MB

rmi

docker rmi : 1 つ以上のローカル イメージを削除します。

文法:

docker rmi (-$)

-f, --force イメージの強制削除
--no-prune このイメージのプロセスイメージを削除しません。デフォルトで削除されます。

例:

すべての画像を削除

docker rmi $(docker イメージ -q)

イメージ名に「doss-api」を含むイメージを強制的に削除する

docker rmi --force $(docker イメージ | grep doss-api | awk '{print $3}')

不要なイメージを一括削除します (3 つの方法すべてが利用可能です。強制的に削除したい場合は、rmi の後に -f を追加してください)

docker rmi $(docker イメージ | grep "^" | awk "{print $3}")
docker イメージ | grep none | awk '{print $3}' | xargs docker rmi
docker rmi $(docker イメージ -f dangling=true)

タグ

docker tag: ローカルイメージにタグを付け、リポジトリに割り当てます。

文法:

docker タグ (-$​​) IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

例:

イメージ ubuntu:15.10 を runoob/ubuntu:v3 イメージとしてマークします。

docker タグ ubuntu:15.10 runoob/ubuntu:v3
root@runoob:~# docker tag ubuntu:15.10 runoob/ubuntu:v3
root@runoob:~# docker イメージ runoob/ubuntu:v3
リポジトリ タグ イメージ ID 作成 サイズ
runoob/ubuntu v3 4e3b13c8a266 3か月前 136.3 MB

建てる

docker build コマンドは、Dockerfile を使用してイメージを作成するために使用されます。

文法:

docker build (-$) PATH | URL | -

--build-arg=[] イメージ作成時に変数を設定する

--cpu-shares CPU使用率の重みを設定する

--cpu-period CPU CFS期間を制限する

--cpu-quota CPU CFS クォータを制限する

--cpuset-cpus は使用するCPU IDを指定します

--cpuset-mems は使用するメモリIDを指定します

--disable-content-trust 検証を無視します。デフォルトで有効になっています

-f は使用するDockerfileパスを指定します

--force-rm 中間コンテナを削除するイメージプロセスを設定します

--isolation コンテナ分離技術を使用する

--label=[] 画像で使用されるメタデータを設定します

-m は最大メモリ値を設定します

--memory-swap 最大スワップ値をメモリ + スワップに設定します。"-1" は無制限のスワップを意味します

--no-cache イメージ作成時にキャッシュを使用しない

--pull イメージの新しいバージョンを更新します

--quiet, -q クワイエットモード、成功した場合のみイメージIDを出力します

--rm イメージの設定に成功したら中間コンテナを削除します

--shm-size は /dev/shm のサイズを設定します。デフォルト値は 64M です。

--ulimit Ulimit の設定。

--tag, -t イメージの名前とタグ。通常は name:tag または name の形式です。1 回のビルドでイメージに複数のタグを設定できます。

--network デフォルトは default です。ビルド中にRUN命令のネットワークモードを設定する

例:

現在のディレクトリにある Dockerfile を使用して、タグ runoob/ubuntu:v1 を持つイメージを作成します。

Ubuntu 16.04 の場合、docker build を実行します。

URL github.com/creack/docker-firefox にある Dockerfile を使用してイメージを作成します。

docker ビルド github.com/creack/docker-firefox

-f を使用して Dockerfile ファイルの場所を渡すこともできます。

docker build -f /path/to/a/Dockerfile 。

Docker デーモンは、Dockerfile 内の命令を実行する前に、まず Dockerfile の構文チェックを実行し、構文エラーがある場合は以下を返します。

次のコマンドを実行して、docker build -t test/myapp を実行します。
 ビルド コンテキストを Docker デーモンに送信しています 2.048 kB
 デーモンからのエラー応答: 不明な命令: RUNCMD

歴史

docker history: 指定されたイメージの作成履歴を表示します。

文法:

docker 履歴 (-$) 画像

-H は画像のサイズと日付を読み取り可能な形式で出力します。デフォルトは true です。

--no-trunc 完全なコミット履歴を表示します。

-q コミット ID のみを一覧表示します。

保存

docker save : 指定されたイメージを tar アーカイブ ファイルとして保存します。

文法:

docker save (-$) イメージ [イメージ...]

-o ファイルに出力します。

例:

画像のエクスポート

docker save -o /root/mytomcat7.tar.gz docker.io/tomcat:7.0.77-jre7

または

docker 保存 docker.io/tomcat:7.0.77-jre7 >/root/mytomcat7.tar.gz

負荷

docker load : docker save コマンドを使用してエクスポートされたイメージをインポートします。

文法:

docker ロード (-$)

-i はエクスポートするファイルを指定します。

-q 簡潔な出力情報。

画像のインポート

docker load -i ubuntu.tar
docker load < ubuntu.tar
docker ロード < /root/mytomcat7.tar.gz 

輸入

docker import : アーカイブからイメージを作成します。

文法:

docker import (-$) ファイル|URL|- [リポジトリ[:タグ]]

-c, --change 作成されたイメージにDockerfileの指示を適用する

-m, --message インポートしたイメージの説明情報を設定します
--platform サーバーがマルチプラットフォーム対応の場合はプラットフォームを設定します

イメージアーカイブファイル my_ubuntu_v3.tar からイメージを作成し、runoob/ubuntu:v4 という名前を付けます。

runoob@runoob:~$ docker import my_ubuntu_v3.tar runoob/ubuntu:v4 
sha256:63ce4a6d6bc3fabb95dbd6c561404a309b7bdfc4e21c1d59fe9fe4299cbfea39
runoob@runoob:~$ docker イメージ runoob/ubuntu:v4
リポジトリ タグ イメージ ID 作成 サイズ
runoob/ubuntu v4 63ce4a6d6bc3 20 秒前 142.1 MB

コンテナオペレーション

追伸

dockerps : コンテナを一覧表示する

文法:

docker ps (-$)

-a, --all すべてのコンテナを表示します(デフォルトでは実行中のコンテナを表示します)

-n 最後に作成された n 個のコンテナを表示します (すべての状態を含む) (デフォルト -1)
例: docker ps -n2

-l, --latest 最後に作成されたコンテナを表示します(すべての状態を含む)

-q, --quiet 数値​​ ID のみ表示

-s, --size ファイルの合計サイズを表示

--no-trunc 出力を切り捨てない

-f, --filter 指定された基準に従って出力をフィルタリングします
フィルタリング条件は次のとおりです。
フィルター | 説明
---|---
id | コンテナのID
name | コンテナの名前
label | キーまたはキーと値のペアを表す任意の文字列。 <キー> または <キー>=<値> として表現されます
exited | コンテナの終了コードを表す整数。誰にとっても役立つものだけ。
ステータス | 作成済み、再起動中、実行中、削除中、一時停止中、終了、停止中
祖先|<image-name>[:<tag>],<image id>、<image@digest> などの指定されたイメージのコンテナをフィルタリングします
before または since | 指定したコンテナ ID または名前より前または後に作成されたコンテナをフィルターします
volume | 指定されたボリュームまたはバインドマウントがマウントされているコンテナーを実行するためのフィルター。
network | フィルターは、指定されたネットワークに接続されたコンテナを実行します。
公開または公開 | 特定のポートを公開または公開するコンテナーをフィルターします。例: <port>[/<proto>] または <startport-endport>/[<proto>]
health | 開始中、正常、異常、なしなどのヘルスチェックのステータスに基づいてコンテナーをフィルターします。
分離 | デフォルト、プロセス、hyperv などの Windows デーモンのみ。
is-task | サービスの「タスク」コンテナをフィルターします。ブールオプション(true または false)

例:
docker ps -f 名前=^'モダリティ'
docker ps --filter name=nginx
docker ps -a --filter 終了しました=0
docker ps --filter ステータス=実行中
docker ps --filter 公開 = 3306
--format Goテンプレートを使用してコンテナをきれいに印刷する
フィルタリング条件は次のとおりです。
プレースホルダー | 説明
---|---
.ID | コンテナのID
.Image | 画像ID
.コマンド | 引用コマンド
.CreatedAt | コンテナが作成された時刻
.RunningFor | コンテナが起動されてから実行されている時間
.Ports | 公開ポート
.Status | コンテナのステータス
.Size | コンテナのディスクサイズ
.Names | コンテナの名前
.Labels | コンテナに割り当てられたすべてのラベル
.Label | このコンテナの特定のラベルの値。例: `{{.Label "com.docker.swarm.cpu"}}`
.マウント | コンテナによってマウントされたボリューム
.Networks | コンテナが使用するネットワーク名

例:

docker ps --format "{{.ID}}: {{.Names}}: {{.Command}}"

一般的な監視コマンド:

最後の5つのコンテナをクエリする

ドッカーps -a -n=5

コンテナの数を監視する

docker ps -a -q | wc -l

実行中のコンテナの数

docker ps -q | wc -l

実行されていないコンテナの数

docker ps -a | grep -v 'Up ' | grep -v'コンテナ' | wc -l

検査する

docker inspect : コンテナ/イメージのメタデータを取得します。

文法:

docker examine (-$) NAME|ID [NAME|ID...]

-f 指定されたGoテンプレートを使用して出力をフォーマットする

-s タイプがコンテナの場合、ファイルの合計サイズを表示します

--type は指定されたタイプの JSON を返します。

例:

コンテナの再起動回数を表示する

docker examine -f "{{ .RestartCount }}" 名前

コンテナの最終起動時間を表示する

docker examine -f "{{ .State.StartedAt }}" 名前

すべてのポートバインディングを一覧表示する

docker examine --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' $INSTANCE_ID

実行中のコンテナmymysqlのIPを取得する

runoob@runoob:~$ docker examine --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mymysql
172.17.0.3

注: その他の例については、上記の公式ウェブサイトのリンクをクリックしてください。

トップ

docker top: ps コマンド パラメータをサポートし、コンテナ内で実行されているプロセス情報を表示します。

文法:

docker top コンテナ [ps オプション]

コンテナの実行中は、top コマンドを対話的に実行するための /bin/bash ターミナルが存在せず、コンテナに top コマンドがない場合があります。docker top を使用して、コンテナ内で実行中のプロセスを表示できます。

例:

mymysql コンテナのプロセス情報を表示します。

runoob@runoob:~/mysql$ docker top mymysql
UID PID PPID C STIME TTY 時間 コマンド
999 40347 40331 18 00:58 ? 00:00:02 mysqld

実行中のすべてのコンテナのプロセス情報を表示します。

for i in docker ps |grep Up|awk '{print $1}';do echo &&docker top $i; done

添付する

docker attach : 実行中のコンテナに接続し、ローカルの標準入力、出力、およびエラー ストリームを実行中のコンテナにアタッチします (個人的な理解では、リンクが実現された後にコマンドを使用してコンテナを制御します)

文法:

docker アタッチ (-$) コンテナ

--detach-keys コンテナをデタッチするためのキーシーケンスをオーバーライドします
--no-stdin STDINを添付しない
--sig-proxy 受信したすべてのプロセスシグナルをプロキシします (デフォルトは true)

アタッチするコンテナは実行中である必要があります。同時に同じコンテナに接続して画面を共有できます (screen コマンドでアタッチする場合と同様)。

公式ドキュメントには、アタッチ後に CTRL-C を押すことでデタッチできると記載されています。しかし、私のテストでは、コンテナが現在 bash を実行している場合、CTRL-C は現在行の入力となり、終了しません。コンテナが現在 nginx の access.log ログを出力するなど、フォアグラウンドでプロセスを実行している場合、CTRL-C はコンテナを終了するだけでなく、停止します。これは望んでいることではありません。デタッチはコンテナ ターミナルを離れることを意味しますが、コンテナはまだ実行中です。幸いなことに、アタッチ時に --sig-proxy=false を使用すると、CTRL-D または CTRL-C によってコンテナーがシャットダウンされないようにすることができます。

例:

mynginx コンテナはアクセス ログを標準出力に送信します。コンテナに接続してアクセス情報を表示します。

runoob@runoob:~$ docker アタッチ --sig-proxy=false mynginx
192.168.239.1 - - [10/Jul/2016:16:54:26 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36" "-"

注: (終了すると、コンテナも実行を停止します)。その他の例と詳細な説明については、上記の公式ウェブサイトのリンクをクリックするか、--helpコマンドを使用して表示してください。

イベント

docker events : サーバーからリアルタイムイベントを取得する

文法:

docker イベント (-$)

-f, --filter 条件に基づいてイベントをフィルタリングする

--format 指定されたGoテンプレートを使用して出力をフォーマットします

--since 指定されたタイムスタンプ以降のすべてのイベントを表示します

--until 指定された時間まで実行時間が表示されます

例:

2016 年 7 月 1 日以降のすべての Docker イベントを表示します。

docker イベント --since="1467302400"
runoob@runoob:~/mysql$ docker イベント --since="1467302400"
2016-07-08T19:44:54.501277677+08:00 ネットワーク接続 66f958fd13dc4314ad20034e576d5c5eba72e0849dcc38ad9e8436314a4149d4 (コンテナー = b8573233d675705df8c89796a2c2687cd8e36e03646457a15fb51022db440e64、名前 = ブリッジ、タイプ = ブリッジ)
2016-07-08T19:44:54.723876221+08:00 コンテナが起動しました b8573233d675705df8c89796a2c2687cd8e36e03646457a15fb51022db440e64 (イメージ=nginx:latest、名前=elegant_albattani)

docker イメージは、mysql:5.6 および 2016 年 7 月 1 日以降の関連イベントです。

docker イベント -f "イメージ"="mysql:5.6" --since="1467302400"
runoob@runoob:~/mysql$ docker events -f "image"="mysql:5.6" --since="1467302400" 
2016-07-11T00:38:53.975174837+08:00 コンテナが起動しました 96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10 (イメージ=mysql:5.6、名前=mymysql)
2016-07-11T00:51:17.022572452+08:00 コンテナ キル 96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10 (イメージ = mysql:5.6、名前 = mymysql、シグナル = 9)

注: その他の例や詳しい説明については、上記の公式ウェブサイトのリンクをクリックするか、--helpコマンドを使用して表示してください。

ログ

docker logs : コンテナログを取得する

docker ログ (-$​​) 名前

--details ログ ファイルの追加の詳細を表示します。
-f, --follow ログ出力を追跡する
--since タイムスタンプ(例:2013-01-02T13:23:37)または相対(例:42分42秒)からのログを表示します。

-t, --timestamps tail -f と同様にタイムスタンプを表示します

--tail ログの最後に指定された行数を出力します (デフォルトはすべてのログ)
--until タイムスタンプ(例:2013-01-02T13:23:37)または相対(例:42分42秒)より前のログを表示します。

例:

2016 年 7 月 1 日以降の mynginx コンテナの最新 10 件のログを表示します。

docker ログ --since="2016-07-01" --tail=10 mynginx

Dockerコンテナのログをリアルタイムで表示する

docker logs -f -t --tail 行番号 コンテナ名

s12 という名前の Docker コンテナのログの最後の 10 行をリアルタイムで表示する

docker ログ -f -t --tail 10 s12

注: その他の例や詳しい説明については、上記の公式ウェブサイトのリンクをクリックするか、--helpコマンドを使用して表示してください。

待って

docker wait : コンテナが停止するまでブロックし、終了コードを出力します。

文法:

docker wait (-$) コンテナ [コンテナ...]

docker wait コンテナ

輸出

docker export : ファイルシステムを tar アーカイブとして STDOUT にエクスポートします。

文法:

docker export [オプション] コンテナ

-o, --output 入力をファイルに書き込みます。

例:

例1: red_pa​​ndaという名前のコンテナをtarファイルとして保存する

docker エクスポート red_pa​​nda > 最新.tar

または

docker エクスポート --output="latest.tar" red_pa​​nda

例 2: ID a404c6c174a2 のコンテナを日付別に tar ファイルとして保存します。

runoob@runoob:~$ docker export -o mysql-`date +%Y%m%d`.tar a404c6c174a2
runoob@runoob:~$ ls mysql-`date +%Y%m%d`.tar
mysql-20160711.tar

ポート

docker port : 指定されたコンテナのポート マッピングを一覧表示するか、パブリック ポートに NAT された PRIVATE_PORT を検索します。

文法:

docker ポート コンテナ [プライベートポート[/PROTO]]

例:

コンテナ ID cbe08f2a4406 のポート マッピングを確認します。

runoob@runoob:~$ docker ポート cbe08f2a4406
3306/tcp -> 0.0.0.0:13306

統計

docker stats : コンテナリソースの使用状況統計のライブストリームを表示します。

文法:

docker 統計 (-$) [コンテナ...]

-a, --all すべてのコンテナを表示します(デフォルトでは実行したコンテナを表示します)
--format Go テンプレートを使用して画像をきれいに印刷する
--no-stream ストリーミング統計を無効にし、最初の結果のみを抽出します
--no-trunc 出力を切り捨てない

例:

Linux デーモンで実行されているすべてのコンテナに対して docker stats を実行します。

$ docker 統計
コンテナ ID 名前 CPU % メモリ使用量 / 制限 メモリ % ネット I/O ブロック I/O PID
b95a83497c91 awesome_brattain 0.28% 5.629MiB / 1.952GiB 0.28% 916B / 0B 147kB / 0B 9
67b2525d8ad1 foobar 0.00% 1.727MiB / 1.952GiB 0.09% 2.48kB / 0B 4.11MB / 0B 2
e5c383697914 テスト-1951.1.kay7x1lh1twk9c0oig50sd5tr 0.00% 196KiB / 1.952GiB 0.01% 71.2kB / 0B 770kB / 0B 1
4bda148efbc0 ランダム.1.vnc8on831idyr42slu578u3cr 0.00% 1.672MiB / 1.952GiB 0.08% 

フォーマット文字列 --format が指定されていない場合は、次の列が表示されます。

列名説明する
コンテナIDと名前コンテナのIDと名前
CPU % と MEM %コンテナが使用しているホストマシンのCPUとメモリの割合
メモリ使用量 / 制限コンテナが使用しているメモリの合計と、コンテナが使用できるメモリの合計量
ネットI/Oコンテナがネットワークインターフェースを介して送受信するデータの量
ブロックI/Oコンテナがホスト上のブロックデバイスから読み書きするデータの量
PIDコンテナによって作成されたプロセスまたはスレッドの数

注: その他の例については、上記の公式ウェブサイトのリンクをクリックしてください。

コンテナライフサイクル管理

走る

docker run : 新しいコンテナを作成し、コマンドを実行します

注: このコマンドには 99 個のオプションがあるため、このセクションではよく使用されるオプションのみを使用します。詳細については、公式 Web サイトを参照してください。

文法:

docker run (-$) イメージ [コマンド] [引数...]

-a, --attach=[] は、コンテナにログインするために使用される標準入力および出力コンテンツ タイプ (オプションで STDIN/STDOUT/STDERR) を指定します (docker run -d で起動されたコンテナである必要があります)
-dはコンテナをバックグラウンドで実行し、コンテナIDを返します。デフォルト値はfalseです。

-i は STDIN を開き、コンテナを対話モードで実行します。通常は -t と一緒に使用されます。デフォルト値は false です。

-P, --publish-all=false ランダムポートマッピング、コンテナの内部ポートはホストのポートにランダムにマッピングされます

-p, --publish=[] はコンテナによって公開されるポートを次の形式で指定します: ホストポート: コンテナポート
-t、--tty は、ターミナル ログインをサポートするために、コンテナーの疑似入力ターミナル TTY を再割り当てします。通常は -i と一緒に使用されます。デフォルト値は false です。
--name="" はコンテナ名を指定します。リンク機能には名前が必要です
-u, --user="" コンテナユーザーを指定する

-w はコンテナの作業ディレクトリを指定します

-c は、CPU共有シナリオで使用されるコンテナCPUの重みを設定します。

-e, --env=[] はコンテナ内で使用できる環境変数を指定します

-m はコンテナのメモリ制限を指定します

-h はコンテナのホスト名を指定します

-v, --volume=[] はコンテナ内のディレクトリにストレージボリュームをマウントします
--volumes-from=[] 他のコンテナのボリュームをコンテナ内のディレクトリにマウントします

--cap-add=[] 権限を追加

--cap-drop=[] 権限を削除する

--cidfile="" コンテナを実行した後、システムの使用状況を監視するためにコンテナのPID値を指定されたファイルに書き込みます

--cpuset="" コンテナが使用できる CPU を設定します。このパラメータを使用すると、コンテナの CPU を独占できます。

--device=[] コンテナにホストデバイスを追加します。デバイスパススルーと同等です。

--dns=[] コンテナのDNSサーバーを指定します

--dns-search=[] はコンテナの DNS 検索ドメイン名を指定し、コンテナの /etc/resolv.conf ファイルに書き込みます。
--entrypoint="" イメージのエントリポイントを上書きする

--env-file=[] は環境変数ファイルを指定します。ファイル形式は 1 行につき 1 つの環境変数です。

--expose=[] ポートまたはポートのグループを開きます。つまり、イメージの公開ポートを変更します。

--link=[] はコンテナ間の関連付けを指定し、それらを別のコンテナにリンクし、他のコンテナの IP、env、その他の情報を使用します。

--lxc-conf=[] はコンテナの設定ファイルを指定します。これは --exec-driver=lxc が指定されている場合にのみ使用されます。

--net="bridge" はコンテナのネットワーク接続タイプを指定します。

bridge dockerデーモンによって指定されたブリッジを使用する

ホスト //コンテナはホストのネットワークを使用する

container:NAME_or_ID >//IPやPORTなどの他のコンテナのネットワークリソースを使用してネットワークリソースを共有します

なし コンテナは独自のネットワークを使用します (--net=bridge と同様)

--privileged=false は、コンテナが特権コンテナであるかどうかを指定します。特権コンテナにはすべての権限が与えられます。
--restart="no" は、コンテナが停止した後の再起動戦略を指定します。

no: コンテナが終了したときに再起動しない(デフォルトポリシー)

on-failure: コンテナが失敗して終了した場合 (戻り値がゼロ以外)、コンテナを再起動します。

on-failure:3、コンテナが異常終了したときに最大3回再起動する

常に: コンテナは終了時に常に再起動されます

unless-stopped: コンテナが終了したら常に再起動しますが、Dockerデーモンの起動時に停止されたコンテナは考慮しません。

--rm=false は、コンテナが停止した後に自動的に削除されることを指定します (docker run -d で開始されたコンテナはサポートされません)
--sig-proxy=true プロキシがシグナルを受け入れて処理するように設定します。SIGCHLD、SIGSTOP、SIGKILLは

拡張説明: コンテナ終了ステータスコード

  • docker run の終了ステータス コードは次のとおりです。
  • 0、正常終了を示す
    • 0以外、異常終了を示す(終了ステータスコードはchroot標準を使用)◦125、Dockerデーモンプロセス自体のエラー
    • 126. コンテナの起動後、実行されるデフォルトのコマンドを呼び出すことができません
    • 127、コンテナの起動後、実行されるデフォルトのコマンドが存在しない
    • その他のコマンド ステータス コード: コンテナが起動すると、コマンドは正常に実行されます。コマンドが終了すると、コマンドの戻りステータス コードがコンテナの終了ステータス コードとして使用されます。

例:

docker イメージ nginx:latest を使用してコンテナをバックグラウンド モードで起動し、コンテナに mynginx という名前を付けます。

docker run --name mynginx -d nginx:latest

イメージ nginx:latest を使用して、コンテナをバックグラウンド モードで起動し、コンテナのポート 80 をホスト上のランダムなポートにマップします。

docker run -P -d nginx:latest

イメージ nginx:latest を使用してコンテナをバックグラウンド モードで起動し、コンテナのポート 80 をホストのポート 80 にマップし、ホストのディレクトリ /data をコンテナの /data にマップします。

docker run -p 80:80 -v /data:/data -d nginx:latest

コンテナのポート 8080 をバインドし、ローカル ホスト 127.0.0.1 のポート 80 にマップします。

docker run -p 127.0.0.1:80:8080/tcp ubuntu bash

nginx:latest イメージを使用してコンテナをインタラクティブ モードで起動し、コンテナ内で /bin/bash コマンドを実行します。

runoob@runoob:~$ docker run -it nginx:latest /bin/bash
ルート@b8573233d675:/#

開始/停止/再起動

docker start : 停止したコンテナを1つ以上起動する

docker stop : 実行中のコンテナを停止する

docker restart : コンテナを再起動する

文法:

docker start (-$) CONTAINER [CONTAINER...]

--attach、-a STDOUT / STDERRを接続し、シグナルを転送する
--checkpoint このチェックポイントから復元する

--checkpoint-dir カスタムチェックポイント保存ディレクトリを使用する

--detach-keys コンテナをデタッチするためのキーシーケンスをオーバーライドします
--interactive 、 -i コンテナの STDIN をアタッチする

docker stop (-$) コンテナ [コンテナ...]

--time , -t 強制終了するまでの待機秒数、デフォルトは 10 秒

docker restart (-$) CONTAINER [CONTAINER...]

--time , -t 強制終了するまでの待機秒数、デフォルトは 10 秒

殺す

docker kill : 実行中のコンテナを強制終了します。

文法:

docker kill (-$) コンテナ [コンテナ...]

-s、--signal はコンテナにシグナルを送信し、強制的にシャットダウンします -s は SIGINT シグナル タイプを指定します。デフォルトは "kill" です

例:

実行中のコンテナmynginxを強制終了します。

runoob@runoob:~$ docker kill -s KILL mynginx
ミンギンクス

実行中のコンテナをすべて終了する

docker kill $(docker ps -p -a )

注: このセクションの -s は Linux シグナルに関係します。詳細については、ここをクリックしてください。

rm

docker rm : 1つ以上のコンテナを削除する

文法:

docker rm (-$) コンテナ [コンテナ...]

-f --force=false SIGKILLシグナルを介して実行中のコンテナを強制的に削除する

-l --link=false コンテナ自体ではなくコンテナ間のネットワーク接続を削除し、基礎となるコンテナはそのまま残します。

-v --volumes=false コンテナに関連付けられたボリュームを削除します

例:

コンテナ nginx01 からコンテナ db01 への接続を削除します。接続名は db です。

docker rm -l db

コンテナnginx01とコンテナによってマウントされたデータボリュームを削除します。

ドッカーrm -v nginx01

すべてのコンテナを強制的に削除

docker rm -f 'docker ps -a -q'

実行されていないコンテナを削除する

docker rm docker ps -a -f ステータス=終了しました

異常終了したコンテナを削除する

docker rm docker ps -a | grep 終了しました | awk '{print $1}'

1つのコマンドでコンテナを非アクティブ化および削除する

docker stop $(docker ps -q) および docker rm $(docker ps -aq ) を実行します。

最後の5つのコンテナを一括削除

docker rm $(docker ps -aq -n=5)

指定されたイメージによって作成されたコンテナを削除します

docker rm $(docker ps -a | grep "watch-the-fun/jdk:8" | awk '{print $1}')

コマンド分割の説明:

| はパイプ文字であり、前のコマンドの実行結果を次のコマンドのパラメータとして渡すために使用されます。

docker ps -a は作成されたすべてのコンテナ(起動されていないものも含む)を照会します。

grep "watch-the-fun/jdk:8" は、イメージ名 watch-the-fun/jdk:8 のレコードをフィルタリングします。

awk '{print $1}'は、レコードの最初の列を行単位で検索します。これはコンテナIDです。

$() はコマンド置換として使用されます

注: その他の例や詳しい説明については、上記の公式ウェブサイトのリンクをクリックするか、--helpコマンドを使用して表示してください。

一時停止/一時停止解除

docker pause : コンテナ内のすべてのプロセスを一時停止します。

docker unpause : コンテナ内のすべてのプロセスを再開します。

文法:

docker pause CONTAINER [CONTAINER...]
docker unpause CONTAINER [CONTAINER...]

例:

データベースコンテナ db01 のサービス提供を停止します

docker 一時停止 db01

サービスを提供するためにデータベースコンテナdb01を復元する

docker db01 の一時停止を解除

作成する

docker create : 新しいコンテナを作成しますが、起動はしません

docker runと同じ使い方

文法:

docker create (-$) IMAGE [コマンド] [引数...]

docker runと同じ構文

例:

dockerイメージnginx:latestを使用してコンテナを作成し、コンテナにmyrunoobという名前を付けます。

runoob@runoob:~$ docker create --name myrunoob nginx:latest  
09b93464c2f75b7b69f83d56a9cfc23ceb50a48a9db7652ee4c27e3e2cb1961f

実行者

docker exec : 実行中のコンテナ内でコマンドを実行する

文法:

docker exec (-$) コンテナコマンド [ARG...]

-d, --detach 分離モード: コマンドをバックグラウンドで実行します

-i, --interactive 接続されていない場合でも STDIN を開いたままにする

-t, --tty 疑似端末 (TTY) を割り当てる
--detach-keys コンテナをデタッチするためのキーシーケンスをオーバーライドします
-e, --env 環境変数を設定する
--privilegedはコマンドに拡張権限を与える
--user , -u ユーザー名またはUID (形式: <name|uid>[:<group|gid>])
-w, --workdir コンテナ内の作業ディレクトリ

例:

例 1: コンテナ mynginx 内の /root/runoob.sh スクリプトを対話モードで実行します。

runoob@runoob:~$ docker exec -it mynginx /bin/sh /root/runoob.sh
http://www.runoob.com/

例 2: mynginx コンテナで対話型ターミナルを開きます。

runoob@runoob:~$ docker exec -it mynginx /bin/bash
ルート@b1a0703e41e7:/#

注: docker ps -aコマンドを使用して実行中のコンテナを表示し、コンテナIDを使用してコンテナを入力することもできます。

例 3: 最初の列の 9df70f9a0714 はコンテナ ID です。

exec コマンドを使用して、指定されたコンテナ内で bash を実行します。

# docker exec -it 9df70f9a0714 /bin/bash

注: このコマンドは対話的にコンテナに入ります (exit で終了した後もコンテナは実行を停止しません)。詳細については、公式 Web サイトを参照してください。

アップデート

docker update : 1つ以上のコンテナの設定を更新する

文法:

docker update (-$) CONTAINER [CONTAINER...]

--blkio-weight ブロック IO (相対重み)、10 から 1000 の間、またはブロックする場合は 0 (デフォルト 0)
--cpu-period CPU CFS (Completely Fair Scheduler) 期間を制限する
--cpu-quota CPU CFS (Completely Fair Scheduler) クォータを制限する
--cpu-rt-period CPU のリアルタイム期間を制限する (マイクロ秒単位)

--cpu-rt-runtime CPU のリアルタイム実行時間をマイクロ秒単位で制限します

--cpu-shares 、 -c CPU シェア (相対的な重み)
--cpus CPUの数

--cpuset-cpus 実行を許可する CPU (0-3,0,1)
--cpuset-mems 実行を許可するMEM (0-3,0,1)
--kernel-memory カーネルメモリ制限
--memory , -m メモリ制限
--memory-reservation メモリソフト制限
--memory-swap スワップ制限はメモリとスワップの合計です: '-1 を指定すると無制限のスワップが有効になります
--restart コンテナ終了時に適用されるポリシーを再起動します

例:

CPUシェアのコンテナを更新します

コンテナのCPUシェアを512に制限するには、最初にコンテナ名またはIDを識別します。 Docker PSを使用してこれらの値を見つけることができます。 Docker Runコマンドから返されたIDを使用することもできます。次に、次のことを行います。

Docker Update  -  CPU-Shares 512 Abebf7571666

CPUシェアとメモリを備えたコンテナを更新します

複数のコンテナの複数のリソース構成を更新するには:

Docker Update -CPU -Shares 512 -M 300M Abebf7571666 Hopeful_morse

注:その他の例については、上記の公式Webサイトリンクをクリックしてください

コンテナrootfsコマンド

専念

docker commit : コンテナから新しいイメージを作成します。

文法:

docker commit( -  $)container [リポジトリ[:タグ]]

-a、 - 著者= ""著者

-c、-change dockerfile命令を使用して画像を作成します
-m、 - message = ""簡単な説明

-p、 - pause = commit中にトゥルーポーズコンテナ

例:

コンテナA404C6C174A2を新しい画像として保存し、コミッター情報と説明情報を追加します。

runoob@runoob:〜$ docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1 
SHA256:37AF1236ADEF1544E8886BE23010B66577647A40BC02C0885A6600B33EE28057
runoob@runoob:〜$ docker画像mymysql:v1
リポジトリ タグ イメージ ID 作成 サイズ
mymysql v1 37AF1236adef 15秒前329 MB

cp

docker cp: コンテナとホスト間でデータをコピーするために使用されます。

文法:

docker cp( -  $)コンテナ:src_path dest_path |  - 
Docker CP( -  $)SRC_PATH |  - コンテナ:DEST_PATH

-a, --archive アーカイブモード(すべての uid/gid 情報をコピー)
-l、 - フォローリンクソースとターゲットの間のリンクを保持します

例:

例1:ホスト /www /runoobディレクトリをコンテナの /wwwディレクトリ96f7f14e99abにコピーします

Docker CP/www/runoob 96f7f14e99ab:/www/

例2:ホスト /www /runoobディレクトリをコンテナ96f7f14e99abにコピーし、ディレクトリをwwwに変更します

Docker CP/www/runoob 96F7F14E99AB:/www

例3:コンテナ96F7F14E99ABの /WWWディレクトリをホストの /TMPディレクトリにコピーします

Docker CP 96F7F14E99AB:/www/tmp/

差分

Docker DIFF:コンテナファイルシステムのファイルまたはディレクトリの変更を確認する

文法:

Docker Diffコンテナ

拡張された説明

コンテナが作成されてからコンテナのファイルシステムで変更されたファイルとディレクトリをリストします。 3つの異なるタイプの変更が追跡されます。

シンボル説明する
ファイルまたはディレクトリを追加しました
ファイルまたはディレクトリが削除されました
ファイルまたはディレクトリが変更されました

例:

コンテナmymysqlのファイル構造の変更を表示します

runoob@runoob:〜$ docker diff mymysql
a /logs
A /mysql_data
c /run
c /run /mysqld
a /run/mysqld/mysqld.pid
a /run/mysqld/mysqld.sock
C/TMP

名前を変更する

Dockerの名前の変更:コンテナの名前を変更します

文法:

Dockerの名前のコンテナnew_name

Docker管理コマンド

上記の使用コマンドを提供することに加えて、Dockerは次のように一連の管理コマンドも提供します

ビルダー管理ビルド
Docker構成を管理します
コンテナはコンテナを管理します
エンジンはDockerエンジンを管理します
画像管理画像
ネットワーク管理ネットワーク
ノードは群れノードを管理します
プラグイン管理プラグイン
SecretはDockerの秘密を管理します
サービス管理サービス
スタックはDockerスタックを管理します
Swarmは群れクラスターを管理します
システムビューシステム情報
TrustはDocker画像に対する信頼を管理します
ボリューム管理ボリューム

それは時間の無駄だから、上記のすべてのコマンドを知る必要はありませんが、それらが何をしているのかを知ることができます。必要に応じて公式ウェブサイトにアクセスして確認してください。

次のリストには、使用する管理コマンドを示します。

ネットワークリストを表示

docker ネットワーク ls

Swarm Servicesのリストを表示します

docker サービス ls

タグ付けされておらず、コンテナで使用されていないすべての画像を削除します

$ dockerイメージのプルーニング
 警告! これにより、ぶら下がっている画像がすべて削除されます。
 本当に続行しますか? [y/N] y

コンテナで使用されていないすべての画像を削除します。

docker イメージ prune -a

停止したすべてのコンテナを削除します:

docker コンテナ プルーン

マウントされていないすべてのボリュームを削除します:

docker ボリュームのプルーニング

すべてのネットワークを削除します。

docker ネットワーク プルーニング

すべてのDockerリソースを削除します。

docker システム プルーン

トリムミラー:

docker システム プルーン -a

Dockerオプション

docker( -  $)

-api-enable-cors = false enableリモートAPIでCorsヘッダーを有効にします

-b、-bridge = ""ブリッジネットワークは「なし」を使用してコンテナネットワークを無効にします

-bip = ""ブリッジモード

-d、-daemon = false Guardianモード

-d、 - debug = falseデバッグモード

-DNS = []指定されたDNSサーバーを使用するようにDockerを強制します

-dns-search = []指定されたDNSを使用してドッカーを検索ドメインに強制します

-e、-exec-driver = "native"は、指定された実行ドライブの使用をDockerランタイムに強制します

-fixed-cidr = ""固定IPを備えたIPv4サブネット(例:10.20.0.0/16)は、ブリッジサブネットに囲む必要があります(-bまたは - bipで定義)

-g、-group = "docker"デーモンモードで実行すると、グループは-hで指定されたUnixソケットを指します。 ""を使用して、グループ設定を無効にします。

-g、-graph = "/var/lib/docker"コンテナが実行されるルートディレクトリパス

-h、 - host = []ガードモードにバインドされたソケット。 1つ以上のtcp:// host:ports、unix:// path/to/set、fd://*またはfd:// socketfdを使用します。

-icc =真のコンテナー間の相互コンテナー通信

-insecure-registry = []指定されたレジストリを使用して無測量通信を有効にします(HTTPSおよびHTTPフォールバックを有効にしない証明書確認)(例:localhost:5000または10.20.0 /16)

-ip = "0.0.0.0"コンテナポートをバインドするときに使用されるIPアドレス

-ip-forward = net.ipv4.ip_forwardを使用した真の転送
-IP-MASQ =ブリッジとしてIPを装っている真のIP範囲
-iptables = true dockerを有効にしてiptablesルールを追加します
-MTU = 0コンテナネットワークMTUを設定します

-p、-pidfile = "/var/run/docker.pid"デーモンのpidファイルの場所を指定します

-registry-mirror = []優先ミラーリポジトリ(アクセラレーションアドレス)を指定します
-s、-storage-driver = "" dockerは、実行時に指定されたストレージドライバーを使用するように強制します

-Selinux-Enabled = false enable selinuxサポート

-storage-opt = []ストレージドライバーオプションを設定します

-TLS = false Tlunsをオンにします

-tlscacert = "/root/.docker/ca.pem" CA署名を提供する信頼証明書のみ

-tlscert = "/root/.docker/cert.pem" TLS証明書ファイルの場所

-tlskey = "/root/.docker/key.pem" tlsキーファイルの場所

-TLSVERIFY = False TLSを使用し、リモートコントロールホストを確認します

-v、--version = false出力Dockerバージョン情報

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Dockerコンテナイメージ関連コマンドの基本的な紹介と使用方法
  • 開発者にとって必須の Docker コマンドの概要
  • よく使われる Docker コマンドと例の概要と分析
  • 一般的なDockerコマンドの詳細な説明
  • 一般的なDockerコマンドの概要
  • 一般的な docker コマンドの概要 (推奨)
  • Docker コマンドラインの完全ガイド (知っておくべき 18 のこと)
  • 一般的な Docker コマンドの紹介

<<:  Vue で Excel ストリーム ファイルをダウンロードし、ダウンロード ファイル名を設定する方法

>>:  MySQLインストーラがコミュニティモードで実行されている場合の解決策

推薦する

js 配列 fill() 充填メソッド

目次1. fill() 構文2. fill() の使用3. まとめ序文:配列の初期化方法についてはよ...

Linux trコマンドの使用

1. はじめにtr はテキストの一部を変換または削除するために使用されます。 tr は transl...

MySQL で指定した桁数の乱数を生成する方法と、バッチで乱数を生成する方法

1. まず、よく使われるMySQL関数をいくつか紹介しますRAND() は 0 から 1 (0<...

VMware を使用して PXE バッチ インストール サーバーをテストする詳細なプロセス

目次1. 準備1. 環境を整える2. インストール方法3. ネットワークカードの構成2. インストー...

js SMS認証コード入力ボックスを手動で実装する

序文この記事では、私が手動で実装したフロントエンドの一般的な SMS 認証コード入力コンポーネントと...

Nginx の負荷分散アルゴリズムとフェイルオーバー分析

概要Nginx ロード バランシングは、アップストリーム サーバー (実際のビジネス ロジックによっ...

MySQL の group by と order by を一緒に使用する方法

テーブル:reward(報酬テーブル)があるとします。テーブル構造は次のようになります。 テーブルt...

Docker が PostgreSQL を起動するときに複数のデータベースを作成するためのソリューション

1 はじめに「DockerでPostgreSQLを起動する方法といくつかの接続ツールのおすすめ」の記...

VueとVueComponentの関係の詳細な説明

次のケースでは、これまでに学んだプロトタイプチェーンの知識ポイントを確認します。 // コンストラク...

MYSQL開発パフォーマンス調査:バッチデータ挿入の最適化方法

1. どのような問題に直面しましたか?標準 SQL では、通常、次の SQL 挿入ステートメントを記...

MySQL マルチインスタンス構成のアプリケーションシナリオ

目次MySQL 複数インスタンスマルチインスタンスの概要マルチインスタンスとは何ですか?複数のインス...

MySQL 8.0.24 バージョンのインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 8.0.24バージョンのインストールと設定方法を記録し、皆さんと共有しますM...

Ubuntu 18.04 サーバーのパスワードを忘れたり改ざんされた場合にパスワードをリセットする方法

最近、サーバー上のアカウントが2つハッキングされ、パスワードが改ざんされました。幸い、まだ使えるアカ...

Vue シングルページ SEO の 4 つのソリューションについての簡単な説明

目次1.Nuxtサーバーサイドレンダリングアプリケーションの展開(SSRサーバーレンダリング)利点:...

Dockerはローカルイメージをパッケージ化し、他のマシンに復元します

1. docker imagesを使用して、このマシン上のすべてのイメージファイルを表示します。 2...