Docker はオープンソースのアプリケーションコンテナエンジンです。コンテナのパッケージング、配布、実行を自動化するためのツールとサービスを提供します。Docker は、強力な隔離性、高い可搬性、簡素化された管理などの利点を提供します。このトピックでは、Linux Simple Application Server インスタンスに Docker および Docker Compose をインストールして使用する方法について説明します。
Docker の詳細については、「Docker 概要」をご参照ください。
Docker 環境を迅速にデプロイしたい場合は、「Docker のクイックデプロイ」をご参照ください。
事前準備
Linux Simple Application Server インスタンスを作成済みであること。詳細については、「Simple Application Server インスタンスの作成」をご参照ください。
Linux Simple Application Server インスタンスのファイアウォールのインバウンドルールにポート 80 と 22 を追加済みであること。詳細については、「ファイアウォールの設定」をご参照ください。
Docker のデプロイ
Simple Application Server インスタンスにリモート接続します。詳細については、「Linux サーバーへのリモート接続」をご参照ください。
ご利用のサーバーのオペレーティングシステムに基づいて Docker をデプロイします。
Alibaba Cloud Linux 3
競合や互換性の問題を避けるため、まず既存の Docker コンポーネントをアンインストールします。
Docker Community Edition をインストールします。
Alibaba Cloud のサーバーを使用していない場合は、
http://mirrors.cloud.aliyuncs.comをhttps://mirrors.aliyun.comに置き換えてください。# Docker パッケージリポジトリを追加 sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo # Alibaba Cloud Linux 3 用の dnf リポジトリ互換性プラグインをインストール sudo dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus # Docker Community Edition、containerd.io コンテナランタイム、Docker Buildx および Compose プラグインをインストール sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginDocker を起動し、起動時に自動的に開始されるように設定します。
# Docker を起動 sudo systemctl start docker # Docker が起動時に自動的に開始されるように設定 sudo systemctl enable docker
Ubuntu
競合や互換性の問題を避けるため、まず既存の Docker コンポーネントをアンインストールします。
Docker Community Edition をインストールします。
Alibaba Cloud のサーバーを使用していない場合は、
http://mirrors.cloud.aliyuncs.comをhttps://mirrors.aliyun.comに置き換えてください。# apt パッケージインデックスを更新 sudo apt-get update # Docker ソフトウェアパッケージリポジトリを追加 sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common sudo curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" # Docker Community Edition、containerd.io コンテナランタイム、Docker Buildx および Compose プラグインをインストール sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginDocker を起動し、起動時に自動的に開始されるように設定します。
# Docker を起動 sudo systemctl start docker # Docker が起動時に自動的に開始されるように設定 sudo systemctl enable docker
Debian
競合や互換性の問題を避けるため、まず既存の Docker コンポーネントをアンインストールします。
Docker Community Edition をインストールします。
Alibaba Cloud のサーバーを使用していない場合は、
http://mirrors.cloud.aliyuncs.comをhttps://mirrors.aliyun.comに置き換えてください。# apt パッケージインデックスを更新 sudo apt-get update # Docker ソフトウェアパッケージリポジトリを追加 sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common sudo curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/debian/gpg | sudo apt-key add - sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/debian $(lsb_release -cs) stable" # Docker Community Edition、containerd.io コンテナランタイム、Docker Buildx および Compose プラグインをインストール sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginDocker を起動し、起動時に自動的に開始されるように設定します。
# Docker を起動 sudo systemctl start docker # Docker が起動時に自動的に開始されるように設定 sudo systemctl enable docker
Red Hat
競合や互換性の問題を避けるため、まず既存の Docker コンポーネントをアンインストールします。
Docker Community Edition をインストールします。
Alibaba Cloud のサーバーを使用していない場合は、
http://mirrors.cloud.aliyuncs.comをhttps://mirrors.aliyun.comに置き換えてください。# Docker ソフトウェアパッケージリポジトリを追加 sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/rhel/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo # Docker Community Edition、containerd.io コンテナランタイム、Docker Buildx および Compose プラグインをインストール sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginDocker を起動し、起動時に自動的に開始されるように設定します。
# Docker を起動 sudo systemctl start docker # Docker が起動時に自動的に開始されるように設定 sudo systemctl enable docker
Fedora
競合や互換性の問題を避けるため、まず既存の Docker コンポーネントをアンインストールします。
Docker Community Edition をインストールします。
Alibaba Cloud のサーバーを使用していない場合は、
http://mirrors.cloud.aliyuncs.comをhttps://mirrors.aliyun.comに置き換えてください。# Docker ソフトウェアパッケージリポジトリを追加 sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/fedora/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo # Docker Community Edition、containerd.io コンテナランタイム、Docker Buildx および Compose プラグインをインストール sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginDocker を起動し、起動時に自動的に開始されるように設定します。
# Docker を起動 sudo systemctl start docker # Docker が起動時に自動的に開始されるように設定 sudo systemctl enable docker
Anolis OS
競合や互換性の問題を避けるため、まず既存の Docker コンポーネントをアンインストールします。
Docker Community Edition をインストールします。
Alibaba Cloud のサーバーを使用していない場合は、
http://mirrors.cloud.aliyuncs.comをhttps://mirrors.aliyun.comに置き換えてください。# Docker ソフトウェアパッケージリポジトリを追加 sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo # Docker Community Edition、containerd.io コンテナランタイム、Docker Buildx および Compose プラグインをインストール sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginDocker を起動し、起動時に自動的に開始されるように設定します。
# Docker を起動 sudo systemctl start docker # Docker が起動時に自動的に開始されるように設定 sudo systemctl enable docker
Alibaba Cloud Linux 2
競合や互換性の問題を避けるため、まず既存の Docker コンポーネントをアンインストールします。
Docker Community Edition をインストールします。
Alibaba Cloud のサーバーを使用していない場合は、
http://mirrors.cloud.aliyuncs.comをhttps://mirrors.aliyun.comに置き換えてください。# Docker ソフトウェアパッケージリポジトリを追加 sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo # Alibaba Cloud Linux 2 用の yum リポジトリ互換性プラグインをインストール sudo yum install yum-plugin-releasever-adapter --disablerepo=* --enablerepo=plus # Docker Community Edition、containerd.io コンテナランタイム、Docker Buildx および Compose プラグインをインストール sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginDocker を起動し、起動時に自動的に開始されるように設定します。
# Docker を起動 sudo systemctl start docker # Docker が起動時に自動的に開始されるように設定 sudo systemctl enable docker
CentOS 7.x
競合や互換性の問題を避けるため、まず既存の Docker コンポーネントをアンインストールします。
Docker Community Edition をインストールします。
Alibaba Cloud のサーバーを使用していない場合は、
http://mirrors.cloud.aliyuncs.comをhttps://mirrors.aliyun.comに置き換えてください。# Docker ソフトウェアパッケージリポジトリを追加 sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo # Docker Community Edition、containerd.io コンテナランタイム、Docker Buildx および Compose プラグインをインストール sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginDocker を起動し、起動時に自動的に開始されるように設定します。
# Docker を起動 sudo systemctl start docker # Docker が起動時に自動的に開始されるように設定 sudo systemctl enable docker
CentOS 8.x
競合や互換性の問題を避けるため、まず既存の Docker コンポーネントをアンインストールします。
Docker Community Edition をインストールします。
Alibaba Cloud のサーバーを使用していない場合は、
http://mirrors.cloud.aliyuncs.comをhttps://mirrors.aliyun.comに置き換えてください。# Docker ソフトウェアパッケージリポジトリを追加 sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo # Docker Community Edition、containerd.io コンテナランタイム、Docker Buildx および Compose プラグインをインストール sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginDocker を起動し、起動時に自動的に開始されるように設定します。
# Docker を起動 sudo systemctl start docker # Docker が起動時に自動的に開始されるように設定 sudo systemctl enable docker
Docker を使用した Web アプリケーションのクイックデプロイ
Web アプリケーションのイメージをビルドします。
# 最新の Nginx イメージをプル sudo docker pull nginx:latest # Nginx をベースに "Hello World!" ページを提供する Dockerfile を作成 sudo tee Dockerfile <<-'EOF' FROM nginx:latest RUN echo 'Hello World!' > /usr/share/nginx/html/index.html EOF # イメージをビルドし、hello-world:latest としてタグ付け sudo docker build . -t hello-world:latestWeb アプリケーションイメージを使用して、
hello-worldという名前のコンテナを起動します。sudo docker run -d -p 80:80 --name hello-world hello-world:latestcurl http://localhostを実行して、Web アプリケーションが正しくHello World!を返すことを確認します。
Docker Compose のインストール
Alibaba Cloud Linux、CentOS、Red Hat、Anolis、Fedora
sudo yum -y install docker-compose-pluginUbuntu、Debian
sudo apt-get -y install docker-compose-pluginDocker Compose を使用したアプリケーションのデプロイ
docker-compose.yamlという名前のオーケストレーションファイルを作成します。# オーケストレーションファイルを作成し、MySQL と WordPress サービスを追加 sudo tee docker-compose.yaml <<-'EOF' version: '3.1' services: wordpress: image: wordpress restart: always ports: - "80:80" environment: # データベースホストアドレス WORDPRESS_DB_HOST: wordpress_db # データベースユーザー名 WORDPRESS_DB_USER: wordpress # データベースパスワード WORDPRESS_DB_PASSWORD: ${WORDPRESS_DB_PASSWORD} # データベース名 WORDPRESS_DB_NAME: wordpress volumes: - wordpress:/var/www/html db: image: mysql:5.7 restart: always container_name: wordpress_db environment: # データベース名 MYSQL_DATABASE: wordpress # データベースユーザー名 MYSQL_USER: wordpress # データベースパスワード MYSQL_PASSWORD: ${WORDPRESS_DB_PASSWORD} # データベース root ユーザーのランダムパスワード MYSQL_RANDOM_ROOT_PASSWORD: ${WORDPRESS_DB_PASSWORD} volumes: - db:/var/lib/mysql volumes: wordpress: db: EOFブラウザで
https://<Simple Application Server インスタンスのパブリック IP アドレス>を入力します。WordPress の設定ページが表示されます。ページ上のプロンプトに従ってパラメータを設定し、WordPress にアクセスします。
トラブルシューティング
非 root ユーザーの Docker 権限の設定
http://mirrors.cloud.aliyuncs.com にアクセスできない
dnf config-manager コマンドが失敗する
dnf install docker-ce コマンドが失敗する
関連ドキュメント
Docker の使用に関する詳細については、「Docker 公式ドキュメント」をご参照ください。
Alibaba Cloud の Artifact Center は、Alibaba Cloud および OpenAnolis コミュニティから、無料で安全かつ信頼できるベースコンテナイメージを提供します。
エンタープライズ P2P アクセラレーション機能でイメージのプルを高速化します。詳細については、「他のコンテナ環境での P2P アクセラレーションの使用」をご参照ください。
Docker コンテナ内で Alibaba Cloud CLI を実行して、Alibaba Cloud リソースを管理します。詳細については、「Docker コンテナでの Cloud Assistant CLI の実行」をご参照ください。