コンテナ管理コマンド(run, exec, stop, rm, ls, stats…)

docker container COMMAND の形式でコンテナ管理するためのコマンドを実行できます。
ここでは、Dockerコンテナの管理に必要なコマンドの利用方法について解説します。

目次

docker containerの使い方

docker container と入力すると利用できるコマンド一覧を確認できます。

$ docker container

Usage:  docker container COMMAND

Manage containers

Commands:
  attach      Attach local standard input, output, and error streams to a running container
  commit      Create a new image from a container's changes
  cp          Copy files/folders between a container and the local filesystem
  create      Create a new container
  diff        Inspect changes to files or directories on a container's filesystem
  exec        Run a command in a running container
  export      Export a container's filesystem as a tar archive
  inspect     Display detailed information on one or more containers
  kill        Kill one or more running containers
  logs        Fetch the logs of a container
  ls          List containers
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  prune       Remove all stopped containers
  rename      Rename a container
  restart     Restart one or more containers
  rm          Remove one or more containers
  run         Run a command in a new container
  start       Start one or more stopped containers
  stats       Display a live stream of container(s) resource usage statistics
  stop        Stop one or more running containers
  top         Display the running processes of a container
  unpause     Unpause all processes within one or more containers
  update      Update configuration of one or more containers
  wait        Block until one or more containers stop, then print their exit codes

Run 'docker container COMMAND --help' for more information on a command.

docker container で利用できる主なコマンドについて紹介します。

run|コンテナを作りコマンド実行

コンテナを新たに作成し、そのコンテナ内でプログラムを実行させます。

docker container run [OPTIONS] イメージ [COMMAND] [ARG...]

1文字のオプションは連結できます。
(e.g. -i -t-it

主な利用例を確認していきます。

イメージのデフォルトコマンド実行

まず、 docker container run centos:7 を実行した際に何が起こるのかを確認します。

$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
$ 
$ docker container run centos:7
$  
$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
55baaf1423ec        centos:7            "/bin/bash"         2 seconds ago       Exited (0) 2 seconds ago                       laughing_keldysh

新たにコンテナが作成されて、/bin/bashプロセス が実行されたことを確認できます。
/bin/bashプロセス は、centos:7イメージCMD に設定されています。

$ docker image history centos:7
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
5182e96772bf        5 weeks ago         /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B                  
<missing>           5 weeks ago         /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B                  
<missing>           5 weeks ago         /bin/sh -c #(nop) ADD file:6340c690b08865d7e…   200MB               

以下のように、再度実行すると新たに別コンテナが生成されます。

$ docker container run centos:7
$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
4a5937b99bef        centos:7            "/bin/bash"         3 seconds ago       Exited (0) 2 seconds ago                       suspicious_borg
55baaf1423ec        centos:7            "/bin/bash"         5 minutes ago       Exited (0) 5 minutes ago                       laughing_keldysh

コンテナ名をつけて実行
(--name)

--nameオプション を利用すると任意のコンテナ名をつけることができます。

$ docker container run --name centos7 centos:7
$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
00e4090783ad        centos:7            "/bin/bash"         3 seconds ago       Exited (0) 2 seconds ago                        centos7
4a5937b99bef        centos:7            "/bin/bash"         4 minutes ago       Exited (0) 4 minutes ago                        suspicious_borg
55baaf1423ec        centos:7            "/bin/bash"         10 minutes ago      Exited (0) 10 minutes ago                       laughing_keldysh

コンテナ名をつけておくと、後から別のコマンドで対象コンテナを操作しやすくなります。

$ docker container stop $(docker ps -aqf "name=centos7")

$(docker ps -aqf "name=centos7") の部分で CONTAINER ID を取得しています。

コンテナ内で任意のコマンドを実行

Dockerイメージのデフォルトコマンド以外のコマンドを実行することもできます。
以下、 /bin/echoプロセス を実行しています。

$ docker container run --name centos7_echo centos:7 /bin/echo hello world
hello world
$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                          PORTS               NAMES
3ee45f3b4303        centos:7            "/bin/echo hello wor…"   3 seconds ago        Exited (0) 2 seconds ago                            centos7_echo
00e4090783ad        centos:7            "/bin/bash"              About a minute ago   Exited (0) About a minute ago                       centos7
4a5937b99bef        centos:7            "/bin/bash"              6 minutes ago        Exited (0) 6 minutes ago                            suspicious_borg
55baaf1423ec        centos:7            "/bin/bash"              12 minutes ago       Exited (0) 12 minutes ago                           laughing_keldysh

コンテナ内で操作
(-it)

-itオプション を利用すると、実行プロセスの標準入力をオープンにし続けて、標準入力に接続することができます。

$ docker container run -it --name centos7_it1 centos:7
[root@f87019b2f4f9 /]# 
[root@f87019b2f4f9 /]# exit
exit
$ 
$ docker container run -it --name centos7_it2 centos:7
[root@ab3401309f2b /]# 
[root@ab3401309f2b /]# $ 
$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
ab3401309f2b        centos:7            "/bin/bash"              24 seconds ago      Up 23 seconds                                   centos7_it2
f87019b2f4f9        centos:7            "/bin/bash"              50 seconds ago      Exited (0) 40 seconds ago                       centos7_it1
3ee45f3b4303        centos:7            "/bin/echo hello wor…"   3 minutes ago       Exited (0) 3 minutes ago                        centos7_echo
00e4090783ad        centos:7            "/bin/bash"              4 minutes ago       Exited (0) 4 minutes ago                        centos7
4a5937b99bef        centos:7            "/bin/bash"              9 minutes ago       Exited (0) 9 minutes ago                        suspicious_borg
55baaf1423ec        centos:7            "/bin/bash"              15 minutes ago      Exited (0) 15 minutes ago                       laughing_keldysh

centos7_it1exit を実行して接続を抜けています。この場合、プロセスが終了されます。
centos7_it2Ctrl + p + q を押して接続を抜けています。この場合、プロセスがバックグラウンドで実行されたままの状態になります。

ポートフォワーディング
(-p)

ホストからコンテナにアクセスできるようにするには、ポートフォワーディングが必要です。

ポートフォワーディングの設定には、 -pオプション を利用します。 -p ホストのポート:コンテナのポート という形式で指定します。

$ docker container run -p 10080:80 xxxx/sample

上記例では、ホストから localhost:10080 でコンテナにアクセスできます。

フォアグラウンドとバッググラウンド
(-d)

デーモンプロセスを実行した場合、デフォルトだとフォアグラウンドで実行されるので、コンソールが占有されてしまいます。

$ docker container run -p 10080:80 xxxx/sample

-dオプション を利用するとデタッチモードとなり、バッググラウンドで実行してくれます。

$ docker container run -d -p 10080:80 xxxx/sample
f53b852eca6647ba839ad713dd331fb1c80e0a3cb416462af7b0567367e108bc
$
$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                   NAMES
f53b852eca66        xxxx/sample         "/usr/sbin/httpd -D …"   3 seconds ago       Up 3 seconds                0.0.0.0:10080->80/tcp   wizardly_darwin
2a2e0962f730        xxxx/sample         "/usr/sbin/httpd -D …"   5 minutes ago       Exited (0) 12 seconds ago                           heuristic_kapitsa
ab3401309f2b        centos:7            "/bin/bash"              21 minutes ago      Up 21 minutes                                       centos7_it2
f87019b2f4f9        centos:7            "/bin/bash"              22 minutes ago      Exited (0) 22 minutes ago                           centos7_it1
3ee45f3b4303        centos:7            "/bin/echo hello wor…"   24 minutes ago      Exited (0) 24 minutes ago                           centos7_echo
00e4090783ad        centos:7            "/bin/bash"              26 minutes ago      Exited (0) 26 minutes ago                           centos7
4a5937b99bef        centos:7            "/bin/bash"              30 minutes ago      Exited (0) 30 minutes ago                           suspicious_borg
55baaf1423ec        centos:7            "/bin/bash"              36 minutes ago      Exited (0) 36 minutes ago      

自動再起動
(--restart always)

Dockerデーモンの起動時に自動でコンテナを再起動させたい場合、--restart alwaysオプション をつけます。

$ docker container run --restart always xxxx/sample

マウントで永続データ管理
(-v)

-vオプション を利用すると ホストディレクトリコンテナ内のディレクトリ にマウントすることができます。
マウント領域を Volume と言います。コンテナ削除後も残しておきたい永続データの管理に利用します。

以下では、 ホストディレクトリである /tmp/html を コンテナ内のディレクトリである /var/www/html にマウントしています。

$ ls /tmp/html
index.html
$
$ docker run -d -p 10080:80 -v /tmp/html:/var/www/html xxxx/sample
48327d9e2228d1b82dbc0548e96229111788604e639c7df70af6bc7f1275f020

inspectコマンド でマウント情報を確認できます。

$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                   NAMES
48327d9e2228        xxxx/sample         "/usr/sbin/httpd -D …"   9 seconds ago       Up 9 seconds        0.0.0.0:10080->80/tcp   priceless_jepsen
$ 
$ docker inspect 48327d9e2228|grep -A 8 Mounts
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/tmp/html",
                "Destination": "/var/www/html",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }

