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 ubuntuPodemos checar todas as imagens disponíveis que foram baixadas.
# docker imagesCom a imagem baixada, podemos executar ela.
# docker run ubuntuPodemos checar quais containers que estão em execução. Se quisermos saber quais foram executados recentemente, podemos colocar a flag -a.
# docker psExecutando 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 ubuntuSe quisermos deixar um container em execução mesmo saindo dele, ou seja, deixando em background, podemos utilizar da seguinte forma.
# docker run -dti ubuntuSe 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:9Criando 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 mysqlAgora 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=tcpMontando 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 mysqlDessa 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-apacheLimitando 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 128MOu podemos especificar logo que o container for criado;
# docker run --name <apelido-imagem> -dti -m 128M --cpus 0.2 ubuntuInformações, logs e processos
Para vermos as informações sobre o servidor.
# docker infoPara 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 --helpSe 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 bridgeSe 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-redeLast updated
Was this helpful?