3. A diferença entre imagens e containers
Imagem é a definição
estática de um container a
ser instanciado.
Container é uma instância
dinâmica de uma imagem.
6. Para instalar o docker no ubuntu:
$ sudo apt-get install docker.io
Para não precisar usar o docker com sudo, adicione seu usuário ao grupo docker
do sistema operacional (é necessário deslogar e logar novamente):
$ sudo usermod -aG docker USUARIO
Para executar um container ubuntu 18.04 e entrar no bash:
$ docker run -it ubuntu:18.04 /bin/bash
Vamos criar um arquivo no diretorio “/”
$ touch /arquivo.txt
7. Para visualizar os containers que estão em execução:
$ docker ps
Para visualizar todos os containers:
$ docker ps -a
Para iniciar/parar/reiniciar um container:
$ docker start/stop/restart [NOME ou HASH do container]
Para remover um container:
$ docker rm [NOME ou HASH do container]
8. Para baixar uma imagem do hub sem criar um container:
$ docker pull ubuntu:18.04
Para listar as imagens que estão na máquina:
$ docker images
Para remover uma imagem:
$ docker rmi [NOME OU HASH da imagem]
9. Rodar um container com servidor web (-d para background) (-p para mapear porta
da máquina para porta do container):
$ docker run -d --name meuservidor -p 80:80 tutum/hello-world
Como acessar o bash de um container já em execução:
$ docker exec -it meuservidor /bin/sh (ou /bin/bash)
10. Rodar um container para um blog em Ghost usando docker:
$ docker run -d --name myghostblog -p 80:2368 ghost
11. Rodar um mysql 5.6
$ docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 mysql:5.6
Rodar um servidor com joomla que enxerga o container mysql
$ docker run -d --name meujoomla -p 80:80 --link mysql:mysql joomla
12. Rodar um tomcat 7
$ docker run -d --name tomcat -p 8080:8080 tomcat:7
Inserir um .war dentro do container do tomcat
$ docker cp ARQUIVO tomcat:/usr/local/tomcat/webapps/
13. Dockerfile
É como que uma receita de bolo para criar uma imagem:
FROM tomcat:7
COPY ARQUIVO /usr/local/tomcat/webapps/
Para criar uma imagem a partir do Dockerfile (precisa estar no mesmo diretório):
$ docker build -t NOME_QUE_QUER_DAR_PARA_IMAGEM:TAG .
14. Quando é interessante usar docker?
Os containers trabalham com a ideia do descartável, portanto o ideal é que
abrigue aplicações que possam ser descartadas e recriadas (tomcat, apache,
proxy, vpn etc).
A ideia também é que cada container abrigue somente um serviço/processo.
Para dados persistentes da aplicação, use volumes!!
15. Para criar um volume:
$ docker volume create NOME_VOLUME
Para listar os volumes da máquina:
$ docker volume ls
Para executar um container usando um volume:
$ docker run -v NOME_VOLUME:/diretorio/no/container IMAGEM
obs: se o volume não existir, será criado.
Para excluir um volume
$ docker volume rm NOME_VOLUME
16. Para fazer persistência usando mount de diretório (forma mais direta, menos
indicada):
$ docker run -v /diretorio/na/maquina:/diretorio/no/container IMAGEM