Installez Docker et Docker Compose sur diverses distributions Linux afin de conteneuriser vos applications pour un déploiement portable et standardisé.
Installer Docker
Alibaba Cloud Linux 3
Avant d'installer Docker, désinstallez tous les composants Docker existants pour éviter les conflits.
-
Installez Docker Community Edition.
Si vous n'utilisez pas de serveur Alibaba Cloud, remplacez
http://mirrors.cloud.aliyuncs.comparhttps://mirrors.aliyun.com#Add the Docker package repository 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 #Install the dnf repository compatibility plugin for Alibaba Cloud Linux 3 sudo dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus #Install Docker Community Edition, the containerd.io container runtime, and the Docker Buildx and Compose plugins sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Démarrez Docker et activez son démarrage automatique au boot.
#Start Docker sudo systemctl start docker #Set the Docker daemon to start automatically on system boot sudo systemctl enable docker
Alibaba Cloud Linux 4
Avant d'installer Docker, désinstallez tous les composants Docker existants pour éviter les conflits.
-
Installez Docker.
Install Moby from Alibaba Cloud Linux repository
Moby contient l'intégralité des fonctionnalités principales de Docker. Dans Alibaba Cloud Linux 4, le moteur de conteneur est fourni nativement par le package moby. Après l'installation de moby, les commandes système, le nom du service (dockerd), l'API et les images de conteneur sont entièrement compatibles avec Docker standard.
sudo yum install -y mobyInstall Docker CE from Docker CE repository
Pour les serveurs non Alibaba Cloud, remplacez
http://mirrors.cloud.aliyuncs.comparhttps://mirrors.aliyun.com. Sélectionnez une version compatible avec CentOS dans le dépôt Docker CE, et confirmez que l'ancienne version de Docker a été supprimée avant l'installation.#Add the Docker CE package repository 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 #You must select which CentOS version to install, such as CentOS 9 or CentOS 10, and then replace $releasever with the corresponding version number. # To use CentOS 9, run: sudo sed -i 's|$releasever|9|' /etc/yum.repos.d/docker-ce.repo # To use CentOS 10, run: sudo sed -i 's|$releasever|10|' /etc/yum.repos.d/docker-ce.repo #Install Docker Community Edition, the containerd.io container runtime, and the Docker Buildx and Compose plugins sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginRemarquePour revenir au moteur d'exécution de conteneurs Moby fourni nativement par Alibaba Cloud Linux 4 après avoir utilisé Docker CE, supprimez d'abord les composants Docker CE et désactivez le dépôt CentOS.
sudo yum remove -y docker-ce docker-ce-cli sudo rm -rf /etc/yum.repos.d/docker-ce.repo -
Démarrez Docker et activez son démarrage automatique au boot.
# Start the service and enable it to start on boot sudo systemctl start docker sudo systemctl enable docker # Verify the installation docker --version # This will display the installed version
Moby est le moteur d'exécution de conteneurs par défaut et continuera à recevoir des mises à jour.
Les anciens composants Docker restent utilisables pour la compatibilité ascendante, mais ne recevront pas de mises à jour.
Ubuntu
Avant d'installer Docker, désinstallez tous les composants Docker existants pour éviter les conflits.
-
Installez Docker Community Edition.
Si vous n'utilisez pas de serveur Alibaba Cloud, remplacez
http://mirrors.cloud.aliyuncs.comparhttps://mirrors.aliyun.com#Update the package management tool sudo apt-get update #Add the Docker package repository 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" #Install Docker Community Edition, the containerd.io container runtime, and the Docker Buildx and Compose plugins sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Démarrez Docker et activez son démarrage automatique au boot.
#Start Docker sudo systemctl start docker #Set the Docker daemon to start automatically on system boot sudo systemctl enable docker
Debian
Avant d'installer Docker, désinstallez tous les composants Docker existants pour éviter les conflits.
-
Installez Docker Community Edition.
Si vous n'utilisez pas de serveur Alibaba Cloud, remplacez
http://mirrors.cloud.aliyuncs.comparhttps://mirrors.aliyun.com#Update the package management tool sudo apt-get update #Add the Docker package repository 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" #Install Docker Community Edition, the containerd.io container runtime, and the Docker Buildx and Compose plugins sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Démarrez Docker et activez son démarrage automatique au boot.
#Start Docker sudo systemctl start docker #Set the Docker daemon to start automatically on system boot sudo systemctl enable docker
Red Hat
Avant d'installer Docker, désinstallez tous les composants Docker existants pour éviter les conflits.
-
Installez Docker Community Edition.
Si vous n'utilisez pas de serveur Alibaba Cloud, remplacez
http://mirrors.cloud.aliyuncs.comparhttps://mirrors.aliyun.com#Add the Docker package repository 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 #Install Docker Community Edition, the containerd.io container runtime, and the Docker Buildx and Compose plugins sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Démarrez Docker et activez son démarrage automatique au boot.
#Start Docker sudo systemctl start docker #Set the Docker daemon to start automatically on system boot sudo systemctl enable docker
Fedora
Avant d'installer Docker, désinstallez tous les composants Docker existants pour éviter les conflits.
-
Installez Docker Community Edition.
Si vous n'utilisez pas de serveur Alibaba Cloud, remplacez
http://mirrors.cloud.aliyuncs.comparhttps://mirrors.aliyun.com#Add the Docker package repository 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 #Install Docker Community Edition, the containerd.io container runtime, and the Docker Buildx and Compose plugins sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Démarrez Docker et activez son démarrage automatique au boot.
#Start Docker sudo systemctl start docker #Set the Docker daemon to start automatically on system boot sudo systemctl enable docker
Anolis OS
Avant d'installer Docker, désinstallez tous les composants Docker existants pour éviter les conflits.
-
Installez Docker Community Edition.
Si vous n'utilisez pas de serveur Alibaba Cloud, remplacez
http://mirrors.cloud.aliyuncs.comparhttps://mirrors.aliyun.com#Add the Docker package repository 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 #Install Docker Community Edition, the containerd.io container runtime, and the Docker Buildx and Compose plugins sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Démarrez Docker et activez son démarrage automatique au boot.
#Start Docker sudo systemctl start docker #Set the Docker daemon to start automatically on system boot sudo systemctl enable docker
Alibaba Cloud Linux 2
Avant d'installer Docker, désinstallez tous les composants Docker existants pour éviter les conflits.
-
Installez Docker Community Edition.
Si vous n'utilisez pas de serveur Alibaba Cloud, remplacez
http://mirrors.cloud.aliyuncs.comparhttps://mirrors.aliyun.com#Add the Docker package repository 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 #Install the yum repository compatibility plugin for Alibaba Cloud Linux 2 sudo yum install yum-plugin-releasever-adapter --disablerepo=* --enablerepo=plus #Install Docker Community Edition, the containerd.io container runtime, and the Docker Buildx and Compose plugins sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Démarrez Docker et activez son démarrage automatique au boot.
#Start Docker sudo systemctl start docker #Set the Docker daemon to start automatically on system boot sudo systemctl enable docker
CentOS 7.x
Avant d'installer Docker, désinstallez tous les composants Docker existants pour éviter les conflits.
-
Installez Docker Community Edition.
Si vous n'utilisez pas de serveur Alibaba Cloud, remplacez
http://mirrors.cloud.aliyuncs.comparhttps://mirrors.aliyun.com#Add the Docker package repository 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 #Install Docker Community Edition, the containerd.io container runtime, and the Docker Buildx and Compose plugins sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Démarrez Docker et activez son démarrage automatique au boot.
#Start Docker sudo systemctl start docker #Set the Docker daemon to start automatically on system boot sudo systemctl enable docker
CentOS 8.x
Avant d'installer Docker, désinstallez tous les composants Docker existants pour éviter les conflits.
-
Installez Docker Community Edition.
Si vous n'utilisez pas de serveur Alibaba Cloud, remplacez
http://mirrors.cloud.aliyuncs.comparhttps://mirrors.aliyun.com#Add the Docker package repository 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 #Install Docker Community Edition, the containerd.io container runtime, and the Docker Buildx and Compose plugins sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Démarrez Docker et activez son démarrage automatique au boot.
#Start Docker sudo systemctl start docker #Set the Docker daemon to start automatically on system boot sudo systemctl enable docker
Déployer une application web
-
Construisez l'image.
#Pull the latest Nginx image sudo docker pull nginx:latest #Create a Dockerfile that sets Nginx as the base image and creates an index.html file that displays "Hello World!" in the web server's root directory. sudo tee Dockerfile <<-'EOF' FROM nginx:latest RUN echo 'Hello World!' > /usr/share/nginx/html/index.html EOF #Build the image and name it hello-world sudo docker build . -t hello-world:latest -
Démarrez un conteneur nommé
hello-worldà partir de l'image.sudo docker run -d -p 80:80 --name hello-world hello-world:latest Vérifiez le déploiement en exécutant
curl http://localhost. La sortie doit afficherHello World!.
Installer Docker Compose
Utilisez Docker Compose pour définir et exécuter des applications multi-conteneurs à partir d'un seul fichier YAML.
Alibaba Cloud Linux, CentOS, Red Hat, Anolis, Fedora
sudo yum -y install docker-compose-plugin
Ubuntu, Debian
sudo apt-get -y install docker-compose-plugin
Si une erreur se produit lors de l'exécution de la commande d'installation, consultez la section Échec de l'installation de Docker Compose. Après avoir configuré le dépôt logiciel, exécutez à nouveau la commande d'installation.
Déployer une application
-
Créez un fichier
docker-compose.yaml.#Create the orchestration file and add MySQL and WordPress services sudo tee docker-compose.yaml <<-'EOF' version: '3.1' services: wordpress: image: wordpress restart: always ports: - "80:80" environment: #Database host address WORDPRESS_DB_HOST: wordpress_db #Database username WORDPRESS_DB_USER: wordpress #Database password WORDPRESS_DB_PASSWORD: ${WORDPRESS_DB_PASSWORD} #Database name WORDPRESS_DB_NAME: wordpress volumes: - wordpress:/var/www/html db: image: mysql:5.7 restart: always container_name: wordpress_db environment: #Database name MYSQL_DATABASE: wordpress #Database username MYSQL_USER: wordpress #Database password MYSQL_PASSWORD: ${WORDPRESS_DB_PASSWORD} #Database root user password MYSQL_RANDOM_ROOT_PASSWORD: ${WORDPRESS_DB_PASSWORD} volumes: - db:/var/lib/mysql volumes: wordpress: db: EOF -
Démarrez WordPress. Remplacez
<database_password>par votre mot de passe MySQL.Docker Compose V2 utilise un espace au lieu d'un trait d'union, par exemple,
docker compose version.#Start the service containers. sudo env "PATH=$PATH" "WORDPRESS_DB_PASSWORD=<database_password>" docker compose -f docker-compose.yaml up -d -
Ouvrez
http://<Public_IP_address_of_your_ECS_instance>dans un navigateur pour accéder à WordPress.Vérifiez que votre groupe de sécurité autorise le trafic entrant sur le port
80.
FAQ
Comment exécuter Docker en tant qu'utilisateur non root ?
Par défaut, les commandes Docker nécessitent des privilèges root (via sudo). Pour éviter d'utiliser sudo pour chaque commande, ajoutez votre utilisateur au groupe docker.
-
Ajoutez votre utilisateur au groupe
docker.sudo usermod -aG docker $USER Exécutez
newgrp dockerpour appliquer la modification. Vous pouvez ensuite utiliser les commandesdockersanssudo. Déconnectez-vous et reconnectez-vous pour que la modification soit persistante.
Pourquoi http://mirrors.cloud.aliyuncs.com est-il inaccessible ?
Symptôme :
http://mirrors.cloud.aliyuncs.comest inaccessible.Cause : instabilité du réseau.
-
Solution : remplacez
http://mirrors.cloud.aliyuncs.comparhttps://mirrors.aliyun.com.L'utilisation de
https://mirrors.aliyun.comnécessite une adresse IP publique. Consultez Activer l'accès Internet .
Pourquoi la commande dnf config-manager échoue-t-elle ?
-
Symptôme : l'exécution de
dnf config-manageraffiche un avertissement de dépréciation :/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. Cause : version obsolète de dnf.
Solution : mettez à jour
dnfen exécutantsudo dnf update dnf, puis réessayez l'installation de Docker.
Pourquoi la commande dnf install docker-ce échoue-t-elle ?
-
Symptôme : l'exécution de
dnf -y install docker-ceéchoue avec une erreur de téléchargement :(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. Cause : cache de packages obsolète.
Solution : exécutez
sudo dnf clean packages, puis réessayez l'installation dedocker.-
Symptôme : l'exécution de
dnf -y install docker-ceéchoue avec une erreur de téléchargement des métadonnées :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 Cause : dépôt
CentOS 8abandonné.-
Solution : remplacez le dépôt
CentOS 8abandonné par un miroir Alibaba Cloud.# Back up the expired software source. sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # Download the Alibaba Cloud-provided CentOS-Base.repo to /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 # Replace the software source address in the Alibaba Cloud source with an address accessible to 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 # Clear the old cache and generate a new one. sudo yum clean all && sudo yum makecacheRéessayez ensuite l'installation de
docker.
Échec de l'installation de Docker Compose
Si la commande d'installation de Docker Compose échoue, il se peut que l'instance ne dispose pas de dépôt logiciel configuré. Vous pouvez configurer un dépôt logiciel en fonction du système d'exploitation de l'instance. Une fois la configuration terminée, exécutez à nouveau la commande d'installation de Docker Compose.
Alibaba Cloud Linux 3
#Add the Docker package repository
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
#Install the dnf repository compatibility plugin for Alibaba Cloud Linux 3
sudo dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus
Ubuntu
#Update the package management tool
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
#Add the Docker package repository
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
ARCH=$(dpkg --print-architecture)
DISTRO=$(. /etc/os-release && echo "$VERSION_CODENAME")
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null <<EOF
deb [arch=${ARCH} signed-by=/etc/apt/keyrings/docker.gpg] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu ${DISTRO} stable
EOF
sudo apt-get update
Debian
Pour Debian 10 et les versions antérieures, veuillez d'abord configurer les dépôts logiciels.
#Update the package management tool
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
#Add the Docker package repository
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: http://mirrors.cloud.aliyuncs.com/docker-ce/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
Red Hat
#Add the Docker package repository
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
Fedora
#Add the Docker package repository
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
Anolis OS / CentOS
#Add the Docker package repository
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
#Add the Docker package repository
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
#Install the yum repository compatibility plugin for Alibaba Cloud Linux 2
sudo yum install yum-plugin-releasever-adapter --disablerepo=* --enablerepo=plus
Références
Consultez la documentation officielle de Docker.
Le Centre d'artefacts d'Alibaba Cloud fournit gratuitement des images de conteneur de base sécurisées provenant d'Alibaba Cloud et de la communauté OpenAnolis.
Accélérez les pulls d'images grâce à la fonctionnalité d'accélération P2P pour les entreprises.
Exécutez Cloud Assistant CLI dans un conteneur Docker pour gérer les ressources Alibaba Cloud.