Part 6:アプリのデプロイ¶
必要条件¶
- Docker バージョン 1.13 以上のインストール
- Part 4 を入手。
- Part 1 の概要を読んでいること
- Part 2 のコンテナの作成方法学んでいること
- 自分で作成した
friendlyhello
イメージを レジストリに送信 して公開済みなのを確認します。ここでは、この共有イメージを使います。 - イメージをコンテナとしてデプロイできるのを確認します。次のコマンドを実行しますが、
ユーザ名
とリポジトリ
タグ
は皆さんのものに置き換えます。コマンドはdocker run -p 80:80 ユーザ名/リポジトリ:タグ
です。そしてhttp://localhost/
を表示します。 - Par t5 で作成した
docker-compose.yml
の 最終バージョン があること
はじめに¶
Choose an option
Docker CE(クラウド・プロバイダ)¶
Docker コミュニティ・エディションをプロダクションで使う方針であれば、Amazon Web Services や DeigalOcean、Microsoft Azure のような有名なサービスプロバイダ上のアプリ管理に、Docker Cloud を利用できます。
セットアップとデプロイをするには:
- 任意のプロバイダと Docker Cloud を接続し、 Docker Cloud に対して「Docker対応」の仮想マシンを自動的にプロビジョンする権限を付与
- Docker Cloud で計算資源と swarm の作成
- アプリのデプロイ
注釈
以降は Docker Cloud ドキュメントにリンクをしていますが、各ステップが終わりましたら、このページにお戻りください。
Docker Cloud へ接続¶
Docker Cloud は スタンダード・モード または swarm モード で実行できます。
Docker Cloud をスタンダード・モードで動かす場合は各サービス・プロバイダと Docker Cloud を接続するため、以下のドキュメントをご覧ください。
- Amazon Web Services setup guide
- DigitalOcean setup guide
- Microsoft Azure setup guide
- Packet setup guide
- SoftLayer setup guide
- Docker Cloud エージェントで自分のホストを使う
Docker Cloud を swarm モードで動かす場合は、次の swarm の作成 をご覧ください。
swarm の作成¶
..Ready to create a swarm?
swarm 作成の準備が整いましたか?
- Amazon Web Services (AWS) をお使いの場合は、 AWS で swarm を自動的に作成できます
- Microsoft Azure の場合は、 Azure で swarm を自動的に作成できます
- あるいは、 Docker Cloud UI を通して 自分でノードを作成し 、 Part 4 で学んだ
docker swarm init
とdocker swarm join
コマンドを Docker Cloud に対して SSH 経由で実行し 、最後に画面上部のトグルにある enable Sarm Mode(swarm モードの有効化) をクリックし、作成した Swarm を登録 します。
注釈
自分で用意したホストで Docker Cloud エージェントを使う 場合は、swarm モードのサポートがありません。Docker Cloud で 作成した swarm を登録 ください。
アプリのデプロイ¶
Docker Cloud を通して swarm に接続します 。Docker for Mac や Docker for Windows (Edge リリース)であれば、デスクトップのアプリ側メニューから、 直接 swarm に接続 できます。
あるいは別の方法として、ローカルホスト上でターミナルを開いての操作も行えますが、Docker コマンドを各クラウド・サービス・プロバイダの swarm に向ける必要があります。しかし、今から送ろうとするコマンドは、SSH を使ってコマンドを送る必要があるため、手順はいささか異なります。ここでは、自分のローカルのファイルシステムとリモートの swarm の両方を直接アクセスするため、小綺麗なコマンドを使ってみましょう。
docker stack deploy -c docker-compose.yml getstartedlab
以上です! アプリはプロダクションで稼働を開始し、環境は Docker Cloud によって管理されています。
おつかれさまでした!¶
これで Docker プラットフォーム全体としてのフルスタック、すなわち開発からデプロイへの流れを習得しました。
ここで扱わない機能も Docker Cloud にはありますが、これまで、コンテナ、イメージ、サービス、swarm、スタック、スケーリング、負荷分散ボリューム、場所の制約といった、基本的な考えを習得しました。
より深く学びたいですか? 私たちは以下のリソースを推奨します。