このトピックでは、様々な Linux ディストリビューションに Docker と Docker Compose をインストールする方法を解説します。アプリケーションとその依存関係をポータブルなコンテナにパッケージ化することで、デプロイを標準化し、マルチサービスアプリケーションの管理を簡素化できます。
Docker のインストール
Alibaba Cloud Linux 3
競合や互換性の問題を防ぐため、新しいバージョンの Docker をインストールする前に、既存の 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 を起動し、OSの起動時に起動時に自動起動するよう設定します。
# Docker を起動 sudo systemctl start docker # OSの起動時に Docker の自動起動を設定 sudo systemctl enable docker
Ubuntu
競合や互換性の問題を防ぐため、新しいバージョンの Docker をインストールする前に、既存の 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 を起動し、OSの起動時に起動時に自動起動するよう設定します。
# Docker を起動 sudo systemctl start docker # OSの起動時に Docker の自動起動を設定 sudo systemctl enable docker
Debian
競合や互換性の問題を防ぐため、新しいバージョンの Docker をインストールする前に、既存の 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 を起動し、OSの起動時に起動時に自動起動するよう設定します。
# Docker を起動 sudo systemctl start docker # OSの起動時に Docker の自動起動を設定 sudo systemctl enable docker
Red Hat
競合や互換性の問題を防ぐため、新しいバージョンの Docker をインストールする前に、既存の 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 を起動し、OSの起動時に起動時に自動起動するよう設定します。
# Docker を起動 sudo systemctl start docker # OSの起動時に Docker の自動起動を設定 sudo systemctl enable docker
Fedora
競合や互換性の問題を防ぐため、新しいバージョンの Docker をインストールする前に、既存の 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 を起動し、OSの起動時に起動時に自動起動するよう設定します。
# Docker を起動 sudo systemctl start docker # OSの起動時に Docker の自動起動を設定 sudo systemctl enable docker
Anolis OS
競合や互換性の問題を防ぐため、新しいバージョンの Docker をインストールする前に、既存の 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 を起動し、OSの起動時に起動時に自動起動するよう設定します。
# Docker を起動 sudo systemctl start docker # OSの起動時に Docker の自動起動を設定 sudo systemctl enable docker
Alibaba Cloud Linux 2
競合や互換性の問題を防ぐため、新しいバージョンの Docker をインストールする前に、既存の 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 を起動し、OSの起動時に起動時に自動起動するよう設定します。
# Docker を起動 sudo systemctl start docker # OSの起動時に Docker の自動起動を設定 sudo systemctl enable docker
CentOS 7.x
競合や互換性の問題を防ぐため、新しいバージョンの Docker をインストールする前に、既存の 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 を起動し、OSの起動時に起動時に自動起動するよう設定します。
# Docker を起動 sudo systemctl start docker # OSの起動時に Docker の自動起動を設定 sudo systemctl enable docker
CentOS 8.x
競合や互換性の問題を防ぐため、新しいバージョンの Docker をインストールする前に、既存の 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 を起動し、OSの起動時に起動時に自動起動するよう設定します。
# Docker を起動 sudo systemctl start docker # OSの起動時に 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 のインストール
Docker Compose を使用すると、単一の YAML ファイルからマルチサービスアプリケーションを定義および管理できます。これは、サービス間に起動順序の依存関係がある場合に特に役立ちます。
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: EOFWordPress サービスを起動します。コマンド内の
<database_password>を実際の MySQL データベースのパスワードに置き換えてください。なお、Docker Compose V2 以降、コマンドはハイフン (
docker-compose) ではなくスペース (docker compose) を使用する構文に変更されました。例:docker compose version# サービスコンテナを起動 sudo env "PATH=$PATH" "WORDPRESS_DB_PASSWORD=<database_password>" docker compose -f docker-compose.yaml up -dブラウザで
http://<ECS インスタンスのパブリック IP アドレス>にアクセスして WordPress にアクセスします。セキュリティグループで、ポート
80でのインバウンドトラフィックを許可していることを確認してください。
トラブルシューティング
Dockerの非rootユーザー権限設定
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 コンテナで Alibaba Cloud CLI を実行する」をご参照ください。