【Docker】コンテナ コマンド一覧
Docker
2024/02/27
2024/01/28
attach
コンテナをアタッチモード(フォワグラウンド)に変更します。
アタッチモードからデタッチモード(バックグラウンド)に変更する場合はCtrl-P Ctrl-Q
を入力します。
ただし、コンテナ作成時に-it
オプションが必要です。
$ docker container attach [オプション] {コンテナ}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--detach-keys | デタッチモードへと変更するキーバインドを変更する |
例1
$ docker container run -it -d --rm --name webserver nginx
$ docker container attach webserver
#Ctrl-P + Ctrl-Q でデタッチモード
例2
$ docker container run -it -d --rm --name webserver nginx
$ docker container attach --detach-keys="ctrl-a,ctrl-b" webserver
#Ctrl-A + Ctrl-B でデタッチモード
commit
コンテナからイメージを作成します。
$ docker container commit [オプション] {コンテナ} {作成イメージ}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--author | -a | イメージの作成者を設定する | |
--change | -c | 作成するイメージにDockerfile命令を適用する ( CMD , ENTRYPOINT , ENV , EXPOSE , LABEL , ONBUILD , USER , VOLUME , WORKDIR ) | |
--message | -m | 作成するイメージにコメントを設定する | |
--pause | -p | true | イメージ作成中コンテナを一時的に停止する |
例
$ docker container commit mycontainer myimage:latest
cp
ホスト、コンテナ間でファイルのコピーを行います。
$ docker container cp [オプション] {コピー元} {コピー先}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--archive | -a | アーカイブモードに設定(uid/gidをすべてコピーする) | |
--follow-link | -L | シンボリックリンクをフォローする | |
--quiet | -q | コピーの進捗表示をしない |
例1
$ touch test.txt
$ docker container cp test.txt guest:/test.txt #ホスト → コンテナ
$ docker container exec -t guest ls
bin boot dev etc home lib media mnt opt proc root run sbin srv sys test.txt tmp usr var
例2
$ docker container cp guest:/test.txt test2.txt #コンテナ → ホスト
$ ls
test2.txt
create
イメージからコンテナを作成します。
docker container run
と異なりコンテナの起動及びコマンドの実行は行われず、作成されただけの状態(Created
)となります。
$ docker container create [オプション] {イメージ} {コマンド} {引数}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--interactive | -i | 標準入力(STDIN )を開放する | |
--name | コンテナ名を設定する(未指定の場合はランダムに付与される) | ||
--publish | -p | 公開ポートを指定する | |
--rm | ステータスがExited になった際にコンテナを削除する | ||
--tty | -t | 擬似TTY(Teletypewriter)を割り当てる |
例1
$ docker container create -it --name guest ubuntu bash
例2
$ docker container create -it -p 8080:80 --rm --name webserver nginx
diff
コンテナのファイル、ディレクトリの変更状態を表示します。
(A
: 追加、D
: 削除、C
: 変更)
$ docker container diff {コンテナ}
例
$ docker container diff guest
C /root
A /root/.bash_history
A /test.txt
exec
コンテナ内のコマンドを実行します。
$ docker container exec [オプション] {コンテナ} {コマンド} {引数}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--detach | -d | デタッチモード(バックグラウンド)で実行する | |
--detach-keys | デタッチモードへと変更するキーバインドを変更する | ||
--interactive | -i | 標準入力(STDIN )を開放する | |
--tty | -t | 擬似TTY(Teletypewriter)を割り当てる | |
--user | -u | 実行ユーザーを指定する | |
--workdir | -w | コマンド実行時のカレントディレクトリを設定する |
例1
$ docker container exec -it -u user1 guest bash
例2
$ docker container exec -t -w /usr guest ls
# 結果としては $docker container exec -t guest ls usr と同じ
inspect
コンテナの詳細情報を表示します。
$ docker container inspect [オプション] {コンテナ}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--format | -f | ||
--size | -s |
例1
$ docker container inspect --format "{{json .Config.Image}}" guest
"ubuntu"
例2
$ docker container inspect -s --format "{{.SizeRw}}, {{.SizeRootFs}}" guest
337859, 69601870
kill
コンテナを強制終了させます。
実際にはSIGKILL
シグナルを送信して強制終了しており、-s
オプションで送信するシグナルを変更できます。
$ docker container kill [オプション] {コンテナ}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--signal | -s | KILL | シグナルを送信する |
例1
$ docker container kill guest
例2
$ docker container kill -s SIGHUP guest
logs
コンテナのログを取得します。
$ docker container logs [オプション] {コンテナ}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--details | 詳細情報を表示する | ||
--follow | -f | ログを表示し続ける | |
--since | タイムスタンプ以降のログを表示する | ||
--tail | -n | all | 最後から数えた行以降を表示する |
--timestamp | -t | タイムスタンプを表示する | |
--until | タイムスタンプまでのログを表示する |
例1
$ docker container logs gallant_ishizaka
root@b275adfcec0d:/# ls
bin boot dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var
root@b275adfcec0d:/# cd usr
root@b275adfcec0d:/usr# ls
bin games include lib libexec local sbin share src
root@b275adfcec0d:/usr# exit
exit
例2
$ docker container logs -t --since="2024-01-28T12:15:40Z" gallant_ishizaka
2024-01-28T12:15:41.228308921Z root@b275adfcec0d:/usr# exit
exit-01-28T12:15:41.228500712Z
例3
$ docker container run -dit --rm --name webserver nginx
$ docker container logs -f webserver > webserver.log
ls
コンテナの一覧を表示します。
$ docker container ls [オプション]
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--all | -a | すべてのコンテナを表示する(デフォルトは起動しているコンテナのみ) | |
--filter | -f | 表示対象をフィルタリングする | |
--format | table | 表示内容をカスタマイズする(table ,table TEMPLATE , json , TEMPLATE ) | |
--last | -n | -1 | 新しく作成されたN個のコンテナを表示する |
--latest | -l | 最も新しく作成されたコンテナのみを表示する | |
--no-trunc | 値の省略を行わない | ||
--quiet | -q | コンテナIDのみを表示する | |
--size | -s | ファイルサイズの合計を表示する |
例1
$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5df8d8e0d4bc nginx "/docker-entrypoint.…" 25 minutes ago Up 25 minutes 0.0.0.0:8080->80/tcp webserver
b275adfcec0d ubuntu "bash" 36 minutes ago Exited (137) 2 seconds ago guest
例2
$ docker container ls --no-trunc -aq
5df8d8e0d4bc905ae975265763143495058022ef8cdd751294df3bf3737d0a47
b275adfcec0dcc84aa5d3b7f108f019c524c3a6ae32ccb0ef0eed7160b04d981
pause
コンテナを一時停止(Paused)に設定します。
$ docker container pause {コンテナ}
例
$ docker container pause guest
$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b275adfcec0d ubuntu "bash" 43 minutes ago Up 16 seconds (Paused) guest
port
ポートの割り当てを表示する。
$ docker container port {コンテナ} {ポート/プロトコル}
例
$ docker container port webserver
80/tcp -> 0.0.0.0:8080
prune
停止中のコンテナをすべてを削除します。
$ docker container prune [オプション]
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--filter | 削除対象をフィルタリングする | ||
--force | -f | コマンド実行時の確認を省略する |
例
$ docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N]
rename
コンテナ名(NAME
)を変更します。
$ docker container rename {コンテナ} {新しいコンテナ名}
例
$ docker container rename guest guest00
restart
コンテナを再起動します。
$ docker container restart [オプション] {コンテナ}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--signal | -s | シグナルを設定する | |
--time | -t | 10 | コンテナをKILLするまでの待ち時間を設定する |
$ docker container restart guest
rm
コンテナを削除します。
$ docker container rm [オプション] {コンテナ}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--force | -f | 強制的に削除する(デフォルトは停止中のみ削除可能) |
例
$ docker container rm guest
run
コンテナを作成します。docker container create
との違いは、コンテナを起動し、コマンドを実行した状態となります。
$ docker container run [オプション] {イメージ} {コマンド} {引数}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--detach | -d | デタッチモード(バックグラウンド)で起動する | |
--env | -e | 環境変数を設定する | |
--interactive | -i | 標準入力(STDIN )を開放する | |
--mount | ボリューム、バインドマウント、tmpfsをマウントする | ||
--name | コンテナ名を設定する(未指定の場合はランダムに付与される) | ||
--network | ネットワークを設定する | ||
--network-arias | ネットワークのエイリアスを設定する | ||
--publish | -p | 公開ポートを指定する | |
--rm | ステータスがExited になった際にコンテナを削除する | ||
-tmpfs | tmpfsをマウントする | ||
--tty | -t | 擬似TTY(Teletypewriter)を割り当てる | |
--volume | -v | ボリュームまたはバインドマウントをマウントする |
例1
$ docker container run -it --name guest ubuntu bash
例2
$ docker container run -dit -p 8080:80 --rm --name webserver nginx
start
コンテナを起動します。
$ docker container start [オプション] {コンテナ}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--detach-keys | デタッチモードへと変更するキーバインドを変更する | ||
--interactive | -i | 標準入力(STDIN )を開放する |
例
$ docker container start -i guest
stats
コンテナのリソース状況をライブストリームで表示し続けます。
$ docker container stats [オプション] {コンテナ}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--all | -a | すべてのコンテナを対象とする(デフォルトは起動中のコンテナのみ) | |
--format | 表示内容をカスタマイズする(table ,table TEMPLATE , json , TEMPLATE ) | ||
--no-stream | 実行時の状態のみを表示する | ||
--no-trunc | 値の省略を行わない |
例
$ docker container stats --no-stream
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
5df8d8e0d4bc webserver 0.00% 7.16MiB / 7.663GiB 0.09% 3.83kB / 1.1kB 0B / 12.3kB 9
b275adfcec0d guest 0.00% 832KiB / 7.663GiB 0.01% 1.08kB / 0B 0B / 0B 1
stop
コンテナを停止します。
$ docker container stop [オプション] {コンテナ}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--signal | -s | シグナルを設定する | |
--time | -t | 10 | コンテナをKILLするまでの待ち時間を設定する |
$ docker container stop guest
top
コンテナの実行中プロセスを表示します。
$ docker container top {コンテナ}
例
$ docker container top guest
UID PID PPID C STIME TTY TIME CMD
root 8190 8163 0 12:57 ? 00:00:00 bash
unpause
一時停止中のコンテナを起動中にします。
$ docker container unpause {コンテナ}
例
$ docker container unpause guest
wait
コンテナが終了するまで待ちます。
$ docker container wait {コンテナ}
例
$ docker container wait guest
#他ターミナルなどで終了するまでこのターミナルは使用不可