Instale o Docker e o Docker Compose em várias distribuições Linux para containerizar aplicações, permitindo implantações portáteis e padronizadas.
Instale o Docker
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 ative a inicialização automática no boot do sistema.
#Start Docker sudo systemctl start docker #Set the Docker daemon to start automatically on system boot sudo systemctl enable docker
Alibaba Cloud Linux 4
Antes de instalar o Docker, desinstale todos os componentes existentes do Docker para evitar conflitos.
-
Instale o Docker.
Instale o Moby a partir do repositório do Alibaba Cloud Linux
O Moby contém toda a funcionalidade principal do Docker. No Alibaba Cloud Linux 4, o mecanismo de container é fornecido nativamente pelo pacote moby. Após instalar o moby, os comandos do sistema, o nome do service (dockerd), a API e as imagens de container são totalmente compatíveis com o Docker padrão.
sudo yum install -y mobyInstale o Docker CE a partir do repositório Docker CE
Para servidores fora da Alibaba Cloud, substitua
http://mirrors.cloud.aliyuncs.comporhttps://mirrors.aliyun.com. Selecione uma versão compatível com CentOS no repositório Docker CE e confirme que a versão antiga do Docker foi removida antes da instalação.#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-pluginNotaPara voltar ao runtime de container Moby, fornecido nativamente pelo Alibaba Cloud Linux 4 após usar o Docker CE, remova os componentes do Docker CE e desative o repositório CentOS primeiro.
sudo yum remove -y docker-ce docker-ce-cli sudo rm -rf /etc/yum.repos.d/docker-ce.repo -
Inicie o Docker e ative a inicialização automática no boot do sistema.
# 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 antigos do Docker permanecem utilizáveis para compatibilidade futura, mas não receberão atualizações.
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 ative a inicialização automática no boot do sistema.
#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 ative a inicialização automática no boot do sistema.
#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 ative a inicialização automática no boot do sistema.
#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 ative a inicialização automática no boot do sistema.
#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 ative a inicialização automática no boot do sistema.
#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 ative a inicialização automática no boot do sistema.
#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 ative a inicialização automática no boot do sistema.
#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 ative a inicialização automática no boot do sistema.
#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!.
Instale 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
Se ocorrer um erro ao executar o comando de instalação, consulte Falha na instalação do Docker Compose. Após configurar o repositório de software, execute o comando de instalação novamente.
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 um 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.
Perguntas frequentes
Como executar o Docker como usuário não root?
Os comandos do Docker exigem privilégios de root (via sudo) por padrão. 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 os comandosdockersemsudo. Saia e faça login novamente para que a alteração persista.
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 Habilitar acesso à Internet .
Por que o comando dnf config-manager falha?
-
Sintoma: A execução de
dnf config-managermostra 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 da 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.
Falha na instalação do Docker Compose
Se o comando de instalação do Docker Compose falhar, a instância pode não ter um repositório de software configurado. Configure um repositório de software com base no sistema operacional da instância. Após concluir a configuração, execute o comando Instale Docker Compose novamente.
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
Para o Debian 10 e versões anteriores, siga as instruções em configurar repositórios de software primeiro.
#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
Referências
Consulte a documentação oficial do Docker.
O Artifact Center da Alibaba Cloud fornece imagens de container base seguras e gratuitas da 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 da Alibaba Cloud.