#author("2021-06-04T05:28:24+09:00","default:ryuichi","ryuichi")
#author("2021-06-04T05:29:18+09:00","default:ryuichi","ryuichi")
* コンテナを元にイメージを作る [#m37b056d]

** 1. ベースになるUbuntu 20.04をPULLする [#j49dd571]

#shell(){{
$ 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
}}

- Ubuntu:20.04をPULLする

** 2. Ubutu 20.04のコンテナを起動してカスタマイズする [#v3620196]

#shell(){{
$ 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. コンテナからイメージを作成する [#rcbaad33]

#shell(){{
$ docker commit cb61f16f968d ubuntu:my-ubuntu-2004
    sha256:b009d9ccd5bf3ab2ad92c338ede72b183e519eb1daed0f26fb668981374b05df
}}

- 上で確認したコンテナIDを指定して、COMMITする。ここではイメージ名 ubunu、タグ名 my-ubuntu-2004 としている

** 4. できたイメージからコンテナを起動して、コンテナの内容を確認する [#k06be50b]

#shell(){{
$ 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というカスタマイズした内容を確認

** 参考 [#rdd57a53]

- https://www.scalyr.com/blog/create-docker-image/
- https://docs.docker.jp/engine/reference/commandline/commit.html
- https://docs.docker.jp/engine/reference/commandline/run.html

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS