Docker Hub で Docker イメージを管理する!

記事
IT・テクノロジー

Docker Hub で Docker イメージを管理する!

Docker イメージの保存場所は?
開発用の PC で作成した Docker のイメージはシステムのフォルダに保存されます。 基本的には Docker のコマンドで、イメージのリストなどをみられる仕組みになっています。 従って、Docker の基本的なコンセプトとして直接イメージを操作するような作りにはなっていません。

ただし、コマンドを利用して Dokcer のイメージをファイルとして保存(export)したり、読み込んだり(import)することはできます。

$ docker save --output [出力ファイル名].tar [Dockerのイメージ名]
で保存(export)できます。保存したファイルは以下のコマンドでシステムで利用できるように保存(import)できます。

$ docker load --input [入力ファイル名].tar
この方法を利用すれば、開発した Docker イメージを別のホストに移して稼働させる事ができます。

Docker Hub を利用した方が便利!

しかし、上のコマンドでファイルを使って管理するのは面倒です。 Docker 自体は、こうした問題を解消するために、インターネット上に「Docker Hub」というサービスを提供しています。 コンセプトは、GigHub と似ているサービスで、インターネット上に Docker のイメージを置いて、サーバーを経由して共有するという物です。 作成した、Docker のイメージを Docker Hub に置いておけば、Docker イメージを指定すれば、どのシステムからも作成した Docker イメージを利用、実行できます。

独自の Docker イメージを作成する際にベースになる Docker イメージなども多数置かれていて便利です。

このサービスを利用すれば、ファイルを介さずにインターネットの接続があれば、自由に Docker イメージを活用する事ができます。

Docker Hub を利用するには、Docker Hubに登録してアカウントを作成する必要があります。 無料から利用できますが、無料のアカウントの場合は、プライベートのレポジトリは一つしか作れません。(公開するレポジトリは無制限です)。幾つかプランがありますが、「Pro」のプランにすると年間契約で、月額5ドルかかりますが、このプランにするとプライベートの日公開レポジトリが無制限に作れるようになります。

そのほかに、イメージのダウンロードなども無料アカウントの場合は制限が大きくなっています。

取り敢えず、試しに利用する場合は、無料アカウントでも大きな問題はありませんので、まずは無料アカウントを取得してみて必要ならばプランを変更するというのがお勧めです。

Docker イメージの管理を Docker Hub で行うには?

開発マシーンで作成したり、ダウンロードした Docker イメージは開発用のマシーンに保存されて以下のコマンドで見ることができます。

$ docker images
Docker Hub で管理する場合、イメージの名前に、Docker Hub のアカウント名とレポジトリの名前を含んだタグを利用します。

アカウント名が「example」、レポジトリ名が「sample-rep」の場合は、イメージのタグが「myimage」「example/sample-rep:myimage」のような名前になります。

Docker Hub にイメージを置く場合は、Docker Hub で名前が重複しないようように、ユーザー名やレポジトリー名を加えて

$ docker build -t sample_image .
これでイメージが作成されるのは、前回までの記事で書いた通りです。

これを、Docker Hub にアップロードするには、Docker Hub にログインする必要があります。

$ docker login
でユーザー名とパスワードを入力してログインします。 イメージにタグの設定をします。

$ docker tag sample_image:latest example/sample-rep:latest
イメージを Docker Hub にプッシュします

$ docker push exmaple/sample-rep:latest
これで、Docker Hub にイメージが保存されます。

実行する場合は、イメージの名前をしてすれば実行できます

$ docker run example/sample-rep:latest
(イメージによってはポートの設定などのように他にオプションが必要な場合があります)

簡単にデプロイできるのが最大の特徴!
Docker と Docker Hub を組み合わせて利用すると、イメージの管理と公開が簡単に行えます。 Docker が稼働しているシステムならば基本的に、どこでも実行が可能なので、イメージをダウンロードして起動するだけです。

テストやデバッグを行いたい場合は、テストやデバッグ環境を簡単に作れるので、稼働中のシステムとは別に、ほぼ同じ環境が簡単に再現できるので、システムのアップグレードやデバッグを効率よく実行できます。

Docker Hub を利用することで、インターネットの接続があれば、ほぼどのシステムでも簡単にサービスをデプロイできるので、管理も簡単です。

まとめ
Docker を活用する場合、Docker Hub も合わせて利用して、Docker イメージを管理すると、開発やテストの効率を飛躍的に改善する事が可能です。

開発マシーンでも、実際の公開システムでもほぼ同じ環境の設定がほぼ自動的にできることになるので、テストやシステムのアップグレードもスムーズにできます。Docker のイメージを作成する際に基本的な環境設定は済んでいるので、イメージを指定してダウンロードして実行するだけですみます。

GitHub のように、一般公開もできますし、必要に応じてプライベートにもできるので、プロジェクトに応じた活用が可能です。公開されているイメージを元にカスタマイズも可能なので、公開されている機能を上手く利用すれば、開発も効率的に行えます。

Docker を活用する場合、Docker Hub も合わせて活用する事をお勧めします!
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す