Install Docker Linux
$ sudo apt‐get update $ sudo apt‐get install build‐essential python‐software‐properties git
$ sudo sh ‐c "wget ‐qO‐ https://get.docker.io/gpg | apt‐ key add ‐" $ sudo sh ‐c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list" $ sudo apt‐get update && apt‐get install lxc‐docker
Comandos relacionados com infos
$ docker version - exibe a versão do docker que está instalada. $ docker inspect [ID_CONTAINER] - retorna diversas informações sobre o container. $ docker ps - exibe todos os containers em execução no momento. $ docker ps -a - exibe todos os containers, independentemente de estarem em execução ou não. $ docker ps -qa - exibe apenas o ID do container $ docker stats [ID_CONTAINER] - informa em tempo real o consumo do container
Comandos relacionados com exec
$ docker run [NOME_DA_IMAGEM] - cria um container com a respectiva imagem passada como parâmetro. $ docker run -i -t [NOME_DA_IMAGEM] - conecta o terminal que estamos utilizando com o do container. $ docker run -d -P --name NAME [CONTAINER] - ao executar, dá um nome ao container e define uma porta aleatória. $ docker run -d -p 12345:80 [CONTAINER] - define uma porta específica para ser atribuída à porta 80 do container, neste caso 12345. $ docker run -v [CAMINHO_VOLUME] [NOME_DA_IMAGEM] - cria um volume no respectivo caminho do container. $ docker run -it --name [NOME_CONTAINER] --network [NOME_DA_REDE] [NOME_IMAGEM] - cria um container especificando seu nome e qual rede deverá ser usada.
Hello, Docker!
$ docker run hello-world $ docker run ubuntu bin/echo Hello, Docker!
Um pouco de iteratividade
$ docker run ubuntu bin/echo Hello, Docker! $ docker run -i -t ubuntu bin/bash & cat /etc/lsb-release $ docker rm $(docker ps -qa) - remove todos containers sem uso
$ docker exec -i -t [NOME_CONTAINER] bin/bash - entrar no terminal do container em execucao
Criando container e definindo uma porta
$ docker run -d -P --name meu_site dockersamples/static-site - define uma porta aleatoria $ docker run -p 8080:3000 --name meu_site dockersamples/static-site $ docker exec -it [NOME_CONTAINER] /bin/bash & hostname -i - entra no terminal do container e mostra o ip que o container esta rodando $ docker stop -t 0
Criando volumes
$ docker run -v "/var/www" ubuntu $ docker run -it -v "[CAMINHO_HOST]:[CAMINHO_CONTAINER] ubuntu bin/bash
Rodando codigo dentro de um volume
$ docker run -p 8000:3000 -d "[CAMINHO_HOST]:[CAMINHO_CONTAINER]" -w [WORK_DIR] node npm start $ docker run -d -p 3000:3000 -v "/home/diogo/dev/git/escola-de-ferias-docker/site-starter:/var/www" -w "/var/www" node npm run dev
Criando sua primeira imagem com Docker File
Estrutura de um Docker File:
FROM [IMAGEM_BASE] MAINTAINER [NOME_DE_QUEM_MANTEM] ENV [ENVIROMENT_VARIABLES] WORKDIR [PATH_DO_WORKDIR] COPY [DIRETORIO_HOST] [DIRETORIO_CONTAINER] RUN [COMANDO] ENTRYPOINT [COMANDOS] EXPOSE [PORTA]
Comunicacao Entre Containers
Install ping: # apt-get update && apt-get install iputils-ping
$ docker network create --driver bridge outra-rede $ docker run -it --name meu-ubuntu-1 --newtork outra-rede ubuntu
Docker Compose
$ docker-compose build $ docker-compose up