Simples referência para acompanhar os vídeos da Playlist (Click Aqui para Assistir) do Youtube.
A primeira coisa para trabalhar com os container é saber como executá-los:
root@bdeveloperdeck101:~$ docker run ...
Existem vários parâmetros para passar, vou mostrar os principais. Quando queremos remover o container logo após sair dele:
root@bdeveloperdeck101:~$ docker run --rm
Quando queremos iteragir com o container:
root@bdeveloperdeck101:~$ docker run -it
Quando queremos nomear o container:
root@bdeveloperdeck101:~$ docker run --name developerdeck101-container
Quando queremos expor uma porta externamente(3000) e mapear para o porta local do container (80):
root@bdeveloperdeck101:~$ docker run -p 3000:80
Quando queremos escolher qual imagem utilizar:
root@bdeveloperdeck101:~$ docker run --name developerdeck101-container ubuntu:14.04
Quando queremos dizer qual é o comando que queremos executar:
root@bdeveloperdeck101:~$ docker run --name developerdeck101-container ubuntu:14.04 bash
Juntanto tudo:
root@bdeveloperdeck101:~$ docker run --rm -it -p 3000:80 --name developerdeck101-container ubuntu:14.04 bash
Quero saber as imagens locais que tenho disponível:
root@bdeveloperdeck101:~$ docker images
Quero remover uma imagem local:
root@bdeveloperdeck101:~$ docker rmi ubuntu:14.04
Quero saber quais containers estão executando:
root@bdeveloperdeck101:~$ docker ps
Criar um novo bash em um container executando:
root@bdeveloperdeck101:~$ docker exec -it CONTAINER_NAME bash
Funciona mas não é o melhor pois passa pelo host as mensagens:
root@bdeveloperdeck101:~$ docker run --rm -ti -p 1234:1234 ubuntu:14.04 bash
Functiona mas infelizmente faz um link não dinâmico:
Server
root@bdeveloperdeck101:~$ docker run --rm -ti --name server ubuntu:14.04 bash
Client
root@bdeveloperdeck101:~$ docker run --rm -ti --link server --name client ubuntu:14.04 bash
Criar uma rede:
root@bdeveloperdeck101:~$ docker network create developerdeck101net
Criar um container:
Server
root@bdeveloperdeck101:~$ docker run --rm -ti --net=developerdeck101net --name server ubuntu:14.04 bash
Client
root@bdeveloperdeck101:~$ docker run --rm -ti --link server --net:developerdeck101net --name client ubuntu:14.04 bash
Backend Dockerfile
FROM node:10.9.0-alpine
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
RUN npm install -g nodemon --quiet
EXPOSE 3000
CMD ["npm", "start"]
Frontend Dockerfile
FROM node:10.9.0-alpine
RUN mkdir -p /usr/src/app
EXPOSE 3000
CMD ["npm", "start"]
Docker compose file: docker-compose.yml
version: '2'
services:
mongodb:
image: "mongo"
ports:
- "27017:27017"
backend:
build: ./devdeck101-backend/
ports:
- "4000:4000"
volumes:
- ./devdeck101-backend:/usr/src/app
depends_on:
- mongodb
frontend:
build: ./devdeck101-frontend/
ports:
- "3000:3000"
volumes:
- ./devdeck101-frontend:/usr/src/app
depends_on:
- backend
Construir seu Ambiente
root@bdeveloperdeck101:~$ docker compose build
Iniciar seu Ambiente
root@bdeveloperdeck101:~$ docker compose up
Desligar/Baixar/Parar seu Ambiente
root@bdeveloperdeck101:~$ docker compose down