exec

使い方: docker exec[オプション] コンテナ コマンド [引数...]実行中のコンテナでコマンドを実行 -d, --detach=false デタッチド・モード: コマンドをバックグラウンドで実行 --detach-keys デタッチド・コンテナに特定のエスケープ・キー・シーケンスを設定 --help=false 使い方の表示 -i, --interactive=false アタッチしていなくても STDIN をオープンにし続ける --privileged=false コマンドに拡張 Linux ケーパビリティの追加 -t, --tty=false 疑似ターミナル (pseudo-TTY) の割り当て -u, --user= ユーザ名か UID (書式: <名前|uid>[:<グループ|gid>])

dockerexec コマンドは実行中のコンテナ内で、新しいコマンドを実行します。

dockerexec コマンドが使えるのは、コンテナのプラマリ・プロセス( PID1 )が実行中の時のみです。そして、コンテナが再起動されても、こちらは再起動されません。

コンテナを一時停止すると、 dockerexec コマンドは停止し、エラーになります。

$ docker pause testtest$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1ae3b36715d2 ubuntu:latest "bash"17 seconds ago Up 16 seconds (Paused)test$ docker exectest ls
FATA[0000] Error response from daemon: Container test is paused, unpause the container before exec$ echo$?1

$ docker run --name ubuntu_bash --rm -i -t ubuntu bash

これは ubuntu_bash という名前のコンテナを作成し、Bash セッションを開始します。

$ docker exec -d ubuntu_bash touch /tmp/execWorks

こちらは実行中の ubuntu_bash コンテナ内で、新しいファイル /tmp/execWorks をバックグラウンドで作成します。

$ docker exec -it ubuntu_bash bash

こちらは ubuntu_bash コンテナ内に新しい Bash セッションを作成します。