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 nginxUtilizamos o comando create para criar um container da imagem nginx.
$ docker create -p 80:80 --name nginx_container nginxNesse caso específico, estamos utilizando
-p 80:80para 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 -aPara iniciar o container, utilizamos o comando docker start
$ docker start nginx_containerCom o comando ps vemos a lista de containers que estão rodando
$ docker psPodemos inspecionar o log do nosso container utilizando attach
Basta dar CTRL + C para desconectar nosso terminal do container
$ docker attach nginx_containerPara parar o container utilizamos o stop
$ docker stop nginx_containerPara excluir o nosso container utilizamos o rm
$ docker rm nginx_containerPara excluir a imagem do nginx utilizamos o rmi
$ docker rmi nginxEntre 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
Dockerfilena pasta
Para construir a imagem do server utilizamos o build
$ docker build . -t cpnatal2_intro-docker_serverNo 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_serverRodamos nosso container com o comando start
$ docker start serverEntre na pasta requester para rodar a aplicação encontrada lá.
da mesma forma do server, construiremos a imagem do requester. Por isso temos um
Dockerfilena pasta
Para construir a imagem do server utilizamos o build
$ docker build . -t cpnatal2_intro-docker_requesterNo 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_requesterEstamos utilizando o arqumento
-e "HOST_URL=server"para passar para nosso container a variável de ambienteHOST_URLcom o valorserver
Como cada container é isolado, precisamos utilizar o argumento
-link serverpara que nosso container requester possa acessar nosso server
Rodamos nosso container com o comando start
$ docker start requesterO 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 buildPara rodar todos os serviços do docker-compose utilizamos o up
$ docker-compose up