Este artigo Alibaba Cloud Encyclopedia compartilha como implantar e usar o Docker em instâncias ECS de serviço em nuvem. Docker é um mecanismo de contêiner de aplicativos de código aberto com vantagens de portabilidade, escalabilidade, alta segurança e capacidade de gerenciamento. Os desenvolvedores podem empacotar aplicativos e dependências em um contêiner portátil, publicar rapidamente em máquinas Linux e implementar a virtualização para criar, implantar e gerenciar aplicativos com mais eficiência. Ao mesmo tempo, o Alibaba Cloud fornece fontes de imagem Docker para facilitar a implantação rápida do Docker.
Índice
Instale e use o docker-compose
Implantar aplicativos usando docker-compose
Pré-requisitos
Uma instância básica do ECS foi criada e atende às configurações a seguir.
- Sistema operacional: CentOS 7.x 64 bits, CentOS 8.x 64 bits, Alibaba Cloud Linux 3 64 bits, Alibaba Cloud Linux 2 64 bits
- Servidor de nuvem ECS: aliyunbaike.com/go/ecs
- Tipo de rede: VPC de rede privada
- Endereço IP: IP público
- Grupo de segurança: abra as portas 80, 22 e 8080 na direção de entrada. Para operações específicas, consulte Adicionando regras de grupo de segurança .
Implantar Docker
- Conecte-se à instância do ECS remotamente.
Para obter uma introdução aos métodos de conexão, consulte Visão geral dos métodos de conexão .
-
Instale Docker, CentOS 8.x
-
Mude o endereço de origem do CentOS 8.
A versão do sistema operacional CentOS 8 encerrou seu ciclo de vida (EOL). De acordo com as regras da comunidade, o conteúdo do endereço de origem http://mirror.centos.org/centos/8/ do CentOS 8 foi removido. Você pode continuar para usar a configuração padrão no Alibaba Cloud. O erro de origem do CentOS 8 ocorrerá. Se precisar usar alguns pacotes de instalação no sistema CentOS 8, você precisará alternar manualmente o endereço de origem.
-
Execute o seguinte comando para instalar o DNF.
sudo yum -y install dnf
-
Execute o seguinte comando para instalar os pacotes de dependência do driver de armazenamento Docker.
sudo dnf install -y device-mapper-persistent-data lvm2
-
Execute o seguinte comando para adicionar fontes de software Docker estáveis.
sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
Execute o seguinte comando para verificar se a fonte do software Docker foi adicionada.
sudo dnf list docker-ce
O eco mostrado na figura abaixo aparece, indicando que a fonte do software Docker foi adicionada. Você pode usar a ferramenta de teste de velocidade do Alibaba Cloud aliyunping.com para testar o atraso da rede do valor de ping do nó local para o servidor Alibaba Cloud em várias regiões.
-
Execute o seguinte comando para instalar o Docker.
sudo dnf install -y docker-ce --nobest
-
Execute o seguinte comando para verificar se o Docker foi instalado com sucesso.
sudo docker -v
Conforme mostrado na figura a seguir, o Docker foi instalado com sucesso.
-
Execute o seguinte comando para iniciar o serviço Docker e configurá-lo para iniciar automaticamente na inicialização.
sudo systemctl start docker sudo systemctl enable docker
-
Execute o seguinte comando para verificar se o Docker foi iniciado.
sudo systemctl status docker
Conforme mostrado no eco a seguir, o Docker foi iniciado.
Uso básico do Docker
Apenas o uso básico do Docker está listado abaixo.
-
Gerenciando o daemon Docker
sudo systemctl start docker #运行Docker守护进程 sudo systemctl stop docker #停止Docker守护进程 sudo systemctl restart docker #重启Docker守护进程 sudo systemctl enable docker #设置Docker开机自启动 sudo systemctl status docker #查看Docker的运行状态
-
Gerenciar imagens
Este artigo usa a imagem do Apache no armazém do Alibaba Cloud como exemplo para apresentar como usar o Docker para gerenciar a imagem.
-
Puxe a imagem.
sudo docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
-
Modifique rótulos. Se o nome da imagem for longo, você poderá modificar o rótulo da imagem para lembrá-lo.
sudo docker tag registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest aliweb:v1
-
Veja imagens existentes.
sudo docker images
-
Exclua a imagem à força.
sudo docker rmi -f registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
-
-
Gerenciar contêineres
O <ID da imagem> abaixo pode
docker images
ser consultado através do comando.-
Inicie um novo contêiner.
sudo docker run -it <镜像ID> /bin/bash
-
Inicie um novo contêiner, deixe-o ser executado em segundo plano e especifique o nome do contêiner.
sudo docker run -d --name <容器名> <镜像ID>
-
Veja o ID do contêiner.
sudo docker ps
-
Transforme o contêiner em uma imagem.
sudo docker commit <容器ID或容器名> <仓库名>:<标签>
-
Use Docker para criar imagens
Esta etapa orienta como personalizar uma imagem Nginx simples por meio do Dockerfile.
-
Execute o seguinte comando para extrair a imagem. Este exemplo usa a extração da imagem Apache do armazém do Alibaba Cloud como exemplo.
sudo docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
-
Modifique o rótulo do nome da imagem para facilitar a lembrança.
sudo docker tag registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest aliweb:v1
-
Execute o seguinte comando para criar e editar o arquivo Dockerfile.
-
Execute o seguinte comando para criar e editar o arquivo Dockerfile.
vim Dockerfile
-
Pressione
i
para entrar no modo de edição e adicione o seguinte conteúdo para transformar a imagem original.#声明基础镜像来源。 FROM aliweb:v1 #声明镜像拥有者。 MAINTAINER DTSTACK #RUN后面接容器运行前需要执行的命令,由于Dockerfile文件不能超过127行,因此当命令较多时建议写到脚本中执行。 RUN mkdir /dtstact #开机启动命令,此处最后一个命令需要是可在前台持续执行的命令,否则容器后台运行时会因为命令执行完而退出。 ENTRYPOINT ping www.aliyun.com
-
Pressione as teclas
Esc
, enter:wq
eEnter
pressione as teclas para salvar e sair do Dockerfile.
-
-
Execute o seguinte comando para construir uma nova imagem baseada na imagem básica nginx.
O formato do comando é
docker build -t <镜像名称>:<镜像版本> .
, o final do comando.
representa o caminho do arquivo Dockerfile e não pode ser ignorado. Tomando como exemplo a construção de uma nova imagem aliweb:v2, o comando é:sudo docker build -t aliweb:v2 .
-
Execute o seguinte comando para verificar se a nova imagem foi construída com sucesso.
sudo docker images
Conforme mostrado no eco a seguir, a construção foi bem-sucedida.
Instale e use o docker-compose
docker-compose é uma ferramenta de orquestração de contêineres de código aberto fornecida oficialmente pelo Docker para definir e executar vários contêineres Docker. Você pode usar arquivos YAML para configurar todos os serviços exigidos pelo aplicativo e, em seguida, usar docker-compose para executar o comando para analisar o YAML configuração de arquivo, crie e inicie todos os serviços Docker no arquivo de configuração, que tem as vantagens de baixos custos de operação e manutenção e alta eficiência de implantação.
importante
Apenas Python 3 e superior suportam docker-compose e certifique-se de que o pip esteja instalado.
Instale o docker-compose
-
Execute o seguinte comando para instalar o setuptools.
pip3 install -U pip setuptools
-
Execute o seguinte comando para instalar o docker-compose.
pip3 install docker-compose
-
Execute o seguinte comando para verificar se o docker-compose foi instalado com sucesso.
docker-compose --version
Se o echo retornar informações de versão do docker-compose, significa que o docker-compose foi instalado com sucesso.
Implantar aplicativos usando docker-compose
A seguir, a implantação do WordPress é um exemplo para apresentar como usar o docker-compose para implantar aplicativos.
-
Crie e edite o arquivo docker-compose.yaml.
-
Execute o seguinte comando para criar o arquivo docker-compose.yaml.
vim docker-compose.yaml
-
Pressione
i
a tecla para entrar no modo de edição e adicionar o seguinte conteúdo.Este exemplo usa a instalação do WordPress como exemplo.
version: '3.1' # 版本信息 services: wordpress: # 服务名称 image: wordpress # 镜像名称 restart: always # docker启动,当前容器必启动 ports: - 80:80 # 映射端口 environment: # 编写环境 WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: 123456 WORDPRESS_DB_NAME: wordpress volumes: # 映射数据卷 - wordpress:/var/www/html db: # 服务名称 image: mysql:5.7 # 镜像名称 restart: always # docker启动,当前容器必启动 ports: - 3306:3306 # 映射端口 environment: # 环境变量 MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: 123456 MYSQL_RANDOM_ROOT_PASSWORD: '1' volumes: # 卷挂载路径 - db:/var/lib/mysql volumes: wordpress: db:
-
Pressione
Esc
a tecla para sair do modo de edição e depois enter para:wq
salvar e sair.
-
-
Execute o seguinte comando para iniciar o aplicativo.
sudo env "PATH=$PATH" docker-compose up -d
-
Insira-o no navegador
https://云服务器ECS实例的公网IP
para entrar na página de configuração do WordPress. Você pode configurar os parâmetros relevantes de acordo com os prompts da interface e então acessar o WordPress.
Este artigo foi reproduzido da documentação oficial do Alibaba Cloud.