アプリケーションの共有
ここまでにイメージをビルドしたので、それを共有していきます。 Docker イメージを共有するためには Docker レジストリを利用することになります。 デフォルトのリポジトリは Docker Hub です。 これはここまでに利用してきたイメージがすべて収容されている場所です。
Docker ID
Docker ID は Docker Hub にアクセスするためのものです。 Docker Hub は世界でも最大規模を誇るコンテナーイメージのライブラリおよびコミュニティです。 無料の Docker ID をまだ取得していない場合は、作成しておいてください。
リポジトリの生成
イメージをプッシュするためには、あらかじめ Docker Hub 上にリポジトリを生成しておくことが必要です。
Docker Hub に サインアップ またはサインインします。
Create Repository (リポジトリ生成) ボタンをクリックします。
リポジトリ名は
getting-startedとします。 Visibility は Public とします。Create (生成) をクリックします。
以下の画像から、Docker Hub が示す Docker コマンドを見ることができます。 このコマンドはリポジトリへのプッシュを行うものです。

イメージのプッシュ
Docker Hub にイメージをプッシュしていきます。
コマンドラインから以下を実行します。
docker push docker/getting-startedそうすると以下のようなエラーが出力されます。
$ docker push docker/getting-started The push refers to repository [docker.io/docker/getting-started] An image does not exist locally with the tag: docker/getting-startedこのエラーは起こるべくして起きます。 それはまだイメージへのタグづけがまだ正しく行われていないためです。 Docker は
docker/getting-startedという名前のイメージを探します。 しかし今あるローカルイメージの名前は、まだgetting-startedです。これを確認するために以下を実行します。
docker image lsこれを解決するには、まず
docker login YOUR-USER-NAMEを実行して、ご自身の Docker ID を使った Docker Hub へのサインインを行います。docker tagコマンドを実行してgetting-startedイメージに対して新たな名前を設定します。YOUR-USER-NAMEの部分は利用している Docker ID に置き換えてください。$ docker tag getting-started YOUR-USER-NAME/getting-startedそこでもう一度
docker pushコマンドを実行します。 Docker Hub の画面からコマンドのコピーを行っている場合、tagnameの部分を取り除くこともできます。 イメージ名にタグをつけていない場合にはそのようにします。 イメージ名に対してタグ名をつけなかった場合、Docker はlatestというタグ名を利用します。$ docker push YOUR-USER-NAME/getting-started
新たなインスタンス上でのイメージ実行
イメージをビルドしそれをレジストリにプッシュしました。 これにより Docker をインストールしているマシンであれば、どこでもアプリケーションを実行できるようになりました。 別のコンピューターやクラウドインスタンス上において、このイメージをプルして実行してみてください。
まとめ
本節ではイメージを共有する方法として、レジストリにイメージをプッシュする方法を学びました。 そして新たなインスタンスを使って、プッシュしたばかりのイメージを実行しました。 CI パイプラインではごく普通のことであり、そこではイメージを生成しレジストリにプッシュします。 そして本番環境であればイメージの最新版を利用します。
関連情報
次のステップ
次節では、コンテナー化したアプリケーション内のデータを保存する方法について学びます。
DB への保存