ツヨシのブログ

技術的な事とか日常の事とか徒然なるままに

スポンサーリンク

【Day005】Dockerを使ったKaggle開発環境の構築(その3)::Docker imageを作成する(commit)

スポンサーリンク

こんにちはツヨシです。

9月になり少し涼しくなりました。エアコンもつけたり消したりと過ごしやすくなりました。 前回はDocker上でUbuntuを実行するということを行いました。

ginga0118.hatenablog.com

今回は作成したコンテナから新しいイメージを作成します。作成したイメージを共有することでDockerを使い同じ環境を持つことができます。イメージを作成するためには"commit"コマンドを使用します。

docs.docker.jp

これをふまえて、Dockerのイメージを作成する手順を説明します。

コンテナからDocker imageを作成する

今回はコンテナからDockerイメージを作成します。イメージを作成する手順として今回は次のように行います。

  1. 今あるコンテナを確認します。
  2. コンテナがUpでない場合はこれをUp状態にします。
  3. コンテナを起動します。
  4. コンテナの中に入り適当なファイル(ここではtestを作成します)
  5. コンテナから抜けます。
  6. コンテナがUpになっていることを確認します。
  7. コンテナからイメージを作ります
  8. 作成したイメージを確認する。

イメージにするコンテナの準備

上記の1-6の手順でコンテナ内に適当なファイルを作成します。ここまでは、以下のような今まで使用したコマンドを使っていきます。

$ docker ps -a
$ docker restart <container ID> 
$ docker exec -it <container ID> bash
ubuntu$ touch test
ubuntu$ exit
$ docker ps -a

これで、新しいコンテナが作成されました。実行後に次のような状態となっています。

f:id:ginga0118:20200910084755p:plain

作成されたコンテナIDは"20adc3c5c9e6"になります。これを使って新しいイメージを作成します。

コンテナから新しいイメージを作成

7の”コンテナからイメージを作ります”はcommitコマンドを使います。コマンドとしては次のようなコマンドになります。

$ docker commit <container ID> <image name>:<tag>

今回はは"20adc3c5c9e6、"としては"ubuntu"、に"new"を使用しました。このため、コマンドとしては以下のようになります。

$ docker commit 20adc3c5c9e6 ubuntu:new

実行後に次のようなメッセージが出した。

f:id:ginga0118:20200910085124p:plain

この後、8ではimagesコマンドを使い作成されたイメージの確認を行います。

$ docker images

イメージ確認のためのコマンドを実行すると、イメージIDが"fedde61e8efa"の新しいイメージが作成されたことがわかります。

f:id:ginga0118:20200910084613p:plain

まとめ

今回は"commit"コマンドを使い新しいイメージを作成しました。これにより自分でdockerイメージを作成することができるようになります。

この後、作成したイメージを共有することで他のユーザとの環境の共有ができるようになります。共有方法についてはDocker hubを使っていきます。使い方については次回説明したいと思います。

Docker/Kubernetes 実践コンテナ開発入門

Docker/Kubernetes 実践コンテナ開発入門