attach|コンテナにアタッチ

バックグラウンドで稼働しているコンテナ内のプロセスに接続できます。

$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
ab3401309f2b        centos:7            "/bin/bash"         About an hour ago   Up 5 minutes                            centos7_it2
$ 
$ docker container attach ab3401309f2b
[root@ab3401309f2b /]# 
[root@ab3401309f2b /]# 
[root@ab3401309f2b /]# exit
exit

exec|コマンド実行

稼働しているコンテナで別コマンドを実行できます。

$ docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
ab3401309f2b        centos:7            "/bin/bash"         About an hour ago   Up About a minute                       centos7_it2
$ 
$ docker container exec ab3401309f2b /bin/echo hello world
hello world

stop|コンテナ停止(SIGTERM)

コンテナで稼働しているプロセスに SIGTERMシグナル を送り、コンテナ停止します。

$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                   NAMES
f53b852eca66        xxxx/sample         "/usr/sbin/httpd -D …"   33 minutes ago      Up 33 minutes       0.0.0.0:10080->80/tcp   sample_container
ab3401309f2b        centos:7            "/bin/bash"              About an hour ago   Up About an hour                            centos7_it2
$ 
$ docker container stop f53b852eca66
f53b852eca66
$ 
$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
f53b852eca66        xxxx/sample         "/usr/sbin/httpd -D …"   33 minutes ago      Exited (0) 2 seconds ago                       sample_container
ab3401309f2b        centos:7            "/bin/bash"              About an hour ago   Up About an hour                               centos7_it2

kill|コンテナ停止(SIGKILL)

コンテナで稼働しているプロセスに SIGKILLシグナル を送り、コンテナ停止します。

$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
f53b852eca66        xxxx/sample         "/usr/sbin/httpd -D …"   33 minutes ago      Exited (0) 31 seconds ago                       sample_container
ab3401309f2b        centos:7            "/bin/bash"              About an hour ago   Up About an hour                                centos7_it2
$ 
$ docker container kill ab3401309f2b
ab3401309f2b
$ 
$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS               NAMES
f53b852eca66        xxxx/sample         "/usr/sbin/httpd -D …"   34 minutes ago      Exited (0) 47 seconds ago                        sample_container
ab3401309f2b        centos:7            "/bin/bash"              About an hour ago   Exited (137) 2 seconds ago                       centos7_it2

start|コンテナ起動

停止しているコンテナを起動することができます。

$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS               NAMES
f53b852eca66        xxxx/sample         "/usr/sbin/httpd -D …"   37 minutes ago      Exited (0) 3 minutes ago                         sample_container
ab3401309f2b        centos:7            "/bin/bash"              About an hour ago   Exited (137) 3 minutes ago                       centos7_it2
$ 
$ docker container start ab3401309f2b
ab3401309f2b
$ 
$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
f53b852eca66        xxxx/sample         "/usr/sbin/httpd -D …"   37 minutes ago      Exited (0) 4 minutes ago                       sample_container
ab3401309f2b        centos:7            "/bin/bash"              About an hour ago   Up 3 seconds                                   centos7_it2

