Criação e edição de containers
Realizando o download de imagens
Para realizarmos o download de uma imagem, basta acessar o link anteriormente contendo as imagens e executar o comando que está visível ao acessar essa imagem.
# docker pull ubuntu
Podemos checar todas as imagens disponíveis que foram baixadas.
# docker images
Com a imagem baixada, podemos executar ela.
# docker run ubuntu
Podemos checar quais containers que estão em execução. Se quisermos saber quais foram executados recentemente, podemos colocar a flag -a.
# docker ps
Executando um container
Usamos o comando a seguir para conseguirmos um bash para podermos interagir com o sistema operacional dentro do container. A flag -t significa que vai ser alocado um pseudo terminal e o -i que é o modo para interagirmos.
# docker run -it ubuntu
Se quisermos deixar um container em execução mesmo saindo dele, ou seja, deixando em background, podemos utilizar da seguinte forma.
# docker run -dti ubuntu
Se quisermos parar um container basta utilizar o seguinte comando, com o id do container ou o seu name.
# docker stop <container-id>
Executando aplicações no container
Se quisermos executar alguma aplicação, podemos utilizar o comando a seguir.
# docker exec -it <container-id> /bin/bash
# docker exec -it <container-id> cat /etc/*release*
Excluindo e nomeando containers
Podemos excluir um container com o comando a seguir.
# docker rm <container-id>
Podemos excluir uma imagem com o comando a seguir.
# docker rmi <nome-imagem>
Podemos nomear um container com o comando a seguir.
# docker run -dti --name <nome> <nome-imagem>
Copiando arquivos para o container
Para copiar algum arquivo para dentro do container, podemos utilizar
# docker cp <arquivo> <nome-imagem>:<destino>
Para copiar do container para nossa máquina, podemos utilizar
# docker cp <nome-imagem>:<caminho-arquivo> <novo-nome-arquivo>
Tag
Quando formos utilizar o docker pull para baixar uma imagem, sempre é baixado a imagem mais atualizada, porém podemos utilizar as tags para baixar uma imagem em alguma determinada versão. Para isso, precisamos utilizar os dois pontos ":" e logo após inserir a tag.
# docker pull debian:9
Criando um container no MySQL
Para começar, precisamos saber que para executar um container no mysql, é necessário especificar uma variável de ambiente (environment variable) que é o MYSQL_ROOT_PASSWORD.
# docker run -e MYSQL_ROOT_PASSWORD=<senha> --name mysql -d -p 3306:3306 mysql
Agora precisamos executar um bash dentro do container e após nos conectarmos, basta acessar o mysql. É necessário especificar qual o protocolo que está sendo utilizado.
# docker exec -it mysql bash
# mysql -u root -p --protocol=tcp
Montando um local de armazenamento
Com o comando abaixo, podemos ver um item chamado Destination que é o diretório padrão dentro do container onde o banco de dados é salvo. Para configurarmos que o banco de dados seja salvo fora do container, precisamos redirecionar o que é salvo nesse diretório para outra pasta.
# docker inspect <nome-imagem>
...
"Mounts": [
{
"Type": "volume",
"Name": "6657573b8280db1e4501add35fe7df05d202c9648c5a0e28226f5f6e9e7a4c40",
"Source": "/var/lib/docker/volumes/6657573b8280db1e4501add35fe7df05d202c9648c5a0e28226f5f6e9e7a4c40/_data",
"Destination": "/var/lib/mysql",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
# docker run -e MYSQL_ROOT_PASSWORD=<senha> --name mysql -d -p 3306:3306 --volume=<diretório-para-salvar>:/var/lib/mysql mysql
Dessa forma, por mais que esse container seja perdido, basta indicar o mesmo caminho que os dados serão recuperados.
Exemplo: Container apache
Lendo a documentação na parte da instalação da imagem, há uma parte que tem a informação de onde que lugar que está a pasta do projeto dentro do container. Precisamos referenciar o nosso diretório local onde está salvo o projeto para o diretório dentro do container.
# docker pull httpd
# docker run --name apache-teste -d -p 80:80 --volume=<diretório-local>:/usr/local/apache2/htdocs httpd
Exemplo: Container PHP-Apache
# docker pull php:7.4-apache
# docker run --name php-teste -d -p 8080:80 --volume=<diretório-local>:/var/www/html php:7.4-apache
Limitando memória e CPU
Para vermos a quantidade de CPU e memória que está sendo consumido em um container, basta executarmos o seguinte comando.
docker stats <apelido-imagem>
Para colocarmos um limite de memória e caso o container já foi criado, podemos atualizá-lo da seguinte forma. No exemplo a baixo, o limite é de 128 megabytes.
# docker update <apelido-imagem> -m 128M
Ou podemos especificar logo que o container for criado;
# docker run --name <apelido-imagem> -dti -m 128M --cpus 0.2 ubuntu
Informações, logs e processos
Para vermos as informações sobre o servidor.
# docker info
Para vermos os logs de um container
# docker container logs <container-id ou apelido-imagem>
Para vermos os processos em execução em um container
# docker container top <container-id ou apelido-imagem>
Redes
Para vermos as opções de redes podemos utilizar o comando a seguir
# docker network --help
Se não especificarmos uma rede ao criar um container, ele será adicionado a rede bridge. Podemos ver todos os containers que estão adicionados a essa rede.
# docker network inspect bridge
Se quisermos isolar dois containers, podemos criar uma rede específica, para que apenas os dois tenham acessos a si mesmo.
# docker network create minha-rede
// Criando os containeres dentro dessa rede
# docker run -dti --name debian-teste --network minha-rede debian
#docker run -dti --name ubuntu-teste --network minha-rede ubuntu
// Verificando
# docker network inspect minha-rede
Last updated
Was this helpful?