Docker 体験 その3 (Dockerfile を使用してコンテナーイメージを作成する)
お疲れさまです。ニックネーム たいちょう です。Docker 体験編の第3日目です。
第2日目の記事はこちらです。
さて、前回までに作ったコンテナーイメージを立ち上げます。
[taichou@localhost ~]$ docker run -it --name ver1.0 taichou/centos7_kea:ver1.0 /bin/bash
[root@81d6f3dae645 /]#
前回までは、Docker Hub からコンテナーイメージをダウンロード後、そこにパッケージをインストールして、独自コンテナーイメージを作成したのでした。
今回は何をやるかというと、コンテナーイメージを Dockerfile により build してみます。
前回までに、kea をインストールしていましたが、それに加えて、今回は、README を追加してみます。
追加するファイルです。ディレクトリを作成して、そこにファイルをおきます。Dockerfile を使用してイメージを作成するときに、そのディレクトリと作成するコンテナーイメージのディレクトリを指定することにより、好きな場所に任意のファイルをコピーしてそれをコンテナーイメージの一部とすることができます。
$ mkdir DOCKER_TEST
$ vim README
------------------------------
# This docker image is a creation of the blog post.
# Enjoy!
------------------------------
では、Dockerfile を書いてみます。
$ vim Dockerfile
------------------------------
# Dockerfile for kea DHCP Server based on CentOS7
FROM taichou/centos7_kea:ver1.0
MAINTAINER taichou
RUN yum -y install kea
ADD add README /root/README
CMD bash
------------------------------
ビルドしますよー。
[taichou@localhost DOCKER_TEST]$ docker build -f Dockerfile .
Sending build context to Docker daemon 3.072 kB
Step 1 : FROM taichou/centos7_kea:ver1.0
---> aa2f983fde6d
Step 2 : MAINTAINER taichou
---> Using cache
---> c56b32fea8d0
Step 3 : RUN yum -y install kea
---> Using cache
---> b014460ec601
Step 4 : ADD README /root/README
---> f5a20da75405
Removing intermediate container 27ae34c5033c
Step 5 : CMD bash
---> Running in dbb3454518a0
---> 62624c59d0ac
Removing intermediate container dbb3454518a0
Successfully built 62624c59d0ac
[taichou@locallhost DOCKER_TEST]$
作成できたかどうか、確認します。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 62624c59d0ac 12 minutes ago 654.4 MB
taichou/centos7_kea ver1.0 aa2f983fde6d 3 days ago 620.7 MB
docker.io/centos latest a8493f5f50ff 3 weeks ago 192.5 MB
すでに kea がインストールされているんですが、あえてインストールしてみましたが、
既にインストールされているので、インストールされることはありませんでした。
どうやら、できたようなんですが、<none> <none> 62624c59d0ac となっているのがそれみたいです。名前を付けたいところです。
ver1.1 という名前を付けます。
$ docker tag 62624c59d0ac taichou/centos7_kea:ver1.1
名前がちゃんと付けられたかどうか確認します。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
taichou/centos7_kea ver1.1 62624c59d0ac 15 minutes ago 654.4 MB
taichou/centos7_kea ver1.0 aa2f983fde6d 3 days ago 620.7 MB
docker.io/centos latest a8493f5f50ff 3 weeks ago 192.5 MB
では、作成したイメージを、Docker Hub にアップしておきます。
まずは、ログインしておいて、
[taichou@localhost DOCKER_TEST]$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to http://hub.docker.com to create one.
Username (taichou):
Password:
Login Succeeded
コンテナーイメージをプッシュします。
[taichou@localhost DOCKER_TEST]$ docker push taichou/centos7_kea:ver1.1
The push refers to a repository [docker.io/taichou/centos7_kea]
10f7afe6c039: Pushed
90b8b39b4ee3: Pushed
e5b8d11c7593: Layer already exists
36018b5e9787: Layer already exists
ver1.1: digest: sha256:7cbade0869618ee466a8d4f3dbdd67507c65f5b0a3dd7b0e064b8c41f59317c4 size: 1161
[taichou@localhost DOCKER_TEST]$
おっと、README がちゃんとイメージに含まれているかを確認し忘れていました。
[taichou@localhost DOCKER_TEST]$ docker run -it --name ver1.1 taichou/centos7_kea:ver1.1 /bin/bash
[root@dc6fb0e4bc32 /]# ls
anaconda-post.log bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@dc6fb0e4bc32 /]# cat /root/README
# This docker image is a creation of the blog post.
# Enjoy!
どうやら、うまくいっていたみたいです。
今回は、Dockerfile により、コンテナーイメージをビルドしてみました。そして、それを Docker Hub にアップロードしました。
お疲れさまです。第3日目の終了です。Docker はもう少し続けます。
次回をお楽しみに。