この記事 Alibaba Cloud Encyclopedia では、クラウド サービス ECS インスタンスに Docker をデプロイして使用する方法を紹介します。Docker は、移植性、拡張性、高いセキュリティ、管理性という利点を備えたオープンソースのアプリケーション コンテナ エンジンです。開発者は、アプリケーションと依存関係をポータブル コンテナにパッケージ化し、Linux マシンに迅速に公開し、仮想化を実装してアプリケーションをより効率的に構築、展開、管理できます。同時に、Alibaba Cloud は、Docker の迅速なデプロイを容易にする Docker イメージ ソースを提供します。
目次
docker-compose を使用してアプリケーションをデプロイする
前提条件
基本的な ECS インスタンスが作成されており、次の構成を満たしています。
- オペレーティング システム: CentOS 7.x 64 ビット、CentOS 8.x 64 ビット、Alibaba Cloud Linux 3 64 ビット、Alibaba Cloud Linux 2 64 ビット
- ECSクラウドサーバー: aliyunbaike.com/go/ecs
- ネットワークの種類: プライベート ネットワーク VPC
- IPアドレス:パブリックIP
- セキュリティ グループ: 受信方向にポート 80、22、および 8080 を開きます。特定の操作については、「セキュリティ グループ ルールの追加」を参照してください。
Dockerをデプロイする
- ECS インスタンスにリモートで接続します。
接続方法の概要については、「接続方法の概要」を参照してください。
-
Docker、CentOS 8.x をインストールする
-
CentOS 8 の送信元アドレスを切り替えます。
CentOS 8 オペレーティング システムのバージョンはライフ サイクル (EOL) を終了しました。コミュニティ ルールに従って、CentOS 8 のソース アドレス http://mirror.centos.org/centos/8/ の内容は削除されました。続行できます。 Alibaba Cloud でデフォルト設定を使用すると、CentOS 8 ソース エラーが発生します。CentOS 8 システムで一部のインストール パッケージを使用する必要がある場合は、ソース アドレスを手動で切り替える必要があります。
-
次のコマンドを実行して DNF をインストールします。
sudo yum -y install dnf
-
次のコマンドを実行して、Docker ストレージ ドライバーの依存関係パッケージをインストールします。
sudo dnf install -y device-mapper-persistent-data lvm2
-
次のコマンドを実行して、安定した Docker ソフトウェア ソースを追加します。
sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
次のコマンドを実行して、Docker ソフトウェア ソースが追加されているかどうかを確認します。
sudo dnf list docker-ce
以下の図に示すエコーが表示され、Docker ソフトウェア ソースが追加されたことが示されます。Alibaba Cloud 速度テスト ツールaliyunping.comを使用して、ローカル ノードからさまざまなリージョンの Alibaba Cloud サーバーまでの ping 値のネットワーク遅延をテストできます。
-
次のコマンドを実行して Docker をインストールします。
sudo dnf install -y docker-ce --nobest
-
以下のコマンドを実行して、Docker が正常にインストールされたかどうかを確認します。
sudo docker -v
次の図に示すように、Docker は正常にインストールされました。
-
次のコマンドを実行して Docker サービスを起動し、起動時に自動的に起動するように設定します。
sudo systemctl start docker sudo systemctl enable docker
-
以下のコマンドを実行してDockerが起動しているか確認します。
sudo systemctl status docker
次のエコーに示されているように、Docker が起動されました。
Dockerの基本的な使い方
Docker の基本的な使用法のみを以下に示します。
-
Docker デーモンの管理
sudo systemctl start docker #运行Docker守护进程 sudo systemctl stop docker #停止Docker守护进程 sudo systemctl restart docker #重启Docker守护进程 sudo systemctl enable docker #设置Docker开机自启动 sudo systemctl status docker #查看Docker的运行状态
-
画像の管理
この記事では、Alibaba Cloud ウェアハウス内の Apache イメージを例として、Docker を使用してイメージを管理する方法を紹介します。
-
画像を引っ張ってきます。
sudo docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
-
ラベルを変更します。イメージ名が長い場合は、イメージ ラベルを変更して覚えておくことができます。
sudo docker tag registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest aliweb:v1
-
既存のイメージを表示します。
sudo docker images
-
画像を強制的に削除します。
sudo docker rmi -f registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
-
-
コンテナの管理
以下の <イメージ ID> は、
docker images
コマンドを通じて照会できます。-
新しいコンテナを開始します。
sudo docker run -it <镜像ID> /bin/bash
-
新しいコンテナを起動し、コンテナをバックグラウンドで実行させ、コンテナ名を指定します。
sudo docker run -d --name <容器名> <镜像ID>
-
コンテナIDを表示します。
sudo docker ps
-
コンテナをイメージ化します。
sudo docker commit <容器ID或容器名> <仓库名>:<标签>
-
Docker を使用してイメージを作成する
このステップでは、Dockerfile を使用して単純な Nginx イメージをカスタマイズする方法を説明します。
-
次のコマンドを実行してイメージをプルします。この例では、例として Alibaba Cloud ウェアハウスから Apache イメージをプルします。
sudo docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
-
イメージ名のラベルを変更して、覚えやすくします。
sudo docker tag registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest aliweb:v1
-
次のコマンドを実行して、Dockerfile ファイルを作成および編集します。
-
次のコマンドを実行して、Dockerfile ファイルを作成および編集します。
vim Dockerfile
-
を押して
i
編集モードに入り、次のコンテンツを追加して元の画像を変換します。#声明基础镜像来源。 FROM aliweb:v1 #声明镜像拥有者。 MAINTAINER DTSTACK #RUN后面接容器运行前需要执行的命令,由于Dockerfile文件不能超过127行,因此当命令较多时建议写到脚本中执行。 RUN mkdir /dtstact #开机启动命令,此处最后一个命令需要是可在前台持续执行的命令,否则容器后台运行时会因为命令执行完而退出。 ENTRYPOINT ping www.aliyun.com
-
Esc
キー 、 Enter を押して:wq
、Enter
キーを押してDockerfile を保存して終了します。
-
-
次のコマンドを実行して、基本イメージ nginx に基づいて新しいイメージをビルドします。
コマンドの形式は です
docker build -t <镜像名称>:<镜像版本> .
。コマンドの末尾は.
Dockerfile ファイルのパスを表すため、無視できません。新しいイメージ aliweb:v2 を構築する例を取り上げます。コマンドは次のとおりです。sudo docker build -t aliweb:v2 .
-
次のコマンドを実行して、新しいイメージが正常に構築されたかどうかを確認します。
sudo docker images
次のエコーに示されているように、ビルドは成功しました。
docker-compose をインストールして使用する
docker-compose は、複数の Docker コンテナを定義および実行するために Docker によって公式に提供されるオープン ソースのコンテナ オーケストレーション ツールです。YAML ファイルを使用してアプリケーションに必要なすべてのサービスを構成し、docker-compose を使用して YAML を解析するコマンドを実行できます。ファイル構成を作成し、構成ファイル内ですべての Docker サービスを作成して開始します。これには、運用と保守のコストが低く、導入効率が高いという利点があります。
重要
Python 3 以降のみが docker-compose をサポートしており、pip がインストールされていることを確認してください。
docker-compose をインストールする
-
次のコマンドを実行して setuptools をインストールします。
pip3 install -U pip setuptools
-
次のコマンドを実行して、docker-compose をインストールします。
pip3 install docker-compose
-
次のコマンドを実行して、docker-compose が正常にインストールされているかどうかを確認します。
docker-compose --version
エコーが docker-compose のバージョン情報を返した場合、docker-compose が正常にインストールされたことを意味します。
docker-compose を使用してアプリケーションをデプロイする
以下では、WordPress のデプロイを例として、docker-compose を使用してアプリケーションをデプロイする方法を紹介します。
-
docker-compose.yaml ファイルを作成して編集します。
-
次のコマンドを実行して、docker-compose.yaml ファイルを作成します。
vim docker-compose.yaml
-
i
キーを押して編集モードに入り、次の内容を追加します。この例では、WordPress のインストールを例に挙げています。
version: '3.1' # 版本信息 services: wordpress: # 服务名称 image: wordpress # 镜像名称 restart: always # docker启动,当前容器必启动 ports: - 80:80 # 映射端口 environment: # 编写环境 WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: 123456 WORDPRESS_DB_NAME: wordpress volumes: # 映射数据卷 - wordpress:/var/www/html db: # 服务名称 image: mysql:5.7 # 镜像名称 restart: always # docker启动,当前容器必启动 ports: - 3306:3306 # 映射端口 environment: # 环境变量 MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: 123456 MYSQL_RANDOM_ROOT_PASSWORD: '1' volumes: # 卷挂载路径 - db:/var/lib/mysql volumes: wordpress: db:
-
Esc
キーを押して編集モードを終了し、 Enter を押して:wq
保存して終了します。
-
-
以下のコマンドを実行してアプリケーションを起動します。
sudo env "PATH=$PATH" docker-compose up -d
-
ブラウザに入力して
https://云服务器ECS实例的公网IP
WordPress 設定ページに入り、インターフェースのプロンプトに従って関連パラメータを設定し、WordPress にアクセスできます。
この記事は、Alibaba Cloud 公式ドキュメントから転載したものです。