このチュートリアルでは、Alibaba Cloud ECSインスタンスにRacherをインストールする方法と、Racherを使ってDockerアプリケーションを管理する方法を学びます。
本ブログは英語版からの翻訳です。オリジナルはこちらからご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。
#前提条件
このチュートリアルでは、以下のアイテムが必要です。
- 新たに作成した 2 台の Alibaba Cloud インスタンスと Ubuntu 16.04 がインストールされていること。
- Rancherサーバーとして機能する ECS インスタンスに設定されている静的 IP アドレス 192.168.0.100 と、ランチャークライアントとして機能する ECS インスタンスに設定されている静的 IP アドレス 192.168.0.103。
- 両方のインスタンスに root パスワードを設定します。
参考までに、新しい ECS インスタンスを作成してインスタンスに接続するを参照してください。次に、Ubuntu 16.04インスタンスにログインしたら、apt-get update -y
コマンドを実行して、ベースシステムを最新の利用可能なパッケージでアップデートします。
#Dockerをインストールする
このチュートリアルを始める前に、両方のインスタンスにDockerの最新の安定版がインストールされていることを確認する必要があります。デフォルトでは、Ubuntu 16.04のデフォルトリポジトリでは、最新の安定版Dockerは利用できません。そのため、インスタンスにDockerのリポジトリを追加する必要があります。
まず、以下のコマンドで apt が HTTPS 経由でリポジトリを利用できるようにします。
apt-get install apt-transport-https ca-certificates curl software-properties-common
次に、以下のコマンドでGPGの公式キーをダウンロードして追加します。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
次に、以下のコマンドで鍵の指紋を確認します。
apt-key fingerprint 0EBFCD88
出力は以下のようになります。
pub 4096R/0EBFCD88 2017-02-22
Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb) <docker@docker.com>
sub 4096R/F273FCD8 2017-02-22
次に、以下のコマンドでDockerリポジトリを追加します。
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
次に、リポジトリを更新し、以下のコマンドでDockerをインストールします。
apt-get update -y
apt-get install docker-ce=17.09.1~ce-0~ubuntu -y
Dockerをインストールしたら、以下のコマンドでDockerの状態を確認します。
systemctl status docker
出力は以下のようになります。
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-12-04 20:36:26 IST; 1min 0s ago
Docs: https://docs.docker.com
Main PID: 14498 (dockerd)
CGroup: /system.slice/docker.service
└─14498 /usr/bin/dockerd -H unix://
Dec 04 20:36:24 rancher dockerd[14498]: time="2018-12-04T20:36:24.456058066+05:30" level=warning msg="Your kernel does not support swap memory
Dec 04 20:36:24 rancher dockerd[14498]: time="2018-12-04T20:36:24.456185632+05:30" level=warning msg="Your kernel does not support cgroup rt pe
Dec 04 20:36:24 rancher dockerd[14498]: time="2018-12-04T20:36:24.456222954+05:30" level=warning msg="Your kernel does not support cgroup rt ru
Dec 04 20:36:24 rancher dockerd[14498]: time="2018-12-04T20:36:24.458818614+05:30" level=info msg="Loading containers: start."
Dec 04 20:36:25 rancher dockerd[14498]: time="2018-12-04T20:36:25.632077835+05:30" level=info msg="Default bridge (docker0) is assigned with an
Dec 04 20:36:25 rancher dockerd[14498]: time="2018-12-04T20:36:25.894066060+05:30" level=info msg="Loading containers: done."
Dec 04 20:36:26 rancher dockerd[14498]: time="2018-12-04T20:36:26.580044220+05:30" level=info msg="Docker daemon" commit=4d60db4 graphdriver(s)
Dec 04 20:36:26 rancher dockerd[14498]: time="2018-12-04T20:36:26.581073448+05:30" level=info msg="Daemon has completed initialization"
Dec 04 20:36:26 rancher systemd[1]: Started Docker Application Container Engine.
Dec 04 20:36:26 rancher dockerd[14498]: time="2018-12-04T20:36:26.784977406+05:30" level=info msg="API listen on /var/run/docker.sock"
#Rancherのインストール
次に、RancherサーバーのインスタンスにRancherサーバーをインストールする必要があります。rancher/serverのDockerイメージをダウンロードし、以下のコマンドを実行することでコンテナ内のRancherサーバーを起動することができます。
docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:stable
Rancher サーバーが正常にインストールされると、ポート 8080 を使用して Web ブラウザからアクセスできるようになります。
#Rancher の設定
今、あなたのウェブブラウザを開き、URLを入力してください http://192.168.0.100:8080
次のページにリダイレクトされます。
まず、ユーザーを管理するための Rancher アクセスコントロールを設定する必要があります。Rancher は、Active Directory、Azure AD、Github、OpenLDAP、SAML、ローカル認証など、多くのアクセスコントロールをサポートしています。
ここでは、Rancher のローカル認証を設定します。
設定するには、ADMIN メニューからアクセスコントロールをクリックします。以下のようなページが表示されるはずです。
次に LOCAL Access Control をクリックし、ユーザー名とパスワードを入力して、Enable Local Auth ボタンをクリックします。すると、以下のページで Local Authentication が有効になっている Rancher Dashboard が表示されるはずです。
#Rancher サーバーに Rancher クライアントを追加する
次に、Rancher クライアントを Rancher Server インスタンスに追加する必要があります。
これを行うには、Rancher ダッシュボードに移動し、[インフラストラクチャー]メニューをクリックし、[ホスト]ボタンをクリックします。以下のページが表示されるはずです。
ここで、「ホストの追加」ボタンをクリックします。以下のページにホスト登録URLが表示されているはずです。
ここで、「保存」ボタンをクリックします。以下のようなページが表示されるはずです。
ここで、カスタムホストタイプを選択し、RancherクライアントのIPアドレスを入力します。次に、ボックスから Docker コマンドをコピーします。
次に、Rancher Client インスタンスにログインし、ターミナルを開き、以下のようにコマンドを貼り付けます。
docker run -e CATTLE_AGENT_IP="192.168.0.103" --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.11 http://192.168.0.100:8080/v1/scripts/B8DD56FA4C0200C93870:1514678400000:76ua9Llt9e58W6MMYzYmwMVXAg
このコマンドは、Rancher Agent ホスト上に新しい Rancher コンテナをダウンロードして作成します。プロセスが正常に完了すると、以下のような出力が表示されるはずです。
Status: Downloaded newer image for rancher/agent:v1.2.11
INFO: Running Agent Registration Process, CATTLE_URL=http://192.168.0.100:8080/v1
INFO: Attempting to connect to: http://192.168.0.100:8080/v1
INFO: http://192.168.0.100:8080/v1 is accessible
INFO: Configured Host Registration URL info: CATTLE_URL=http://192.168.0.100:8080/v1 ENV_URL=http://192.168.0.100:8080/v1
INFO: Inspecting host capabilities
INFO: Boot2Docker: false
INFO: Host writable: true
INFO: Token: xxxxxxxx
INFO: Running registration
INFO: Printing Environment
INFO: ENV: CATTLE_ACCESS_KEY=8DEEDD0366EBBA2368EE
INFO: ENV: CATTLE_AGENT_IP=192.168.0.103
INFO: ENV: CATTLE_HOME=/var/lib/cattle
INFO: ENV: CATTLE_REGISTRATION_ACCESS_KEY=registrationToken
INFO: ENV: CATTLE_REGISTRATION_SECRET_KEY=xxxxxxx
INFO: ENV: CATTLE_SECRET_KEY=xxxxxxx
INFO: ENV: CATTLE_URL=http://192.168.0.100:8080/v1
INFO: ENV: DETECTED_CATTLE_AGENT_IP=192.168.0.103
INFO: ENV: RANCHER_AGENT_IMAGE=rancher/agent:v1.2.11
INFO: Launched Rancher Agent: f2242a231e5c774a80004c7a930145b9711406fd6e22d1af6a2aaf508d1ee863
次に、Rancher ダッシュボードに戻り、閉じるボタンをクリックしてください。新しく追加された Rancher クライアントが以下のページに表示されているはずです。
#Rancher を使って新しいコンテナを作成する
Rancher サーバーとクライアントのインストールと設定が完了したので、Rancher を通して新しいコンテナを作成しましょう。
Rancher ダッシュボード上の INFRASTRUCTURE メニューから Containers をクリックしてください。以下のページが表示されるはずです。
ここで、「コンテナの追加」ボタンをクリックします。以下のようなページが表示されるはずです。
コンテナ名を指定し、画像を選択し、ポート番号を指定して作成ボタンをクリックします。コンテナが正常に作成されると、以下のページに新しく作成されたWebサーバーコンテナが表示されるはずです。
#結論
これで、Ubuntu 16.04 サーバーに Docker を使って Rancher をインストールし、設定することができました。これで、RancherのWebインターフェースを使って、Dockerコンテナの作成、起動、停止、削除などを簡単に管理できるようになりました。
アリババクラウドは日本に2つのデータセンターを有し、世界で60を超えるアベラビリティーゾーンを有するアジア太平洋地域No.1(2019ガートナー)のクラウドインフラ事業者です。
アリババクラウドの詳細は、こちらからご覧ください。
アリババクラウドジャパン公式ページ