Terceiro e último post sobre comandos e utilização de Docker.
Comandos
Executar um comando
O comando será executado sem efetivamente entrar no container
$ docker exec <ID_CONTAINER> ps -ef
Execução de comando com interface interativa
$ docker exec -ti 2e98aab60f7c /bin/bash
Inspecionar o container
$ docker inspect <ID_CONTAINER>
Informações do container
Verificar o quanto o container esta utilizando de processador, memória e rede
$ docker stats <ID_CONTAINER>
Link entre container
Criar um container com um nome e ligação de rede com outro container. Dessa forma o novo container irá localizar o outro passado pelo link através do seu nome.
$ docker run -ti --name node1 --link <NAME OR ID>:ALIAS ubuntu:14.10
ou
$ docker run -ti --name node1 --link <NAME OR ID> ubuntu:14.10
Exemplo:
$ docker run -d --name node1 ubuntu:14.10 mysql
$ docker run -ti --name node2 --link node2 ubuntu:14.10 bash
Controle de uso do Hardware
CPU
O parâmetro -c quantidade de processamento que o container irá utilizar.
Em testes realizados foi possível constatar que esse valor não limita o uso do processador mas sim a sua prioridade de utilização. Sendo assim o container utiliza o máximo do processador disponível e o escalona quando necessário.
$ docker run -c 10 -it ubuntu /bin/bash
Memória
Utilizando o parâmetro -m seguido da quantidade <NUMERO><UNIDADE>.
As unidades podem ser b,k,m ou g == byte, kilobyte, megabyte e gigabyte
$ docker run -m 1024m -dit ubuntu /bin/bash
Volumes
Utilizar/Compartilhando o diretório de outro container ou do próprio host.
Nesse processo os arquivos contidos no host irão ser compartilhados com o container. O valor passado é o path do arquivo/diretório do host e o path do container separados por :. Exemplo -v path_host:path_container
$ docker run -v /etc/folder:/etc/folder --name data_only ubuntu
Compartilhando mais de um arquivo/diretório.
$ docker run -v /etc/folder:/etc/folder -v /home/user:/root --name data_only ubuntu
Também é possível compartilhar os arquivos existentes em outros container com --volume-from.
$ docker run -ti --volumes-from data_only ubuntu bash
Copiar Arquivos
$ docker cp arquivos_host ID_CONTAINER:path_container
Remove
Remover todos os containers em stand-by ou finalizados no computador.
$ docker rm $(docker ps -aq)