前書き
Shipyardは、Dockerサーバーの管理ツールです。 Dockerは、コンテナ化に使用される最先端のソフトウェアです。 Shipyardでは、既存のコンテナを開始または停止したり、新しいコンテナを作成したりするために、各サーバーが実行しているコンテナを確認できます。
サーバーでShipyardをセットアップしたら、グラフィックインターフェース、コマンドラインインターフェース、またはAPIを使用してアクセスできます。 造船所には、他のDocker https://www.digitalocean.com/community/tutorials/the-docker-ecosystem-scheduling-and-orchestration [オーケストレーションツール]の高度な機能の一部が欠けていますが、設定は非常に簡単で、使用して、あなたはそれを自分で管理し、ホストすることができます。
このチュートリアルでは、Shipyardをインストールし、それをDockerサーバーに接続し、それを使用して新しいコンテナーを作成および起動する方法について説明します。 最後に、サーバーでShipyardを実行してDockerホストを管理する必要があります。
前提条件
このチュートリアルを実行するには、次のものが必要です。
-
Docker 1.5.0イメージを含む1つのUbuntu 14.04ドロップレット。
Docker 1.5.0画像オプションは、[アプリケーションの選択]タブの[アプリケーション]タブにあるドロップレット作成ページにあります。 https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-getting-started [このチュートリアル]に従って、既存のドロップレットにDockerをインストールすることもできます。
注意:Ubuntu 14.04の標準リポジトリの `+ docker.io +`パッケージは非常に古い(バージョン0.9.1)。 Shipyardを使用するには、上記の方法のいずれかを使用してDockerの最新バージョンをインストールする必要があります。
ステップ1-造船所の設置
このステップでは、造船所をインストールします。 このチュートリアルのコマンドはすべてルート権限を必要とするため、ルートユーザーとしてDropletに単純にログインするのが最も簡単です。 非rootユーザーとしてログインしている場合、 `+ sudo su`を実行してrootユーザーに切り替えることができます。
Dockerを実行したら、Dockerイメージとして出荷されるShipyardをインストールするのは非常に簡単です。 必要なのは、Dockerレジストリからイメージを取得し、必要なコンテナーを実行することだけです。 まず、https://docs.docker.com/userguide/dockervolumes/ [データボリュームコンテナー]を作成して、造船所のデータベースデータを保持します。 このコンテナはそれ自体では何もしません。造船所のすべてのデータの場所を示す便利なラベルです。
docker create --name shipyard-rethinkdb-data shipyard/rethinkdb
データボリュームコンテナが作成されたので、Shipyardのデータベースサーバーを起動して、それらをリンクできます。
docker run -it -d --name shipyard-rethinkdb --restart=always --volumes-from shipyard-rethinkdb-data -p 127.0.0.1:49153:8080 -p 127.0.0.1:49154:28015 -p 127.0.0.1:29015:29015 shipyard/rethinkdb
これにより、分散データベースであるhttps://www.digitalocean.com/community/tutorials/how-to-install-and-configure-rethinkdb-on-an-ubuntu-12-04-vps[RethinkDB]を実行するコンテナが起動し、サーバー自体でローカルにのみアクセスできるようにします。 ブラウザで `+ http://:49153 +`にアクセスしようとしても、何も表示されないはずです。
Shipyardのデータベースが起動したので、別のコンテナを起動してShipyardをデータベースにリンクすることにより、Shipyard自体を実行できます。
docker run -it -p 8080:8080 -d --restart=always --name shipyard --link shipyard-rethinkdb:rethinkdb shipyard/shipyard
ポート `+ 8080 +`を使用して、実行中のShipyardインスタンスにアクセスできるようになりました。
ステップ2-造船所へのアクセス
Shipyardが実行されたので、それにアクセスする必要があります。 造船所には、GUI、コマンドラインインターフェイス(CLI)、またはAPIからアクセスできます。 まず、CLIにアクセスします。
CLIを使用した造船所へのアクセス
別のコンテナを実行することにより、Shipyard CLIにアクセスできます。
docker run -ti --rm shipyard/shipyard-cli
`+ -ti `フラグはコンテナがインタラクティブであることを確認し、 `-rm +`フラグはこれを使い捨てコンテナにします。つまり、処理が完了すると自動的に削除されます。
次のようなShipyard CLIプロンプトが表示されます: + shipyard cli> +
。 利用可能なコマンドのリストを取得するには、「+ shipyard help +」と入力します。
このコマンドプロンプトは、手順1で設定したShipyardインスタンスにまだ接続されていないため、最初に接続しましょう。
shipyard login
URLの入力を求められます。 「+ http://:8080+」と入力します。 次に、ユーザー名とパスワードの入力を求められます。 ユーザー名とパスワードはデフォルトで設定されています。ユーザー名に「+ admin 」、パスワードに「 shipyard +」を入力します。 その後、造船所のプロンプトに戻ります。
これで、Shipyardインスタンスに* admin *としてログインしました。 デフォルトのパスワードをそのままにしておくと、セキュリティ上の大きなリスクになるため、変更してみましょう。
shipyard change-password
新しいパスワードを選択して確認する必要があります。 新しいパスワードが安全であり、覚えられるようにしてください。 * CTRL + D *を押して造船所CLIを終了できます。
Shipyardコマンドラインは毎回Shipyardインスタンスに接続する必要があるため、Dockerコンテナーを実行できるシステムでShipyardコマンドラインを実行し、サーバーで実行されているShipyardインスタンスに接続できます。
GUIを使用した造船所へのアクセス
次に、造船所のグラフィックインターフェースを見てみましょう。 アクセスするには、ブラウザで「+ http://:8080+」を開きます。 これにより、ログイン画面が表示されます。 ユーザー名「+ admin +」と選択した新しいパスワードを使用します。
ログインすると、Shipyardは* Engines *タブを表示し、Shipyardクラスターにまだエンジンがないことを警告します。 _engine_は、コンテナを実行できるDockerホストです。 ここで、Shipyardで管理する各Dockerサーバーを追加します。
ステップ3-エンジンの追加
Shipyardを展開したばかりのDropletもDockerホストであるため、Shipyardで管理できます。 それを行う前に;ただし、サーバーとしてエンジンを造船所に追加する必要があります。
デフォルトでは、DockerはUnixソケット `+ / var / run / docker.sock `でリッスンするように設定されていますが、Shipyardインスタンスからそのソケットにアクセスすることはできません。 ポートでリクエストをリッスンするようにDockerを構成する必要があります。 これを行うには、お気に入りのテキストエディターを使用してDocker構成ファイルを編集します。 (ここでは、 ` nano +`を使用します。)
nano /etc/default/docker
最後に、次の行を追加します。
DOCKER_OPTS="-H tcp://:4243 -H unix:///var/run/docker.sock"
これにより、Dockerがポート `+ 4243 +`で接続を受け入れるようになりますが、サーバー自体からのみです。 Dockerを再起動して、新しい構成をロードします。
service docker restart
これにより、造船所のコンテナも再起動されます。 `+-restart = always +`でコンテナを実行したため、コンテナは自動的に復帰するはずです。 これを確認するには、次を実行します。
docker ps
何らかの理由で造船所のコンテナが起動しなかった場合は、 `+ docker start shipyard-rethinkdb shipyard`を実行して手動でコンテナを再起動できます。
Dockerホストが適切に設定されたので、エンジンとしてShipyardに追加できます。 Shipyard GUIにアクセスして、* Engines *タブに移動します。 * +追加*ボタンをクリックします。 これは次のようになります。
image:https://assets.digitalocean.com/articles/wordpress_shipyard/1.png [「エンジンの追加」画面には「名前」や「ラベル」などの入力フィールドがあります]
次のフィールドを追加します。
-
名前:ドロップレットのホスト名など、現在のドロップレットとしてエンジンを認識できる名前を使用します。
-
ラベル:エンジンに追加するラベルにより、エンジンで実行できるコンテナを制御できます。 このドロップレットの使用目的に応じて、制作やテストなどのラベルを使用できます。
-
アドレス:開いたばかりのDockerポートを使用します:
+ http://:4243 +
次に、下部にある[追加]ボタンをクリックします。 これで、造船所はDockerホストに接続し、接続を確認して、エンジンとして追加します。 これが完了すると、[エンジン]タブに戻ります。 エンジンは最初はオフラインとしてリストされます。 1、2秒待ってページを更新すると、Dockerホストの詳細が表示されるはずです。
ステップ4-造船所を使用したコンテナの展開
DockerホストをエンジンとしてShipyardに追加したので、Shipyardを使用してコンテナを開始、停止、展開できます。
Shipyard GUIにアクセスし、* Containers *タブを見てください。 これにより、Shipyardに追加したすべてのDockerホストで実行されているすべてのコンテナーが一覧表示されます。 他に何もしなかった場合、このタブには少なくとも3つのコンテナが表示され、そのうち2つが実行されています。
image:https://assets.digitalocean.com/articles/wordpress_shipyard/2.png [「コンテナ」タブには「shipyard」、「shipyard-rethinkdb」、「shipyard-rethinkdb-data」をリストする必要があります]
新しいWordpressブログを展開してみましょう。 公式のDockerリポジトリイメージを使用して、MySQLとWordpressコンテナーを展開する必要があります。
-
+デプロイ*ボタンをクリックします。 次の画面では、展開するコンテナを構成できます。 以下に指定されたフィールドに情報を入力します。
image:https://assets.digitalocean.com/articles/wordpress_shipyard/3.png [フィールド:画像、コンテナ名]
-
画像:「+ mariadb +」と入力します。 (MariaDBはMySQLのオープンソースフォークです。)
-
コンテナ名:好きなものを使用できます。
+ mysql-test
。 -
環境:画像の説明から、使用できる環境変数がわかります。 この場合、 `+ MYSQL_ROOT_PASSWORD = 6f23b328e7 +`を使用します。
image:https://assets.digitalocean.com/articles/wordpress_shipyard/4.png [フィールド:ポート、タイプ、再起動ポリシー、ラベル]
-
タイプ:これにより、コンテナを複数のエンジンに展開する方法が決まります。 この場合、「+ service +」を使用します。
-
ラベル:これは、コンテナをエンジンに一致させるために使用されます。 エンジンに割り当てたラベルの1つを確認するだけです。
-
再起動ポリシー:エラーまたはDockerの再起動後にコンテナを自動的に再起動するかどうかを決定します。 この場合、「+ no +」のままにしておきます。
-
Deploy *をクリックします。 コンテナの起動にはしばらく時間がかかります。 コンテナリストにリダイレクトされます。コンテナリストには、
+ mysql-test +
(または使用した名前)という名前のコンテナが含まれているはずです。
Shipyardを使用して最初のDockerコンテナをデプロイしました!
次に、同じプロセスを使用して、MySQLコンテナーにリンクされたWordPressコンテナーを展開します。 [* +デプロイ]ボタンをもう一度クリックして、次の情報を入力します。
-
画像:
+ wordpress
-
名前:
+ wordpress-test +
-
リンク:
+:mysql
-
タイプ:
+ service +
-
ラベル:エンジンに使用したものを確認してください。
-
再起動ポリシー:これを `+ no +`のままにします。
もう1つやることがあります。このWordPressコンテナのWebコンテンツにどこからでもアクセスできるようにしたいので、ポート「80」を公開する必要があります。 これを行うには、*ポート*という見出しの隣のプラス記号をクリックします。
image:https://assets.digitalocean.com/articles/wordpress_shipyard/5.png [tcpポート1234をコンテナポート80にマッピング]
-
Protocol で TCP を選択し、 IP を空白のままにし、 1234 を Port として、 80 を Container Port *として入力します。
これで、* Deploy *をクリックできます。 もう一度、コンテナリストにリダイレクトされるまでしばらく時間がかかります。 リストには、 `+ wordpress-test +`という名前のコンテナも表示されるはずです。 詳細を表示するには、その隣のリンクをクリックしてください。
image:https://assets.digitalocean.com/articles/wordpress_shipyard/6.png [造船所のコンテナ詳細画面]
*ポート*の下に、WordPressコンテナのポート「80」がサーバーのポート「1234」に公開されていることがわかります。 造船所は、このリストをクリック可能なリンクにして、公開された住所に移動するために使用できます。
このリンクをクリックしてください。 これにより、WordPressインストールウィザードが表示されます。 そのページのフィールドに入力すると、新しいWordPressブログにログインし、ウェブサイトとして表示できるようになります。
結論
Shipyardを使用して、実際のアプリケーションをDockerホストにデプロイすることに成功しました!
サーバーでShipyardが稼働しています。 また、Dockerを使用して追加のサーバーを構成し、管理のためにそれらをShipyardインスタンスに接続できる必要があります。 また、CLIとGUIを使用してShipyardインスタンスに接続する方法を学び、GUIを使用してDockerホストに新しいコンテナーをデプロイする方法を学びました。
これで、https://registry.hub.docker.com/ [Docker Registry]で利用可能な数千のWebアプリケーションを自由に試すことができます。 たとえば、https://www.digitalocean.com/community/tutorials/docker-explained-how-to-containerize-and-useで説明されているように、Nginxコンテナーをデプロイして、より読みやすいURLで新しいWordPressブログをホストできます。 -nginx-as-a-proxy [このチュートリアル]。