DOCKER
Configurações iniciais do Docker
Docker Help
docker --help
# New sintaxe
docker container --help
Executar Imagem
docker run -d -p 80:80 --name [containerName] docker/getting-started
-
-d
executar o contêiner no modo desanexado (em segundo plano) -
-p 80:80
mapear a porta 80 do host para a porta 80 no contêiner -
--name
renomear contêiner a ser usada -
-docker/getting-started
a imagem a ser usada
bash
interativo
Executar um comando em um novo contêiner com docker run -it [containerId||containerName]
bash
interativo
Executar um comando dentro do contêiner em execução com docker exec -it [containerId||containerName] /bin/bash
docker exec -it [containerId||containerName] bash
Executa comandos dentro do contêiner diretamente
docker exec [containerId||containerName] [command]
Baixar imagem do Hub Docker
docker pull [imageName]
Baixar imagem especifica do Hub Docker (TAG)
docker pull debian:10
docker pull debian:buster
Listar Imagens
docker images
Excluir Imagens
docker rmi [containerId||containerName]
Listar contêiner em execução
docker ps
# OR
docker container ls
-a
lista todos contêiner executados anteriormente
Parar contêiner em execução
docker stop [containerId||containerName]
Iniciar contêiner
docker start [containerId||containerName]
Excluir contêiner
docker rm [containerId||containerName]
Excluir todos os contêineres parados
docker container prune
Informações, logs e processos dos contêiner
Informação do servidor Docker
docker info
Logs do contêiner
docker logs [containerId||containerName]
Verificar processos em execução no contêiner
docker top [containerId||containerName]
Analisando a rede dos contêineres
Listar redes dos contêineres
docker network ls
Exibir informações detalhadas sobre uma ou mais redes
docker network inspect [networkName]
Criando rede
docker network create [networkName]
Deletando rede
docker network rm [networkName]
Especificando rede para o contêiner
docker run -dti --name [containerName] --network [networkName] [image]
Copiando arquivos da maquina local para contêiner
docker cp [diretório/origem/meuArquivoLocal.txt] [containerId||containerName]:[/diretório/destino]
Copiando arquivos do contêiner para maquina local
docker cp [containerId||containerName]:[/diretório/origem] [diretório/destino/meuArquivoLocal.txt]
Retornar informações de baixo nível sobre objetos do Docker
docker inspect [containerId||containerName]
Criando um contêiner de Mysql
docker run -d -e MYSQL_ROOT_PASSWORD=Senha123 -p 3306:3306 --name mysql-A mysql
-
-d
executar o contêiner no modo desanexado (em segundo plano) -
-p 3306:3306
mapear a porta 80 do host para a porta 80 no contêiner -
-e
definir variáveis de ambiente
Acessar servidor Mysql
mysql -u root -p --protocol=tcp --port=3606
Criar tabela no Mysql
CREATE DATABASE teste;
Listar tabelas no Mysql
SHOW DATABASES;
Volume
Montando (Mount) um local de armazenamento na maquina local
OBS: Consultar dentro do contêiner o local onde está sendo salvo o banco de dados com o comando docker inspect [containerId||containerName]
no índice Mounts
: Destination
docker run -d -e MYSQL_ROOT_PASSWORD=Senha123 -p 3306:3306 --name [containerName] mysql --volume=[diretorioLocal]:[diretorioConteiner||/var/lib/mysql]
[diretorioLocal]
exemplo com um contêiner Apache2
No Windows utilizar aspas duplas ao passar docker run -d --name apache-C httpd -p 80:80 --volume="C:\data\apache":/usr/local/apache2/htdocs
Excluir volume
docker volume rm [volumeId||volumeName]
Excluir todos os volume que não estão em uso
docker volume prune
Criando um contêiner com PHP-Apache
docker pull php:7.4-apache
Download da Imagem
docker pull php:7.4-apache
Executar contêiner
docker run -d -p 80:80 --name my-apache-php-app -v "$PWD":/var/www/html php:7.2-apache
docker run -d --name php-AB php:7.4-apache -p 8080:80 --volume="C:\laragon\www\cli-docker\data\php-A":/var/www/html
Limitando memória e CPU e atualizando contêiner
docker stats [containerId||containerName]
docker update [containerId||containerName] -m 128M --cpus 0.2
Teste de Stress no contêiner
Instale Stress no sistema operacinal (Exemplo: Ubuntu)
apt -y install stress
stress --cpu 1 --vm-bytes 50m --vm 1 --vm-bytes-50m
Criando imagem e Build de contêiner a partir de um Dockerfile
docker image build ${DIR_DOCKERFILE} -t [imageName]
Exemplo de imagem com Apache
docker image build images/debian-apache -t debian-apache:1.0
Exemplo de contêiner com Apache
$ docker run -dti --name meu-apache -p 81:80 debian-apache:1.0
LARADOCK
Subir contêiner
docker-compose up -d [nameImage1] [nameImage2] [nameImage3]
docker-compose up -d nginx mysql phpmyadmin redis
Acessar contêiner
docker exec -it [containerId||containerName] /bin/sh
# OR
docker exec -it [containerId||containerName] /bin/bash
Executar comandos com Bash interativo
docker-compose exec --user=laradock [containerId||containerName] bash
Listar contêiner em execução
docker-composer ps
Referências
-
Pesquisa
-
Docker com VS Code neste tutorial, você aprenderá a criar e implantar aplicativos do docker em Windows ou Mac usando Visual Studio Code.
-
Laravel + Docker = Laradock Crie um ambiente com Laravel e Docker de maneira rápida, simples e fácil.
-
Wakatime
Tempo gasto no IDE para este repositório, rastreado automaticamente com wakatime .
Autor
Made with
💙 by JUNIOR LIMA👋 See my LinkedIn • GitHub @JuniorLima22