Comandos básicos do Docker


docker run -d -it --rm -h host_ubuntu -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/nginx-conf/conf.d:/etc/nginx/conf.d -v ~/nginx/nginx-log:/var/log/nginx -p 15672:15672 -p 5672:5672 --network test-net --dns=114.114.114.114 --dns-search=test.com --link outro-container ubuntu comando-exemplo

Iniciar um contêiner

  • -t: Atribui um terminal virtual ao novo contêiner.
  • -i: Permite interação com o stdin do contêiner.
  • --rm: Remove automaticamente o sistema de arquivos do contêiner após sua saída.
  • -h HOSTNAME ou --hostname=HOSTNAME: Define o nome do host do contêiner, gravado em /etc/hostname e /etc/hosts.
  • --dns=IP_ADDRESS: Adiciona um servidor DNS ao arquivo /etc/resolv.conf do contêiner.
  • --dns-search=DOMAIN: Configura o domínio de busca para resolução de nomes.
  • -d: Executa o contêiner em segundo plano.
  • -p: Mapeia portas entre o host e o contêiner.
  • --network: Conecta o contêiner à rede especificada.
  • -v: Monta diretórios do host dentro do contêiner.
  • --link: Estabelece conexão com outro contêiner.

docker ps


docker ps –no-trunc - Exibe comandos completos sem truncamento
docker top - Mostra os processos em execução dentro do contêiner

docker images


Listagem das imagens locais disponíveis no host.

docker exec <id ou nome>


Acessa um contêiner em execução.
Alternativa recomendada: docker attach (não recomendado para saída, pois encerra o contêiner).

docker inspect <id ou nome>


Exibe detalhes técnicos sobre um contêiner específico.

docker logs -f <id ou nome>


Visualiza logs do contêiner em tempo real.
-f: Similar ao tail -f, atualiza continuamente.

docker rm -f <id ou nome>


Remove um contêiner em execução forçadamente.

docker rmi


Remove uma imagem do sistema local.

docker commit


docker commit -m="atualização feita" -a="exemplo" 123456789abc nome-imagem:v2

  • -m: Mensagem de commmit.
  • -a: Autor da imagem.
  • ID do contêiner: Identificador único do contêiner.
  • nome-imagem:v2: Novo nome e versão da imagem gerada.

docker tag


docker tag 860c279d2fec nome-usuario/centos:dev
Adiciona uma nova etiqueta a uma imagem existente.

docker network create


docker network create -d bridge test-net

  • -d: Tipo de rede (bridge, overlay).
  • docker network ls - Lista todas as redes criadas.
  • docker network connect <rede> <contêiner> - Adiciona um contêiner a uma rede.

docker push


docker push usuario/nome-imagem:versao
Envia uma imagem ao registro remoto (ex: Docker Hub).

RabbitMQ com Docker


# Baixar imagem
docker pull rabbitmq
# Iniciar contêiner
docker run --name rabbitmq -p 15672:15672 -p 5672:5672 -d rabbitmq:latest
# Entrar no contêiner
docker exec -it rabbitmq bash
# Instalar plugin de administração
rabbitmq-plugins enable rabbitmq_management

Ambiente PHP com Docker


Tutorial completo
Repositório com implementação LNMP usando Electron + Vue

Configuração do Nginx


server {
    listen       80;
    listen  [::]:80;
    server_name  *****;
    rewrite ^/(.*) https://*****/$1 permanent;
   
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

server {
    listen 443;
    server_name *****;
    root /data/ds/ds/public;  
    access_log /var/log/nginx/ds_access.log;
    error_log /var/log/nginx/ds_error.log;
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.html index.htm index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_pass  php-ds:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /app/wwwroot/ds/public$fastcgi_script_name;
        include        fastcgi_params;
        fastcgi_param   HTTPS on; 
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

Executar scripts Laravel via Docker


docker exec -i php-ds sh -c "php /app/wwwroot/ds/artisan remind_visit_overture"
* * * * * docker exec -i php-ds sh -c "php /app/wwwroot/ds/artisan schedule:run >> /dev/null 2>&1"

Referência adciional

Tags: Docker Container nginx RabbitMQ PHP

Publicado em 9-19 13:35