Instalando Docker no Linux: Baixando imagens e criando contêineres

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

  1. Instalação do Docker

  2. Comandos essenciais do Docker

  3. Instalação do Nacos

  4. Instalação do Redis

  5. Instalação do Sentinel

  6. Instalação do Zipkin

  7. Instalação do MinIO

  8. Instalação do MySQL

  9. Instalação do Nginx

  10. Instalação do RabbitMQ

  11. 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

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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"

  1. 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.

  1. 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.

  1. 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

Tags: Docker Linux containers Nacos Redis

Publicado em 7-15 22:51