Este tópico descreve como instalar o Docker e o Docker Compose em uma instância Linux do Simple Application Server e como implantar aplicações conteinerizadas.
Para uma configuração automatizada rápida, consulte Implantar o Docker rapidamente . Para a documentação do Docker, veja a Visão geral do Docker .
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância Linux do Simple Application Server. Consulte Criar uma instância do Simple Application Server.
As portas 80 e 22 abertas no firewall da instância. Consulte Configurar um firewall.
Sistemas operacionais compatíveis
|
Sistema operacional |
Gerenciador de pacotes |
|
Alibaba Cloud Linux 4 |
yum / dnf |
|
Alibaba Cloud Linux 3 |
dnf |
|
Alibaba Cloud Linux 2 |
yum |
|
Ubuntu |
apt |
|
Debian |
apt |
|
Red Hat |
yum |
|
Fedora |
dnf |
|
Anolis OS |
yum |
|
CentOS 7.x |
yum |
|
CentOS 8.x |
dnf |
Instalar o Docker
Conecte-se à sua instância do Simple Application Server. Consulte Conectar remotamente a um servidor Linux.
Siga as etapas correspondentes ao seu sistema operacional.
Alibaba Cloud Linux 4
O Alibaba Cloud Linux 4 vem com o Moby como runtime de contêiner padrão. Escolha uma das opções abaixo conforme sua necessidade:
|
Opção |
Quando usar |
|
Moby (recomendado) |
Padrão para a maioria das cargas de trabalho. Mantido pela Alibaba Cloud, otimizado para o Alibaba Cloud Linux 4 e atualizado junto com o SO. |
|
Docker CE |
Use quando precisar de recursos do Docker Community Edition não disponíveis no Moby ou quando exigir uma versão específica do Docker. |
Etapa 2: Instalar o Docker
Opção A: Instalar o Moby (recomendado)
sudo yum install -y moby
O Moby é o runtime de contêiner padrão no Alibaba Cloud Linux 4 e continuará recebendo atualizações nas versões futuras. Componentes mais antigos do Docker permanecem disponíveis para compatibilidade futura, mas não receberão mais atualizações.
Opção B: Instalar o Docker CE
Se você não estiver usando um servidor da Alibaba Cloud, substituahttp://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
# Select a CentOS version: replace $releasever with 9 or 10
# To use CentOS 9:
sudo sed -i 's|$releasever|9|' /etc/yum.repos.d/docker-ce.repo
# To use CentOS 10:
sudo sed -i 's|$releasever|10|' /etc/yum.repos.d/docker-ce.repo
# Install Docker CE, containerd.io, and the Buildx and Compose plugins
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Para voltar ao Moby posteriormente:
sudo yum remove -y docker-ce docker-ce-cli
sudo rm -rf /etc/yum.repos.d/docker-ce.repo
Etapa 3: Iniciar o Docker
# Start Docker and enable it to start on boot
sudo systemctl start docker
sudo systemctl enable docker
# Verify the installation
docker --version
Execute sudo systemctl status docker para confirmar se o serviço está ativo:
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled)
Active: active (running) since ...
Alibaba Cloud Linux 3
Etapa 2: Instalar o Docker CE
Se você não estiver usando um servidor da Alibaba Cloud, substituahttp://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 CE, containerd.io, and the Buildx and Compose plugins
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Etapa 3: Iniciar o Docker
sudo systemctl start docker
sudo systemctl enable docker
Verifique se o serviço está ativo:
sudo systemctl status docker
Saída esperada:
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled)
Active: active (running) since ...
Ubuntu
Etapa 2: Instalar o Docker CE
Se você não estiver usando um servidor da Alibaba Cloud, substituahttp://mirrors.cloud.aliyuncs.comporhttps://mirrors.aliyun.com.
# Update the package list and install prerequisites
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# Add Docker's GPG key and repository
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 CE, containerd.io, and the Buildx and Compose plugins
sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Etapa 3: Iniciar o Docker
sudo systemctl start docker
sudo systemctl enable docker
Verifique se o serviço está ativo:
sudo systemctl status docker
Saída esperada:
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled)
Active: active (running) since ...
Debian
Etapa 2: Instalar o Docker CE
Se você não estiver usando um servidor da Alibaba Cloud, substituahttp://mirrors.cloud.aliyuncs.comporhttps://mirrors.aliyun.com.
# Update the package list and install prerequisites
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# Add Docker's GPG key and repository
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 CE, containerd.io, and the Buildx and Compose plugins
sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Etapa 3: Iniciar o Docker
sudo systemctl start docker
sudo systemctl enable docker
Verifique se o serviço está ativo:
sudo systemctl status docker
Saída esperada:
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled)
Active: active (running) since ...
Red Hat
Etapa 2: Instalar o Docker CE
Se você não estiver usando um servidor da Alibaba Cloud, substituahttp://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 CE, containerd.io, and the Buildx and Compose plugins
sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Etapa 3: Iniciar o Docker
sudo systemctl start docker
sudo systemctl enable docker
Verifique se o serviço está ativo:
sudo systemctl status docker
Saída esperada:
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled)
Active: active (running) since ...
Fedora
Etapa 2: Instalar o Docker CE
Se você não estiver usando um servidor da Alibaba Cloud, substituahttp://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 CE, containerd.io, and the Buildx and Compose plugins
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Etapa 3: Iniciar o Docker
sudo systemctl start docker
sudo systemctl enable docker
Verifique se o serviço está ativo:
sudo systemctl status docker
Saída esperada:
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled)
Active: active (running) since ...
Anolis OS
Etapa 2: Instalar o Docker CE
Se você não estiver usando um servidor da Alibaba Cloud, substituahttp://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 CE, containerd.io, and the Buildx and Compose plugins
sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Etapa 3: Iniciar o Docker
sudo systemctl start docker
sudo systemctl enable docker
Verifique se o serviço está ativo:
sudo systemctl status docker
Saída esperada:
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled)
Active: active (running) since ...
Alibaba Cloud Linux 2
Etapa 2: Instalar o Docker CE
Se você não estiver usando um servidor da Alibaba Cloud, substituahttp://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 CE, containerd.io, and the Buildx and Compose plugins
sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Etapa 3: Iniciar o Docker
sudo systemctl start docker
sudo systemctl enable docker
Verifique se o serviço está ativo:
sudo systemctl status docker
Saída esperada:
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled)
Active: active (running) since ...
CentOS 7.x
Etapa 2: Instalar o Docker CE
Se você não estiver usando um servidor da Alibaba Cloud, substituahttp://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 CE, containerd.io, and the Buildx and Compose plugins
sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Etapa 3: Iniciar o Docker
sudo systemctl start docker
sudo systemctl enable docker
Verifique se o serviço está ativo:
sudo systemctl status docker
Saída esperada:
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled)
Active: active (running) since ...
CentOS 8.x
Etapa 2: Instalar o Docker CE
Se você não estiver usando um servidor da Alibaba Cloud, substituahttp://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 CE, containerd.io, and the Buildx and Compose plugins
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Etapa 3: Iniciar o Docker
sudo systemctl start docker
sudo systemctl enable docker
Verifique se o serviço está ativo:
sudo systemctl status docker
Saída esperada:
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled)
Active: active (running) since ...
Implantar uma aplicação web com o Docker
Esta seção orienta a criação de uma aplicação web simples baseada em Nginx e sua execução como contêiner.
-
Crie a imagem da aplicação web.
# Pull the latest Nginx image sudo docker pull nginx:latest # Create a Dockerfile using Nginx as the base image, # serving a simple "Hello World!" page sudo tee Dockerfile <<-'EOF' FROM nginx:latest RUN echo 'Hello World!' > /usr/share/nginx/html/index.html EOF # Build the image sudo docker build . -t hello-world:latest -
Inicie um contêiner chamado
hello-worlda partir da imagem, mapeando a porta 80.sudo docker run -d -p 80:80 --name hello-world hello-world:latest -
Verifique se a aplicação web está em execução.
curl http://localhostA saída esperada é:
Hello World!
Instalar o Docker Compose
O Docker Compose está incluído no pacote docker-compose-plugin instalado nas etapas anteriores. Caso precise instalá-lo separadamente, execute o comando abaixo correspondente ao seu SO.
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 com o Docker Compose
Esta seção mostra como usar o Docker Compose para executar um site WordPress com um banco de dados MySQL.
-
Crie um arquivo Compose chamado
docker-compose.yaml.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} MYSQL_RANDOM_ROOT_PASSWORD: ${WORDPRESS_DB_PASSWORD} volumes: - db:/var/lib/mysql volumes: wordpress: db: EOF -
Inicie os serviços.
export WORDPRESS_DB_PASSWORD=<your-db-password> sudo -E docker compose up -d Abra
https://<public IP address of the Simple Application Server instance>em um navegador. A página de configuração do WordPress será exibida. Siga as instruções na tela para concluir a configuração.
Perguntas frequentes
Como executar o Docker sem sudo?
Por padrão, os comandos do Docker exigem privilégios de root. Para executar o Docker com seu usuário atual, adicione o usuário ao grupo docker.
-
Adicione o usuário atual ao grupo
docker.sudo usermod -aG docker $USER -
Aplique a alteração de grupo à sessão atual do shell.
newgrp docker -
Verifique se o seu usuário agora pertence ao grupo
docker.groupsA saída deve incluir
docker:<your-username> sudo docker -
Confirme que é possível executar o Docker sem
sudo.docker run hello-worldUma mensagem de sucesso confirma que o Docker está funcionando corretamente para o seu usuário. Para que a alteração persista entre sessões de login, faça logout e login novamente.
Por que http://mirrors.cloud.aliyuncs.com está inacessível?
Se você encontrar uma falha de conexão ao acessar http://mirrors.cloud.aliyuncs.com, a causa provável é instabilidade de rede. Substitua http://mirrors.cloud.aliyuncs.com por https://mirrors.aliyun.com em todos os comandos.
O endereço https://mirrors.aliyun.com exige que sua instância tenha um endereço IP público. Consulte Habilitar acesso à Internet .
Por que o comando dnf config-manager falha?
Se você vir um DeprecationWarning sobre distutils ao executar dnf config-manager, sua versão do dnf está desatualizada. Atualize-a e tente novamente:
sudo dnf update dnf
Por que o dnf install docker-ce falha?
Sintoma: falha no download
containerd.io-1.6.26-3.1.el8.x86_64: Cannot download, all mirrors were already tried without success.
O cache de pacotes está obsoleto. Limpe-o e tente novamente:
sudo dnf clean packages
Sintoma: falha no download de metadados no CentOS 8
Errors during downloading metadata for repository 'base':
- Curl error (6): Couldn't resolve host name for http://mirror.centos.org/...
Error: Failed to download metadata for repo 'base'
O repositório padrão do CentOS 8 foi descontinuado. Substitua-o pelo arquivo fornecido pela Alibaba Cloud:
# Back up the existing repo file
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# Download the Alibaba Cloud CentOS vault repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.aliyuncs.com/repo/Centos-vault-8.5.2111.repo
# Update the mirror addresses
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
# Rebuild the cache
sudo yum clean all && sudo yum makecache
Em seguida, tente instalar o Docker novamente.
Próximos passos
Artifact Center: Imagens de contêiner base gratuitas e seguras da Alibaba Cloud e da comunidade OpenAnolis.
Usar aceleração P2P em outros ambientes de contêiner: Acelere os pulls de imagens com a aceleração P2P empresarial.
Executar a CLI do Cloud Assistant em um contêiner Docker: Gerencie recursos da Alibaba Cloud de dentro de um contêiner.