Docker入門① -Dockerコンテナ ハンズオン-
Docker入門② -Dockerイメージ ハンズオン-
Docker入門③ -Docker Hub ハンズオン-
Docker入門④ -Docker Compose 概要-
Docker入門⑤ -Docker Compose ハンズオン-
Docker Hub
前回は、Docker fileを記述し、その内容からDocker imageを作成し、コンテナを作成した。
今回は、作成したイメージをレジストリサービスであるDocker Hubに展開してみよう。
まずDocker Hubについて、公式サイトから引用し紹介する。
“Docker Hub はクラウド上のレジストリ・サービスであり、アプリケーションやサービス・コンテナの構築と配信を行います。コンテナ化されたイメージを見つけたり、配布したり、変更の管理、ユーザやチームのコラボレーション、開発パイプラインを通したワークフローの自動化といった集約されたリソースを提供します。”
Docker Hub 概要 http://docs.docker.jp/docker-hub/overview.html
クラウドにあるレジストリサービスを利用するため、アカウントを取得する必要があり個人のメールアドレス、パスワードなどを入力する必要がある。
※Docker HUBのアカウント取得方法は以下を参照
https://docs.docker.com/docker-hub/
下記に実際のDocker Hubを示す。
次に自分のローカルにあるDockerイメージをDocker Hubに展開する方法を紹介する。
まずコマンドプロンプトでDocker HUBにloginする。
※ login の際には Docker demon socketへのアクセスが必要でpermission denied になるので root 権限に切り替える
$ sudo su –
# docker login
[自分のユーザネーム] と [パスワード] を入力
※図の例はすでに、ユーザーネームとパスワードを入力済みになっているため、Docker loginのみの入力でLoginに成功している。
※WARNING にあるように、Docker HUB への password が /root/.docker/config.json にbase64 でデコードできるパスワードが格納されることには注意したい。
自分のDocker HUBにpushするには、作成したイメージにDocker HUBの名前を付ける必要があるので、作成しているイメージにtagコマンドで名前をつける。
$ docker tag <現docker image> <後docker image>
<現docker image> docker-whale-test
<後docker image> ***/testtest
(***が自分のDocker HUBにあたる)
docker imagesでtagを確認
LocalにあるDocker imagesを自分のDocker HUBにpushする
$ docker push *** /testtest
Push完了!!
Docker HUBを確認すると今pushした内容が確認できる。
ここまでがDocker イメージを Docker HUB へpushする方法を紹介した。
次はlocalから Docker イメージを削除し、Docker HUBからpushしたイメージを取得してみよう。
まず、Localからイメージ *** /testtestを削除し、docker images を確認する
# docker rmi -f ***/testtest
自分のDocker HUBから *** /testtestを pull する。
# docker pull ***/testtest
最後に docker イメージを確認し、削除したイメージが復活していることを確認する。
# docker images
今回は、Docker HUBを登録し、作成したDockerfileを自分のDocker HUBにpushした。さらに作成したDocker file を削除しDocker HUBからそれをpullし、削除したDocker イメージを確認した。
これまで3回に渡り、Docker イメージをレポジトリから pull したり、自らイメージファイルを作成たり、それをレポジトリに上げたり、と様々な Docker のライフサイクルについて触れてきた。まとめとして、一連の関係性について、図解した絵とコマンドをおさらいする。
docker pull imagesの取得
docker run imagesからコンテナの立ち上げ
docker build imagesの自動作成※Dockerfileから自動作成
docker commit imagesの作成※既存コンテナからの修正する
docker tag コンテナへの名前つけ
docker inspect コンテナやImagesの調査
docker push imagesのプッシュ
今後は、複数のコンテナをまとめて管理するDocker Composeやホストマシン、クラウド、仮想環境などにDockerの実行環境をコマンドで作成できるツールである Docker MachineやDockerのクラスタリングをサポートするツールであるDocker Swarmについても触れていきたい。
参考資料
Dockerイメージの理解とコンテナのライフサイクル
https://www.slideshare.net/zembutsu/docker-images-containers-and-lifecycle
Docker公式サイト
http://docs.docker.jp/docker-hub/overview.html