docker.svg

【Docker】コンテナ コマンド一覧

Docker
2024/02/27

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-ptrueイメージ作成中コンテナを一時的に停止する
$ 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-sKILLシグナルを送信する
例1
$ docker container kill guest
例2
$ docker container kill -s SIGHUP guest

logs

コンテナのログを取得します。

$ docker container logs [オプション] {コンテナ}
オプション省略形デフォルト説明
--details詳細情報を表示する
--follow-fログを表示し続ける
--sinceタイムスタンプ以降のログを表示する
--tail-nall最後から数えた行以降を表示する
--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表示対象をフィルタリングする
--formattable表示内容をカスタマイズする(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-t10コンテナを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になった際にコンテナを削除する
-tmpfstmpfsをマウントする
--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-t10コンテナを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
#他ターミナルなどで終了するまでこのターミナルは使用不可