Docker 体験 その2 (イメージの作成、Docker Hub へのアップロード、ダウンロード)
こんにちは、ニックネーム たいちょうです。
docker体験編です。第2日目となります。
1日目は、とりあえず動かすということで、それは成功しました。
とても簡単に言うと、以下の手順になります。CentOS の latest image をダウンロードして立ち上げる手順の復習です。
作成マシンは Fedora25 です。
# systemctl enable docker
# systemctl start docker
# groupadd docker
# usermod -aG docker taichou
$ id
$ docker pull centos:latest
$ docker images
$ docker run -it --name latest docker.io/centos /bin/bash
[root@6598cd67cfdb /]#
復習は終わりです。
さて、これからここに kea を構築してみます。
kea は ISC の新しい DHCP アプリケーションになります。
まずはここを見て、
http://kea.isc.org/wiki/Install
ここを参考にしました。
http://lists.isc.org/pipermail/kea-users/2016-January/000208.html
kea は、epel レポジトリに入っています。2016年1月にパッケージ化されたようなので、いちいちビルドする手間が省けます。
[root@6598cd67cfdb]# yum install wget
[root@6598cd67cfdb]# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@6598cd67cfdb]# rpm -ivh epel-release-latest-7.noarch.rpm
[root@6598cd67cfdb]# yum install kea
[root@6598cd67cfdb ~]# rpm -q kea
kea-1.1.0-1.el7.x86_64
インストールに成功しました。
ソースコードもチェックアウトしておきます。
[root@6598cd67cfdb ~]# git clone http://github.com/isc-projects/kea.git
[root@6598cd67cfdb ~]# ls
anaconda-ks.cfg epel-release-latest-7.noarch.rpm kea original-ks.cfg
ところで、この docker image を、Docker Hub に上げておきたいです。
Docker Hub には、一つだけレポジトリを作ることができます。
アカウントを作成しておきますが、アカウント作成方法の細部については省略します。
あとで何のイメージか人にもわかる用に、イメージに名前をつけます。
一度exitします。
[root@6598cd67cfdb ~]# exit
イメージを確認します。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/centos latest a8493f5f50ff 3 weeks ago 192.5 MB
Docker Hub のユーザ名が taichou だとします。centos7_kea というレポジトリを作成しておきます。
$ docker commit latest taichou/centos7_kea:ver1.0
sha256:xxxxxxxx
作成したイメージを確認します。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
taichou/centos7_kea ver1.0 aa2f983fde6d About a minute ago 620.7 MB
docker.io/centos latest a8493f5f50ff 3 weeks ago 192.5 MB
できていました。
では、これをアップロードします。
Docker Hub のユーザ名、パスワードをいれましょう。
$ 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
イメージをプッシュします。
$ docker push taichou/centos7_kea:ver1.0
The push refers to a repository [docker.io/taichou/centos7_kea]
e5b8d11c7593: Layer already exists
36018b5e9787: Layer already exists
ver1.0: digest: sha256:xxxxxx size: 742
Docker Hub を確認すると、圧縮されて保存されていました。
この Docker Hub 上のイメージを、別の端末にダウンロードしてみます。
これにより、遠隔地で作成したOSイメージを共有して、迅速に立ち上げられるでしょう。
一般ユーザで、Docker が使える様にします。一度やっているので、少し慣れましたね。
# systemctl enable docker
# systemctl start docker
# groupadd docker
# usermod -aG docker taichou
$ id
では、
$ 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
$ docker pull -a taichou/centos7_kea
Trying to pull repository docker.io/taichou/centos7_kea ...
sha256:xxxxxxxx: Pulling from docker.io/taichou/centos7_kea
93857f76ae30: Pull complete
b261ad51bd55: Pull complete
Digest: sha256:xxxxxxxx
Status: Downloaded newer image for docker.io/taichou/centos7_kea:ver1.0
イメージをダウンロードできたかどうか確認します。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/taichou/centos7_kea ver1.0 aa2f983fde6d About an hour ago 620.7 MB
イメージを起動してみます。
$ docker run -it --name ver1.0 taichou/centos7_kea:ver1.0 /bin/bash
[root@ab1ffb757909 /]#
[root@ab1ffb757909 /]# exit
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/taichou/centos7_kea ver1.0 aa2f983fde6d About an hour ago 620.7 MB
これで、ある OS(CentOS7同等以上が必須と言い切りましょう--本当は6.5以降なんだけど、ちなみに私はFedora25ですけど)上で作業した結果をその時のまま、Docker Hub を活用することによりどこでも取り出せることができ、それを再現することができます。
Docker は起動する手間もかからないので、サクっと実行できるお手軽感がいいです。
自分のやりたいことに合わせてやってみたら楽しいかもです。
お疲れさまです。第2日目の終了です。次回も Docker を続けます。次回をお楽しみに。
ニックネーム たいちょう でした。