このトピックでは、Alibaba Cloudが提供するDockerアプリケーションイメージを使用して、シンプルなアプリケーションサーバーにDocker環境をデプロイする方法について説明します。また、Dockerを使用してNGINXコンテナを起動する方法についても説明します。
シンプルなアプリケーションサーバーを作成した場合、次のいずれかの方法でDockerをデプロイできます。
Dockerを手動でデプロイします。詳細については、Dockerのデプロイをご参照ください。
シンプルなアプリケーションサーバーをリセットし、Dockerアプリケーションイメージを選択してDockerをデプロイします。リセット操作を実行すると、シンプルなアプリケーションサーバーに接続されているディスクからデータが消去されることにご注意ください。データ損失を防ぐために、リセット操作を実行する前にディスクデータをバックアップしてください。詳細については、シンプルなアプリケーションサーバーのリセットをご参照ください。
Dockerの詳細については、Dockerとはをご参照ください。
Dockerのデプロイ
シンプルなアプリケーションサーバーコンソールにログオンします。
左側のナビゲーションペインで、サーバーをクリックします。
サーバーページの左上隅で、サーバーの作成をクリックします。
シンプルなアプリケーションサーバーページで、ビジネス要件に基づいてパラメータを設定します。
次の表にパラメータを示します。
パラメータ
説明
例
リージョン
ビジネスの地理的な場所に基づいてリージョンを選択します。シンプルなアプリケーションサーバーの作成後、リージョンを変更することはできません。慎重に行ってください。
重要中国本土以外のリージョン(中国(香港)、シンガポールなど)にあるシンプルなアプリケーションサーバーに、中国本土内のリージョンからアクセスすると、ネットワークレイテンシが高くなる可能性があります。アクセスを高速化するには、エンドユーザーの地理的な場所に最も近いリージョンを選択することをお勧めします。詳細については、リージョンとネットワーク接続をご参照ください。
中国(香港)
イメージ
アプリイメージタブで、Dockerを選択します。
タイプ:アプリイメージ
アプリケーション:Docker 26.1.3
インスタンスプラン
ビジネス要件に基づいてプランを選択します。プランを超えるインターネット経由のアウトバウンドデータ転送には追加料金が発生します。課金ルールの詳細については、課金概要をご参照ください。
$3.5/月
データディスク
ビジネス要件に基づいて、シンプルなアプリケーションサーバーに接続するデータディスクのサイズを指定します。このパラメータはオプションです。
重要シンプルなアプリケーションサーバーの作成後にデータディスクを使用するには、データディスク上にパーティションとファイルシステムを作成する必要があります。
0GB
契約期間
シンプルなアプリケーションサーバーの契約期間を選択します。ビジネス要件に基づいて、自動更新を選択できます。
1か月
数量
購入するシンプルなアプリケーションサーバーの数を指定します。デフォルト値:1。1つのリージョンに最大20台のシンプルなアプリケーションサーバーを作成できます。
1
今すぐ購入をクリックします。
画面の指示に従って支払いを完了します。シンプルなアプリケーションサーバーのステータスが保留中から実行中に変わると、シンプルなアプリケーションサーバーにDocker環境がデプロイされます。
(条件付き必須)シンプルなアプリケーションサーバーの作成時にデータディスクを接続した場合、ディスクを使用する前に、ディスク上にパーティションとファイルシステムを作成する必要があります。詳細については、データディスクのパーティション分割とフォーマットをご参照ください。
Dockerの使用
シンプルなアプリケーションサーバーコンソールにログオンします。
左側のナビゲーションペインで、サーバーをクリックします。
サーバーページで、Dockerアプリケーションイメージから作成したシンプルなアプリケーションサーバーを見つけて、サーバーIDをクリックします。
アプリケーションの詳細タブをクリックして、Dockerの使用手順、Docker情報、およびアプリケーションのインストール情報を表示します。
Dockerの使用手順セクションで、シンプルなアプリケーションサーバーにログオンします。をクリックします。
リモート接続ダイアログボックスで、今すぐログオンをクリックします。
作成したシンプルなアプリケーションサーバー内でDockerを使用します。
次の例では、DockerはNGINXイメージをプルし、NGINXコンテナを起動します。
次のコマンドを実行して、検索されたNGINXイメージの中から最新のNGINXイメージをシンプルなアプリケーションサーバーにプルします。
sudo docker pull nginx
次のコマンドを実行して、サーバー上の既存のDockerイメージをクエリします。
sudo docker images
次の図に示すコマンド出力が返された場合、最新のNGINXイメージがシンプルなアプリケーションサーバーにプルされています。
次のコマンドを実行して、NGINXコンテナを作成し、バックグラウンドでコンテナを実行します。NGINXコンテナがサーバーのポート
80
を使用するように設定します。sudo docker run --name <コンテナエイリアス> -- network host -d <イメージ名> (リポジトリ)
この例では、イメージ名は
nginx
に設定され、コンテナエイリアスはnginx-test01
に設定されています。コマンド例:sudo docker run --name nginx-test01 --network host -d nginx
説明docker images
コマンドを実行して、イメージ名をクエリできます。次のコマンドを実行して、コンテナをクエリします。
sudo docker ps
コマンド出力例:
コンピューターのブラウザを使用して、
<シンプルなアプリケーションサーバーのパブリックIPアドレス>
にアクセスします。次のページが表示された場合、NGINXコンテナは想定どおりにデプロイされています。NGINXコンテナにアクセスできない場合は、次の解決策を使用してください。
シンプルなアプリケーションサーバーでポート80が無効になっている場合は、ポート80を有効にします。詳細については、ファイアウォールの管理をご参照ください。
DockerのCIDRブロックが内部CIDRブロックと競合する場合は、DockerのデフォルトCIDRブロックを変更します。詳細については、FAQをご参照ください。
FAQ
問題の説明
デフォルトでは、Dockerの起動時にdocker0ブリッジが作成されます。docker0ブリッジのCIDRブロックが内部eth0のCIDRブロックと競合する場合、NGINXコンテナにアクセスできない可能性があります。
解決策
次のコマンドを実行して、docker0とeth0のCIDRブロックが競合しているかどうかを確認します。
route -n
次の図に示すコマンド出力が返された場合、docker0とeth0のCIDRブロックが競合しています。
次のコマンドを実行して、Dockerを停止します。
sudo systemctl stop docker
次のコマンドを実行して、
/etc/docker/daemon.json
ファイルを開きます。sudo vim /etc/docker/daemon.json
I
キーを押して挿入モードに入り、次のCIDRブロック情報をファイルに追加します。{ "bip":"100.10.XX.XX/24" }
説明100.10.XX.XXはCIDRブロックを示します。値をeth0 CIDRブロックとは異なるCIDRブロックに置き換えます。
Esc
キーを押して、:wq
と入力し、Enterキーを押してファイルを保存して閉じます。次のコマンドを実行して、構成ファイルをリロードします。
sudo systemctl daemon-reload
次のコマンドを実行して、Dockerを起動します。
sudo systemctl start docker
次のコマンドを実行して、変更が有効になっているかどうかを確認します。
route
次の図に示すコマンド出力が返された場合、docker0のCIDRブロックは想定どおりに変更されています。NGINXコンテナに再度アクセスできます。