すべてのプロダクト
Search
ドキュメントセンター

CloudOps Orchestration Service:Docker イメージデプロイメント

最終更新日:Jun 09, 2026

アプリケーションのソースが Container Registry (ACR)(Personal Edition または Enterprise Edition)に保存されている Docker イメージの場合、このデプロイタイプを使用してアプリケーションを公開します。

サードパーティのイメージリポジトリからデプロイする場合は、コマンドのみのデプロイを使用してください。

仕組み

重要
  • ESS スケーリンググループにデプロイする場合、デプロイ中はスケーリングアクティビティが一時停止されます。デプロイが成功しても失敗しても、デプロイ完了後にアクティビティは自動的に再開されます。

  • デプロイプロセスでは、まず古いバージョンを停止し、その後新しいバージョンを起動します。各デプロイでは、起動スクリプトを実行する前に停止スクリプトが実行されます。

  • Docker イメージはデプロイ中に Elastic Compute Service (ECS) インスタンスに自動的にプルされます。起動スクリプト内にイメージプルコマンドを含めないでください。

  1. デプロイメントの作成と公開

    アプリケーションのソースファイル情報、起動スクリプト、および停止スクリプトを設定してデプロイメントを構成します。

    リリースタスクを作成し、リリースモードを選択して、ターゲットアプリケーショングループにデプロイメントを公開します。

  2. 自動デプロイフロー

    1. デプロイメント情報を取得します。これには Docker イメージの詳細およびアプリケーションの起動スクリプトと停止スクリプトが含まれます。

    2. イメージリポジトリから ECS インスタンスに Docker イメージをプルします。

    3. 停止スクリプトを実行して、アプリケーションの古いバージョンを停止します。

    4. 起動スクリプトを実行して、アプリケーションの新しいバージョンを起動します。

注意事項

  • デプロイメントは Linux インスタンスでのみサポートされています。

  • 起動スクリプトおよび停止スクリプトはシェルスクリプトである必要があります。

操作手順

  1. アプリケーション、グループ、および ECS インスタンスを準備します。

    デプロイ前に、ECS Application Management でアプリケーションとグループを作成し、ご利用の ECS インスタンスをグループに追加します。

    1. ECS インスタンスをお持ちでない場合は、ECS console - Custom Launch ページにアクセスして Linux ECS インスタンスを作成します。

      以下のサンプルスクリプトはこれらのイメージ向けです。別のイメージを使用する場合は、スクリプトを適宜修正する必要があります。
    2. ECS console - Application management ページにアクセスし、既存のリソースをインポートして作成 をクリックしてアプリケーションとアプリケーショングループを作成し、ECS インスタンスをアプリケーショングループにインポートします。

    3. グループ内の ECS インスタンスに Docker をインストールします。アプリケーショングループの O&M タブで、ACS-ECS-BulkyConfigureOOSPackageWithTemporaryURL を選択して Docker を一括インストールします。

      カスタムイメージから ECS インスタンスを作成した場合、この方法で拡張機能をインストールすることはできません。リモート接続してDocker を手動でインストールする必要があります。
  2. Docker イメージデプロイメントを作成します。

    1. サンプルイメージをローカルマシンにプルし、その後イメージを ACR Enterprise Edition または ACR Personal Edition リポジトリにプッシュします。

      docker pull aliyun-computenest-opensource-registry.cn-hangzhou.cr.aliyuncs.com/default/aliyun-code-deploy:latest
    2. ECS console - Application management ページにアクセスします。マイアプリケーション タブで、ターゲットアプリケーションの名前をクリックします。

    3. アプリケーション詳細ページで、デプロイメント タブを選択し、デプロイメントの作成 をクリックします。

    4. デプロイメントの作成 ページで、デプロイタイプDocker イメージ に設定し、以下の 主要フィールド を構成します。

      • ACR インスタンス情報:ACR インスタンス情報を入力します。イメージバージョンを入力すると、システムが自動的にイメージアドレスを生成します。このアドレスをアプリケーション起動スクリプト内で使用します。image

        重要

        ACR Personal Edition を使用する場合は、アプリケーション詳細ページの詳細設定で ACR Personal Edition のユーザー名とパスワードを構成してください。

      • 作業ディレクトリ:アプリケーション起動スクリプトおよび停止スクリプトの実行ディレクトリです。例:/root/deploy

      • アプリケーション起動スクリプト<Registry Address> を実際のアドレスに置き換えてください。

        ### Docker イメージはデプロイ中に ECS インスタンスに自動的にプルされます。コンテナを直接起動できます。
        ### 現在のバージョンのコンテナを起動
        start_application() {
          image_name="<Registry Address>"
          container_name="my-container"
          docker run -d -p 8080:8080 --name ${container_name} ${image_name}
        }
        
        start_application
      • アプリケーション停止スクリプト

        stop_application() {
          # コンテナ名でコンテナが存在するか確認し、存在する場合は削除
          container_name="my-container"
          container_id=$(docker ps -aq -f name=${container_name}) 
          if [ -n "$container_id" ]; then
            docker rm -f $container_id
          fi
        }
        
        stop_application
    5. すべてのパラメーターを構成したら、OK をクリックしてデプロイメントを保存します。

  3. デプロイメントリストに戻り、作成したデプロイメントを見つけ、公開 をクリックします。ターゲットグループを選択し、OK をクリックしてデプロイを開始します。

  4. 結果を確認します。

    1. ターゲットインスタンスの詳細ページに移動します。接続 をクリックし、ワークベンチ を選択します。画面の指示に従ってターミナルにアクセスします。

    2. curl http://localhost:8080/hello コマンドを実行します。Alibaba Spring Sample! という応答が返された場合、デプロイは成功しています。

主要フィールド

フィールド

説明

Container Registry リージョン

ACR インスタンスが配置されているリージョンです。

Container Registry インスタンス ID

ACR Enterprise Edition インスタンス ID

名前空間

イメージリポジトリが配置されている名前空間です。

リポジトリ名

イメージリポジトリの名前です。

イメージバージョン

デプロイする Docker イメージのバージョンです。

プライベートネットワーク経由でイメージをプル

このオプションを選択する場合、ACR インスタンスと ECS インスタンスが同一の Virtual Private Cloud (VPC) 内にあり、かつ VPC のアクセスの制御が構成済みであることを確認してください。
それ以外の場合は、パブリックネットワーク経由でイメージがプルされます。この場合、ECS インスタンスおよび ACR インスタンスの両方がパブリックネットワークアクセス用に構成されていることを確認してください。



作業ディレクトリ

アプリケーションの起動スクリプトおよび停止スクリプトの作業ディレクトリです。

  • 絶対パスを入力してください。

  • 存在しないディレクトリを入力することも可能です。実行時に自動的に作成されます。

アプリケーション起動スクリプト

アプリケーションを起動するために使用するシェルスクリプトです。

アプリケーション停止スクリプト

アプリケーションを停止するためのシェルスクリプトです。
このスクリプトは、現在および以前のアプリケーションバージョンの両方を正しく停止できる必要があります。また、アプリケーションが実行されていない場合でも正常に終了する必要があります。



たとえば、次のスクリプトは my-container という名前のコンテナを停止します。このスクリプトは、すべてのコンテナバージョンが同じ名前を共有していることを前提としており、コンテナが存在しない場合にもエラーを報告しません。

container_name="my-container"
container_id=$(docker ps -aq -f name=${container_name}) 
if [ -n "$container_id" ]; then
  docker rm -f $container_id
fi