現在位置: ホーム / みらくるブログ / Docker 体験 その3 (Dockerfile を使用してコンテナーイメージを作成する)

Docker 体験 その3 (Dockerfile を使用してコンテナーイメージを作成する)

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 https://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 はもう少し続けます。
次回をお楽しみに。

タグ: