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/hostnamee/etc/hosts. - --dns=IP_ADDRESS: Adiciona um servidor DNS ao arquivo
/etc/resolv.confdo 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"