Instale o Docker e o Docker Compose em várias distribuições Linux para containerizar aplicações e permitir implantações portáteis e padronizadas.
Instalar o Docker
Alibaba Cloud Linux 4
Antes de instalar o Docker, desinstale todos os componentes existentes do Docker para evitar conflitos.
-
Instale o Docker.
-
Recomendado:
# Install the Moby runtime sudo yum install -y moby -
Instale o Docker Community Edition.
Se você não estiver usando um servidor Alibaba Cloud, substitua
http://mirrors.cloud.aliyuncs.comporhttps://mirrors.aliyun.com.#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-plugin #Note: To switch back to the native Moby component provided by Alibaba Cloud Linux 4, first remove the docker-ce components and disable the CentOS repository. sudo yum remove -y docker-ce docker-ce-cli sudo rm -rf /etc/yum.repos.d/docker-ce.repo
-
-
Inicie o Docker e configure a inicialização automática no 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
O Moby é o runtime de container padrão e continuará recebendo atualizações.
Os componentes mais antigos do Docker permanecem utilizáveis para compatibilidade futura, mas não receberão atualizações.
Alibaba Cloud Linux 3
Antes de instalar o Docker, desinstale todos os componentes existentes do Docker para evitar conflitos.
-
Instale o Docker Community Edition.
Se você não estiver usando um servidor Alibaba Cloud, substitua
http://mirrors.cloud.aliyuncs.comporhttps://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 -
Inicie o Docker e configure a inicialização automática no boot.
#Start Docker sudo systemctl start docker #Set the Docker daemon to start automatically on system boot sudo systemctl enable docker
Ubuntu
Antes de instalar o Docker, desinstale todos os componentes existentes do Docker para evitar conflitos.
-
Instale o Docker Community Edition.
Se você não estiver usando um servidor Alibaba Cloud, substitua
http://mirrors.cloud.aliyuncs.comporhttps://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 -
Inicie o Docker e configure a inicialização automática no boot.
#Start Docker sudo systemctl start docker #Set the Docker daemon to start automatically on system boot sudo systemctl enable docker
Debian
Antes de instalar o Docker, desinstale todos os componentes existentes do Docker para evitar conflitos.
-
Instale o Docker Community Edition.
Se você não estiver usando um servidor Alibaba Cloud, substitua
http://mirrors.cloud.aliyuncs.comporhttps://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 -
Inicie o Docker e configure a inicialização automática no boot.
#Start Docker sudo systemctl start docker #Set the Docker daemon to start automatically on system boot sudo systemctl enable docker
Red Hat
Antes de instalar o Docker, desinstale todos os componentes existentes do Docker para evitar conflitos.
-
Instale o Docker Community Edition.
Se você não estiver usando um servidor Alibaba Cloud, substitua
http://mirrors.cloud.aliyuncs.comporhttps://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 -
Inicie o Docker e configure a inicialização automática no boot.
#Start Docker sudo systemctl start docker #Set the Docker daemon to start automatically on system boot sudo systemctl enable docker
Fedora
Antes de instalar o Docker, desinstale todos os componentes existentes do Docker para evitar conflitos.
-
Instale o Docker Community Edition.
Se você não estiver usando um servidor Alibaba Cloud, substitua
http://mirrors.cloud.aliyuncs.comporhttps://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 -
Inicie o Docker e configure a inicialização automática no boot.
#Start Docker sudo systemctl start docker #Set the Docker daemon to start automatically on system boot sudo systemctl enable docker
Anolis OS
Antes de instalar o Docker, desinstale todos os componentes existentes do Docker para evitar conflitos.
-
Instale o Docker Community Edition.
Se você não estiver usando um servidor Alibaba Cloud, substitua
http://mirrors.cloud.aliyuncs.comporhttps://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 -
Inicie o Docker e configure a inicialização automática no 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
Antes de instalar o Docker, desinstale todos os componentes existentes do Docker para evitar conflitos.
-
Instale o Docker Community Edition.
Se você não estiver usando um servidor Alibaba Cloud, substitua
http://mirrors.cloud.aliyuncs.comporhttps://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 -
Inicie o Docker e configure a inicialização automática no boot.
#Start Docker sudo systemctl start docker #Set the Docker daemon to start automatically on system boot sudo systemctl enable docker
CentOS 7.x
Antes de instalar o Docker, desinstale todos os componentes existentes do Docker para evitar conflitos.
-
Instale o Docker Community Edition.
Se você não estiver usando um servidor Alibaba Cloud, substitua
http://mirrors.cloud.aliyuncs.comporhttps://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 -
Inicie o Docker e configure a inicialização automática no boot.
#Start Docker sudo systemctl start docker #Set the Docker daemon to start automatically on system boot sudo systemctl enable docker
CentOS 8.x
Antes de instalar o Docker, desinstale todos os componentes existentes do Docker para evitar conflitos.
-
Instale o Docker Community Edition.
Se você não estiver usando um servidor Alibaba Cloud, substitua
http://mirrors.cloud.aliyuncs.comporhttps://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 -
Inicie o Docker e configure a inicialização automática no boot.
#Start Docker sudo systemctl start docker #Set the Docker daemon to start automatically on system boot sudo systemctl enable docker
Implantar uma aplicação web
-
Crie a imagem.
#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 -
Inicie um container chamado
hello-worlda partir da imagem.sudo docker run -d -p 80:80 --name hello-world hello-world:latest Verifique a implantação executando
curl http://localhost. A saída deve exibirHello World!.
Instalar o Docker Compose
Use o Docker Compose para definir e executar aplicações com múltiplos containers a partir de um único arquivo 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
Implantar uma aplicação
-
Crie um arquivo
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 -
Inicie o WordPress. Substitua
<database_password>pela sua senha do MySQL.O Docker Compose V2 usa espaço em vez de hífen, por exemplo:
docker compose version.#Start the service containers. sudo env "PATH=$PATH" "WORDPRESS_DB_PASSWORD=<database_password>" docker compose -f docker-compose.yaml up -d -
Abra
http://<Public_IP_address_of_your_ECS_instance>em um navegador para acessar o WordPress.Verifique se o seu grupo de segurança permite tráfego de entrada na porta
80.
FAQ
Como executar o Docker como usuário sem privilégios de root?
Por padrão, os comandos do Docker exigem privilégios de root (via sudo). Para evitar o uso de sudo em cada comando, adicione seu usuário ao grupo docker.
-
Adicione seu usuário ao grupo
docker.sudo usermod -aG docker $USER Execute
newgrp dockerpara aplicar a alteração. Em seguida, use comandosdockersemsudo. Faça logoff e logon novamente para tornar a alteração permanente.
Por que http://mirrors.cloud.aliyuncs.com está inacessível?
Sintoma:
http://mirrors.cloud.aliyuncs.comestá inacessível.Causa: instabilidade de rede.
-
Solução: substitua
http://mirrors.cloud.aliyuncs.comporhttps://mirrors.aliyun.com.O uso de
https://mirrors.aliyun.comrequer um endereço IP público. Consulte Ativar acesso à Internet .
Por que o comando dnf config-manager falha?
-
Sintoma: a execução de
dnf config-managerexibe um aviso de descontinuação:/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. Causa: versão desatualizada do dnf.
Solução: atualize o
dnfexecutandosudo dnf update dnfe tente instalar o Docker novamente.
Por que o comando dnf install docker-ce falha?
-
Sintoma: a execução de
dnf -y install docker-cefalha com um erro de download:(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. Causa: cache de pacotes desatualizado.
Solução: execute
sudo dnf clean packagese tente instalar odockernovamente.-
Sintoma: a execução de
dnf -y install docker-cefalha com um erro de download de metadados: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 Causa: repositório do
CentOS 8descontinuado.-
Solução: substitua o repositório descontinuado do
CentOS 8por um espelho do 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 makecacheEm seguida, tente instalar o
dockernovamente.
Referências
Consulte a documentação oficial do Docker.
O Artifact Center do Alibaba Cloud fornece imagens base de container gratuitas e seguras do Alibaba Cloud e da comunidade OpenAnolis.
Acelere o download de imagens com o recurso de aceleração P2P empresarial.
Execute a CLI do Cloud Assistant em um container Docker para gerenciar recursos do Alibaba Cloud.