restart|コンテナ再起動

$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
f53b852eca66        xxxx/sample         "/usr/sbin/httpd -D …"   37 minutes ago      Exited (0) 4 minutes ago                       sample_container
ab3401309f2b        centos:7            "/bin/bash"              About an hour ago   Up 25 seconds                                  centos7_it2
$ 
$ docker container restart ab3401309f2b

ab3401309f2b
$ 
$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
f53b852eca66        xxxx/sample         "/usr/sbin/httpd -D …"   38 minutes ago      Exited (0) 4 minutes ago                       sample_container
ab3401309f2b        centos:7            "/bin/bash"              About an hour ago   Up 2 seconds                                   centos7_it2

rm|コンテナ削除

停止しているコンテナを削除できます。

$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
f53b852eca66        xxxx/sample         "/usr/sbin/httpd -D …"   38 minutes ago      Exited (0) 5 minutes ago                       sample_container
ab3401309f2b        centos:7            "/bin/bash"              About an hour ago   Up 34 seconds                                  centos7_it2
$ 
$ docker container rm f53b852eca66
f53b852eca66
$ 
$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
ab3401309f2b        centos:7            "/bin/bash"         About an hour ago   Up 47 seconds                           centos7_it2

prune|停止中の全コンテナ削除

Docker1.13以降 で利用できます。

$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                         PORTS                   NAMES
f53b852eca66        xxxx/sample         "/usr/sbin/httpd -D …"   25 minutes ago      Up 25 minutes                  0.0.0.0:10080->80/tcp   wizardly_darwin
2a2e0962f730        xxxx/sample         "/usr/sbin/httpd -D …"   30 minutes ago      Exited (0) 25 minutes ago                              heuristic_kapitsa
ab3401309f2b        centos:7            "/bin/bash"              About an hour ago   Up About an hour                                       centos7_it2
f87019b2f4f9        centos:7            "/bin/bash"              About an hour ago   Exited (0) About an hour ago                           centos7_it1
3ee45f3b4303        centos:7            "/bin/echo hello wor…"   About an hour ago   Exited (0) About an hour ago                           centos7_echo
00e4090783ad        centos:7            "/bin/bash"              About an hour ago   Exited (0) About an hour ago                           centos7
4a5937b99bef        centos:7            "/bin/bash"              About an hour ago   Exited (0) About an hour ago                           suspicious_borg
55baaf1423ec        centos:7            "/bin/bash"              About an hour ago   Exited (0) About an hour ago                           laughing_keldysh
$ 
$ docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
2a2e0962f730d6d8d3fdec5d2753b8d58375ef5c649bfdcdceb6c7c976f5866b
f87019b2f4f9e9a277aaa81d2fbd7c9717fd52047cf4b06bb4e52b1328a903e3
3ee45f3b430358c625c60eebbdc4d36b1d8e1a6dfd2fccdc09f2f2ae57eae0c5
00e4090783adb6d72de19c71ac3912d17b963625251a9dc66423b84fa440042e
4a5937b99bef00222a89f0ca2b57c516e78bb43e461b1bc111075eb83811300d
55baaf1423ec6bca2a6c246b2820d5895a1ff1cd210c0cb117c5877c2a190fcd

Total reclaimed space: 705B
$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                   NAMES
f53b852eca66        xxxx/sample         "/usr/sbin/httpd -D …"   25 minutes ago      Up 25 minutes       0.0.0.0:10080->80/tcp   wizardly_darwin
ab3401309f2b        centos:7            "/bin/bash"              About an hour ago   Up About an hour                            centos7_it2

rename|コンテナ名称変更

