Todos os repositórios do #DevOpsRN encontram-se no github https://github.com/jerimumhs/cpnatal2
Repositório para a parte prática do workshop. Nessa parte, utilizaremos diversos comandos docker para rodar alguns containers.
Para essa parte prática, é necessário ter o docker e o docker-compose instalados
Com o comando pull
baixamos a imagem mais recente do nginx
$ docker pull nginx
Utilizamos o comando create
para criar um container da imagem nginx.
$ docker create -p 80:80 --name nginx_container nginx
Nesse caso específico, estamos utilizando
-p 80:80
para conectar a porta 80 do container com a porta 80 da nossa máquina
Estamos nomeando o container utilizando o
--name nginx_container
Podemos ver todos os containers com o seguinte comando
$ docker ps -a
Para iniciar o container, utilizamos o comando docker start
$ docker start nginx_container
Com o comando ps
vemos a lista de containers que estão rodando
$ docker ps
Podemos inspecionar o log do nosso container utilizando attach
Basta dar CTRL + C para desconectar nosso terminal do container
$ docker attach nginx_container
Para parar o container utilizamos o stop
$ docker stop nginx_container
Para excluir o nosso container utilizamos o rm
$ docker rm nginx_container
Para excluir a imagem do nginx utilizamos o rmi
$ docker rmi nginx
Entre na pasta server
para rodar a aplicação encontrada lá.
ao contrário do nginx (no qual baixamos a imagem pura e rodamos ela), iremos construir a imagem do nosso server, por isso temos um
Dockerfile
na pasta
Para construir a imagem do server utilizamos o build
$ docker build . -t cpnatal2_intro-docker_server
No comando estamos construindo a imagem na pasta atual (logo o
.
)
Estamos 'tageando' nossa imagem com o argumento
-t cpnatal2_intro-docker_server
Criamos o container com o comando create
$ docker create --name server -p 8000:8000 cpnatal2_intro-docker_server
Rodamos nosso container com o comando start
$ docker start server
Entre na pasta requester
para rodar a aplicação encontrada lá.
da mesma forma do server, construiremos a imagem do requester. Por isso temos um
Dockerfile
na pasta
Para construir a imagem do server utilizamos o build
$ docker build . -t cpnatal2_intro-docker_requester
No comando estamos construindo a imagem na pasta atual (logo o
.
)
Estamos 'tageando' nossa imagem com o argumento
-t cpnatal2_intro-docker_server
Criamos o container com o comando create
$ docker create --name requester -e "HOST_URL=server" --link server cpnatal2_intro-docker_requester
Estamos utilizando o arqumento
-e "HOST_URL=server"
para passar para nosso container a variável de ambienteHOST_URL
com o valorserver
Como cada container é isolado, precisamos utilizar o argumento
-link server
para que nosso container requester possa acessar nosso server
Rodamos nosso container com o comando start
$ docker start requester
O docker-compose é uma ferramenta para orquestrar um conjunto de containers. A configuração dele encontra-se no arquivo
docker-compose.yml
Para construir as imagens dos serviços do docker-compose utilizamos o build
$ docker-compose build
Para rodar todos os serviços do docker-compose utilizamos o up
$ docker-compose up