さまざまな Linux ディストリビューションに Docker と Docker Compose をインストールします。アプリケーションとその依存関係をポータブルなコンテナーにパッケージ化して、デプロイメントを標準化し、マルチサービスの管理を簡素化します。
Docker のインストール
Alibaba Cloud Linux 4
新しいバージョンの Docker をインストールする前に、既存の Docker コンポーネントをすべてアンインストールして、潜在的な競合や互換性の問題を回避してください。
Docker をインストールします。
推奨される方法:
# Moby ランタイムをインストール sudo yum install -y mobyDocker Community Edition をインストールします。
Alibaba Cloud サーバーを使用していない場合は、
http://mirrors.cloud.aliyuncs.comをhttps://mirrors.aliyun.comに置き換えてください。# Docker CE パッケージリポジトリを追加 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 # CentOS 9 や CentOS 10 など、インストールする CentOS のバージョンを選択し、$releasever を対応するバージョン番号に置き換える必要があります。 # CentOS 9 を使用するには、次を実行します: sudo sed -i 's|$releasever|9|' /etc/yum.repos.d/docker-ce.repo # CentOS 10 を使用するには、次を実行します: sudo sed -i 's|$releasever|10|' /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-plugin # 注:Alibaba Cloud Linux 4 が提供するネイティブの Moby コンポーネントに戻すには、まず docker-ce コンポーネントを削除し、CentOS リポジトリを無効にします。 sudo yum remove -y docker-ce docker-ce-cli sudo rm -rf /etc/yum.repos.d/docker-ce.repo
Docker を起動し、起動時に開始するように有効化します。
# サービスを開始し、起動時に開始するように有効化 sudo systemctl start docker sudo systemctl enable docker # インストールの確認 docker --version # これによりインストールされたバージョンが表示されます
Moby はこのシステムのデフォルトのコンテナーランタイムであり、将来のバージョンでも更新され続けます。
上位互換性のため、古い 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 を起動し、起動時に開始するように有効化します。
# Docker を起動 sudo systemctl start docker # システム起動時に Docker デーモンが自動的に起動するように設定 sudo systemctl enable docker
Ubuntu
新しいバージョンの Docker をインストールする前に、既存の Docker コンポーネントをすべてアンインストールして、潜在的な競合や互換性の問題を回避してください。
Docker Community Edition をインストールします。
Alibaba Cloud サーバーを使用していない場合は、
http://mirrors.cloud.aliyuncs.comをhttps://mirrors.aliyun.com# パッケージ管理ツールを更新 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 コンポーネントをすべてアンインストールして、潜在的な競合や互換性の問題を回避してください。
Docker Community Edition をインストールします。
Alibaba Cloud サーバーを使用していない場合は、
http://mirrors.cloud.aliyuncs.comをhttps://mirrors.aliyun.com# パッケージ管理ツールを更新 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 コンポーネントをすべてアンインストールして、潜在的な競合や互換性の問題を回避してください。
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 コンポーネントをすべてアンインストールして、潜在的な競合や互換性の問題を回避してください。
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 コンポーネントをすべてアンインストールして、潜在的な競合や互換性の問題を回避してください。
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 コンポーネントをすべてアンインストールして、潜在的な競合や互換性の問題を回避してください。
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 コンポーネントをすべてアンインストールして、潜在的な競合や互換性の問題を回避してください。
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 コンポーネントをすべてアンインストールして、潜在的な競合や互換性の問題を回避してください。
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 をベースイメージとして設定し、Web サーバーのルートディレクトリに "Hello World!" を表示する index.html ファイルを作成する Dockerfile を作成します。 sudo tee Dockerfile <<-'EOF' FROM nginx:latest RUN echo 'Hello World!' > /usr/share/nginx/html/index.html EOF # イメージをビルドし、hello-world という名前を付けます 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 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 ユーザーとして実行する方法
デフォルトでは、Docker コマンドには root 権限が必要です (sudo で実行)。すべてのコマンドで sudo を使用するのを避け、最小権限の原則に従うために、現在のユーザーを docker グループに追加します。
現在のユーザーを
dockerグループに追加します。sudo usermod -aG docker $USERnewgrp dockerを実行して、現在のシェルに変更を適用します。その後、sudoなしで直接dockerコマンドを使用できます。変更を永続的にするには、ログアウトしてから再度ログインする必要がある場合があります。
http://mirrors.cloud.aliyuncs.com にアクセスできないのはなぜですか?
現象:アドレス
http://mirrors.cloud.aliyuncs.comにアクセスできません。考えられる原因:ネットワークの不安定性。
解決策:
http://mirrors.cloud.aliyuncs.comをhttps://mirrors.aliyun.comに置き換えます。https://mirrors.aliyun.comを使用するには、インスタンスにパブリック IP アドレスが必要です。手順については、「インターネットアクセスを有効にする」をご参照ください。
dnf config-manager コマンドが失敗するのはなぜですか?
現象:Linux インスタンスで
dnf config-managerを実行すると、非推奨の警告が表示されます:/usr/lib/python3/dist-packages/dnf/const.py:22: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives.考えられる原因:dnf のバージョンが古いです。
解決策:
sudo dnf update dnfを実行してdnfパッケージを最新バージョンに更新してから、再度 Docker のインストールを試してください。
dnf install docker-ce コマンドが失敗するのはなぜですか?
現象:Linux インスタンスで
dnf -y install docker-ceを実行すると、ダウンロードの失敗を示す次のエラーが発生します:(8-9/12): docker-ce-24.0.7-1.el8.x86_64.rpm 38% [================- ] 8.2 MB/s | 38 MB 00:07 ETA The downloaded packages were saved in cache until the next successful transaction. You can remove cached packages by executing 'dnf clean packages'. Error: Error downloading packages: containerd.io-1.6.26-3.1.el8.x86_64: Cannot download, all mirrors were already tried without success.考えられる原因:パッケージキャッシュが古いため、インストールに失敗します。
解決策:
sudo dnf clean packagesを実行してパッケージキャッシュをクリアしてから、dockerのインストールを再試行してください。現象:Linux インスタンスで
dnf -y install docker-ceを実行すると、メタデータのダウンロード失敗を示す次のエラーが発生します:CentOS- Base 0.0 B/s | 0 B 00:30 Errors during downloading metadata for repository 'base': - Curl error (6): Couldn't resolve host name for http://mirror.centos.org/os/BaseOS/x86_64/os/repodata/repomd.xml [Could not resolve host: mirror.aliyuncs.com] - Curl error (28): Timeout was reached for http://mirror.centos.org/os/BaseOS/x86_64/os/repodata/repomd.xml [Connection timed out after 30000 milliseconds] - Curl error (6): Couldn't resolve host name for http://mirror.centos.org/os/BaseOS/x86_64/os/repodata/repomd.xml [Could not resolve host: mirror.cloud.aliyuncs.com] Error: Failed to download metadata for repo 'base': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried考えられる原因:廃止された
CentOS 8リポジトリを使用しています。解決策:この問題を解決するには、次の手順に従って、廃止された
CentOS 8リポジトリを Alibaba Cloud から入手可能なものに置き換えます。# 期限切れのソフトウェアソースをバックアップします。 sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # Alibaba Cloud が提供する CentOS-Base.repo を /etc/yum.repos.d/ にダウンロードします。 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.aliyuncs.com/repo/Centos-vault-8.5.2111.repo # Alibaba Cloud ソースのソフトウェアソースアドレスを ECS がアクセス可能なアドレスに置き換えます。 sudo sed -i 's/mirrors.cloud.aliyuncs.com/url_tmp/g' /etc/yum.repos.d/CentOS-Base.repo && sudo sed -i 's/mirrors.aliyun.com/mirrors.cloud.aliyuncs.com/g' /etc/yum.repos.d/CentOS-Base.repo && sudo sed -i 's/url_tmp/mirrors.aliyun.com/g' /etc/yum.repos.d/CentOS-Base.repo # 古いキャッシュをクリアし、新しいキャッシュを生成します。 sudo yum clean all && sudo yum makecacheこれらの手順を完了した後、
dockerのインストールを再試行してください。
参考資料
Docker の使用に関する詳細については、公式 Docker ドキュメントをご参照ください。
Alibaba Cloud の Artifact Center は、開発者に Alibaba Cloud と OpenAnolis コミュニティからの無料で安全かつ信頼できるベースコンテナイメージを提供します。
エンタープライズ P2P アクセラレーション機能を使用して、イメージのプル速度を向上させます。手順については、「他のコンテナ環境で P2P アクセラレーションを使用する」をご参照ください。
Docker で CLI を設定して Alibaba Cloud リソースを管理します。手順については、「Docker コンテナで Cloud Assistant CLI を実行する」をご参照ください。