$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                   NAMES
f53b852eca66        xxxx/sample         "/usr/sbin/httpd -D …"   27 minutes ago      Up 27 minutes       0.0.0.0:10080->80/tcp   wizardly_darwin
$ 
$ docker container rename f53b852eca66 sample_container
$ 
$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                   NAMES
f53b852eca66        xxxx/sample         "/usr/sbin/httpd -D …"   28 minutes ago      Up 28 minutes       0.0.0.0:10080->80/tcp   sample_container

ls|コンテナ一覧表示

稼働中のコンテナを表示します。

$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                   NAMES
f53b852eca66        xxxx/sample         "/usr/sbin/httpd -D …"   7 minutes ago       Up 7 minutes        0.0.0.0:10080->80/tcp   wizardly_darwin
ab3401309f2b        centos:7            "/bin/bash"              29 minutes ago      Up 29 minutes                               centos7_it2

-aオプション を利用すると、停止したコンテナも表示します。

$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                   NAMES
f53b852eca66        xxxx/sample         "/usr/sbin/httpd -D …"   7 minutes ago       Up 7 minutes                0.0.0.0:10080->80/tcp   wizardly_darwin
2a2e0962f730        xxxx/sample         "/usr/sbin/httpd -D …"   12 minutes ago      Exited (0) 7 minutes ago                            heuristic_kapitsa
ab3401309f2b        centos:7            "/bin/bash"              29 minutes ago      Up 29 minutes                                       centos7_it2
f87019b2f4f9        centos:7            "/bin/bash"              29 minutes ago      Exited (0) 29 minutes ago                           centos7_it1
3ee45f3b4303        centos:7            "/bin/echo hello wor…"   31 minutes ago      Exited (0) 31 minutes ago                           centos7_echo
00e4090783ad        centos:7            "/bin/bash"              33 minutes ago      Exited (0) 33 minutes ago                           centos7
4a5937b99bef        centos:7            "/bin/bash"              38 minutes ago      Exited (0) 38 minutes ago                           suspicious_borg
55baaf1423ec        centos:7            "/bin/bash"              43 minutes ago      Exited (0) 43 minutes ago  

inspect|コンテナ詳細表示

