O Docker utiliza várias portas, portanto, antes de iniciar o serviço, desative o firewall ou configure as portas necessárias!
Para desativar o firewall: systemctl stop firewalld
Para evitar que o firewall inicie automaticamente: systemctl disable firewalld
Este artigo será atualizado continuamente com novos serviços configurados.
Índice
-
Instalação do Docker
-
Comandos essenciais do Docker
-
Instalação do Nacos
-
Instalação do Redis
-
Instalação do Sentinel
-
Instalação do Zipkin
-
Instalação do MinIO
-
Instalação do MySQL
-
Instalação do Nginx
-
Instalação do RabbitMQ
-
Instalação do Docker
1.1 Removendo versões anteriores (opcional)
Caso tenha uma versão antiga do Docker instalada, utilize o comando abaixo para remover:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
1.2 Instalação
(1) Instalar ferramentas yum com conexão de rede:
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 --skip-broken
(2) Atualizar repositório de imagens local:
- Configurar repositório Docker:
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
- Atualizar índices do yum:
yum makecache fast
(3) Instalar o Docker (docker-ce é a versão community gratuita):
yum install -y docker-ce
- Comandos Essenciais do Docker
2.1 Comandos de serviço:
#Iniciar serviço Docker
systemctl start docker
#Configurar inicialização automática (recomendado)
systemctl enable docker
#Parar serviço Docker
systemctl stop docker
#Reiniciar serviço Docker
systemctl restart docker
#Verificar versão do Docker
docker --version
2.2 Comandos de imagens:
#Pesquisar imagens
docker search nome-da-imagem
#Baixar imagem, pode incluir versão como: docker pull mysql:5.7
docker pull nome-da-imagem
#Listar todas as imagens
docker images
#Remover imagem individual, usar -f para forçar
docker rmi nome-ou-id-da-imagem
#Remover todas as imagens
docker rmi $(docker images -q)
2.3 Comandos de contêineres:
#Listar contêineres em execução
docker ps
#Listar todos os contêineres (em execução ou não)
docker ps -a
#Listar tamanho dos contêineres
docker ps -s
#Iniciar contêiner específico
docker start ID_DO_CONTAINER
#Reiniciar contêiner
docker restart ID_DO_CONTAINER
#Parar contêiner específico
docker stop ID_DO_CONTAINER
#Acessar contêiner interativamente
docker exec -it [nome/id-do-container] /bin/bash
#Visualizar logs do contêiner
docker logs -f [nome/id-do-container]
#Remover contêiner individual, usar -f para forçar
docker rm ID_DO_CONTAINER
#Parar todos os contêineres
docker stop $(docker ps -a -q)
#Iniciar todos os contêineres
docker start $(docker ps -a -q)
#Remover todos os contêineres
docker rm $(docker ps -a -q)
#Configurar reinício automático
--restart=always
- Instalação do Nacos
3.1 Baixar imagem do Nacos
docker pull nacos/nacos-server
3.2 Criar e executar contêiner Nacos
Acesso: ip:8848/nacos
docker run -d --name nacos-servidor -p 8848:8848 -e MODE=standalone nacos/nacos-server
- Instalação do Redis
4.1 Baixar imagem do Redis
docker pull redis
4.2 Criar e executar contêiner Redis
Sem usuário, senha configurável (exemplo: root)
docker run \
--name redis-servico \
-p 6379:6379 \
-v /dados/redis:/data \
-v /config/redis/redis.conf:/etc/redis/redis.conf \
-d redis:latest redis-server /etc/redis/redis.conf --requirepass root
- Instalação do Sentinel
5.1 Baixar imagem do Sentinel
docker pull bladex/sentinel-dashboard
5.2 Criar e executar contêiner Sentinel
Acesso: ip:8858 | Usuário: sentinel | Senha: sentinel
docker run --name sentinel-dashboard -p 8858:8858 -d bladex/sentinel-dashboard:latest
- Instalação do Zipkin
6.1 Baixar imagem do Zipkin
docker pull openzipkin/zipkin
6.2 Criar e executar contêiner Zipkin
Acesso: ip:9411
docker run -d -p 9411:9411 openzipkin/zipkin:latest
- Instalação do MinIO
7.1 Baixar imagem do MinIO
docker pull minio/minio
7.2 Criar e executar contêiner MinIO
Na versão mais recente, a porta da API (9000) deve ser diferente da porta do console (9001)
docker run -d \
-p 9000:9000 \
-p 9001:9001 \
--name minio-servico \
-v /armazenamento/minio:/data \
-e "MINIO_ROOT_USER=minio" \
-e "MINIO_ROOT_PASSWORD=minio123" \
minio/minio server /data --console-address ":9001"
- Instalação do MySQL
8.1 Preparação de diretórios
Criar diretório de configuração no host para evitar erros com o comando -v:
mkdir -p /etc/mysql/conf.d
8.2 Baixar imagem do MySQL
docker pull mysql
8.3 Criar e executar contêiner MySQL
Usuário padrão: root | Senha: configure cofnorme desejado
Exemplo do comando -v: -v /host/mysql/log:/var/log/mysql - mapeia o diretório de logs do contêiner para o host.
Com essa configuração de volume, mesmo se o contêiner for removido, ao criar um novo as dados serão restaurados automaticamente.
docker run -d -p 3306:3306 --name mysql-servidor \
-v /host/mysql/log:/var/log/mysql \
-v /host/mysql/data:/var/lib/mysql \
-v /host/mysql/config:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=sua_senha mysql
8.4 Configuração adicional
Navegar até o diretório de configuração criado (/host/mysql/config) e criar o arquivo my.cnf:
cd /host/mysql/config
vi my.cnf
Conteúdo do arquivo my.cnf:
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
Após salvar, reiniciar o contêiner.
- Instalação do Nginx
9.1 Criar diretórios para persistência
mkdir -p /nginx/{html,config,logs}
9.2 Criar arquivo de configuração
vi /nginx/config/nginx.conf
#Configuração de processos do worker
worker_processes 1;
events {
worker_connections 5000;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
9.3 Baixar imagem do Nginx
docker pull nginx
9.4 Criar contêiner com mapeamento de arquivos
docker run --privileged=true -it -d --name nginx-servico --restart=always \
-p 80:80 \
-v /nginx/html:/etc/nginx/html \
-v /nginx/config/nginx.conf:/etc/nginx/nginx.conf \
-v /nginx/logs:/var/log/nginx nginx
9.5 Deploy de aplicação
Copiar arquivos da aplicação (dist) para o diretório html do host e reiniciar o contêiner para acessar via IP.
- Instalação do RabbitMQ
10.1 Baixar imagem do RabbitMQ
Versão com plugin de gerenciamento incluso
docker pull rabbitmq:3.7.7-management
10.2 Criar e executar contêiner
5672: Porta de acesso da aplicação | 15672: Porta do console web | Usuário: guest | Senha: guest
docker run -d --name rabbitmq-servico -p 5672:5672 -p 15672:15672 rabbitmq:3.7.7-management