コンテナを元にイメージを作る
1. ベースになるUbuntu 20.04をPULLする
$ docker pull ubuntu:20.04
20.04: Pulling from library/ubuntu
345e3491a907: Pull complete
57671312ef6f: Pull complete
5e9250ddb7d0: Pull complete
Digest: sha256:adf73ca014822ad8237623d388cedf4d5346aa72c270c5acc01431cc93e18e2d
Status: Downloaded newer image for ubuntu:20.04
docker.io/library/ubuntu:20.04
2. Ubutu 20.04のコンテナを起動してカスタマイズする
$ docker run --name my-ubuntu-2004 -it ubuntu:20.04 /bin/bash # (1)
root@cb61f16f968d:/# echo hello > /tmp/test.txt # (2)
root@cb61f16f968d:/# exit # (3)
$ docker ps -a # (4)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cb61f16f968d ubuntu:20.04 "/bin/bash" About a minute ago Exited (0) 36 seconds ago my-ubuntu-2004
- (1) コンテナをmy-ubuntu-2004というコンテナ名で起動して、コンテナの中にbashシェルでログインして、
- (2) コンテナ内でカスタマイズする。ここでは/tmp/test.txtというファイルを作成している
- (3) コンテナからexitして出る
- (4) このコンテナのIDを確認する。ここでは cb61f16f968d
3. コンテナからイメージを作成する
$ docker commit cb61f16f968d ubuntu:my-ubuntu-2004
sha256:b009d9ccd5bf3ab2ad92c338ede72b183e519eb1daed0f26fb668981374b05df
- 上で確認したコンテナIDを指定して、COMMITする。ここではイメージ名 ubunu、タグ名 my-ubuntu-2004 としている
4. できたイメージからコンテナを起動して、コンテナの内容を確認する
$ docker run --name my-container -it -d ubuntu:my-ubuntu-2004 /bin/bash # (1)
ff6fa3a8558e0a8095c60ee052b819045fd19a89a1901d1430700c1e4f91ee40
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ff6fa3a8558e ubuntu:my-ubuntu-2004 "/bin/bash" 5 seconds ago Up 5 seconds my-container
$ docker exec my-container /usr/bin/cat /tmp/test.txt # (2)
hello
- (1) 上で作ったイメージ ubuntu:my-ubuntu-2004 を指定してコンテナを起動。ここでは確認作業しやすいように-it -dでbashが終了しないようにしている
- (2) コンテナに対してcat /tmp/test.txtを実行して、期待通りにhelloというカスタマイズした内容を確認
参考