$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                   NAMES
f53b852eca66        xxxx/sample         "/usr/sbin/httpd -D …"   15 minutes ago      Up 14 minutes       0.0.0.0:10080->80/tcp   wizardly_darwin
ab3401309f2b        centos:7            "/bin/bash"              36 minutes ago      Up 36 minutes                               centos7_it2
$ 
$ docker container inspect ab3401309f2b
[
    {
        "Id": "ab3401309f2b5242db3e8896d96d1c2150dbb94a6eb89325d5abe2e9ee5266b0",
        "Created": "2018-09-15T04:08:51.2140924Z",
        "Path": "/bin/bash",
    (省略)

フォーマット指定して表示することもできます。

$ docker container inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ab3401309f2b
172.17.0.2

port|ポート情報表示

$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                   NAMES
f53b852eca66        xxxx/sample         "/usr/sbin/httpd -D …"   15 minutes ago      Up 14 minutes       0.0.0.0:10080->80/tcp   wizardly_darwin
ab3401309f2b        centos:7            "/bin/bash"              36 minutes ago      Up 36 minutes                               centos7_it2
$ 
$ docker container port f53b852eca66
80/tcp -> 0.0.0.0:10080

top|実行プロセス表示

$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                   NAMES
f53b852eca66        xxxx/sample         "/usr/sbin/httpd -D …"   15 minutes ago      Up 14 minutes       0.0.0.0:10080->80/tcp   wizardly_darwin
ab3401309f2b        centos:7            "/bin/bash"              36 minutes ago      Up 36 minutes                               centos7_it2
$ 
$ docker container top f53b852eca66
PID                 USER                TIME                COMMAND
7930                root                0:00                /usr/sbin/httpd -D FOREGROUND
7974                48                  0:00                /usr/sbin/httpd -D FOREGROUND
7975                48                  0:00                /usr/sbin/httpd -D FOREGROUND
7976                48                  0:00                /usr/sbin/httpd -D FOREGROUND
7977                48                  0:00                /usr/sbin/httpd -D FOREGROUND
7978                48                  0:00                /usr/sbin/httpd -D FOREGROUND

stats|リソース使用状況表示

$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                   NAMES
853d0a231492        xxxx/sample         "/usr/sbin/httpd -D …"   2 minutes ago       Up About a minute   0.0.0.0:10080->80/tcp   unruffled_bassi
$ 
$ docker container stats 853d0a231492

以下表示に切り替わります。

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
853d0a231492        unruffled_bassi     0.01%               6.641MiB / 3.855GiB   0.17%               968B / 0B           0B / 0B             6

update|リソース設定変更

$ docker container inspect 853d0a231492|grep Memory
            "Memory": 0,
            "KernelMemory": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
$
$ docker container update -m 512m --memory-swap 1024m 853d0a231492
853d0a231492
$
$ docker container inspect 853d0a231492|grep Memory
            "Memory": 536870912,
            "KernelMemory": 0,
            "MemoryReservation": 0,
            "MemorySwap": 1073741824,
            "MemorySwappiness": null,

logs|ログ表示

コンテナが作成されてからの標準出力を確認できます。

$ docker container run --name centos7 centos:7 ls -a
.
..
.dockerenv
anaconda-post.log
bin
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
$ 
$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
2f3fc2d9881a        centos:7            "ls -a"             26 seconds ago      Exited (0) 25 seconds ago                       centos7
$ 
$ docker container logs 2f3fc2d9881a
.
..
.dockerenv
anaconda-post.log
bin
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var

diff|イメージとコンテナの差異表示

コンテナを起動して、 httpd をインストールします。

$ docker container run -it --name centos7 centos:7
[root@5ae6aa50f86b /]# 
[root@5ae6aa50f86b /]# yum install -y httpd
Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
 * base: ftp-srv2.kddilabs.jp
 * extras: ftp-srv2.kddilabs.jp
    (省略)
  mailcap.noarch 0:2.1.41-2.el7

Complete!
[root@5ae6aa50f86b /]# $
$

Ctrl + p + q で抜けます(コンテナ内のプロセスは起動したままとなる)。
以下のように、ファイルシステムの変更を確認できます。

$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
5ae6aa50f86b        centos:7            "/bin/bash"         3 minutes ago       Up 3 minutes                            centos7
$
$ docker container diff 5ae6aa50f86b
A /boot
A /boot/grub
A /boot/grub/splash.xpm.gz
C /run
A /run/httpd
A /run/httpd/htcacheclean
C /usr
C /usr/libexec
A /usr/libexec/initscripts
A /usr/libexec/initscripts/legacy-actions
A /usr/libexec/initscripts/legacy-actions/httpd
A /usr/libexec/initscripts/legacy-actions/httpd/configtest
    (省略)

commit|新しいイメージ作成

コンテナから新しいイメージを作成することができます。

$ docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
5ae6aa50f86b        centos:7            "/bin/bash"         9 minutes ago       Up 9 minutes                            centos7
$ 
$ docker container commit 5ae6aa50f86b xxxx/httpd:v1.0
sha256:a3b094627de02d0e03c218b8b20bfd563bb24b71e6506fba0100c7421afa3bfa
$ 
$ docker image ls 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
xxxx/httpd          v1.0                a3b094627de0        10 seconds ago      326MB
xxxx/sample         latest              405c0c2128b0        6 hours ago         326MB
yyyy/sample         latest              405c0c2128b0        6 hours ago         326MB
ubuntu              18.04               cd6d8154f1e1        9 days ago          84.1MB
centos              7                   5182e96772bf        5 weeks ago         200MB
$ 
$ docker image history a3b094627de0
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
a3b094627de0        58 seconds ago      /bin/bash                                       126MB               
5182e96772bf        5 weeks ago         /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B                  
<missing>           5 weeks ago         /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B                  
<missing>           5 weeks ago         /bin/sh -c #(nop) ADD file:6340c690b08865d7e…   200MB 
よかったらシェアしてね!
目次