Para seguir com esses exercicios, primeiramente baixe o Docker Desktop para sua plataforma (Windows, Linux ou Mac) atraves do link abaixo: Docker Desktop.
Vamos tambem falar rapidamente sobre o registry padrao do Docker, o Docker Hub.
Depois, clone este repo e bora iniciar:
git clone https://github.com/jonaopower/intro.docker.git
cd intro.docker
Baixar imagem NGINX do registry Docker Hub
docker pull nginx:latest
Baixar imagem APACHE 2.4.33 alpine do registry Docker Hub
docker pull httpd:2.4.33-alpine
Listar as imagens disponiveis localmente
docker image ls
Verificar as camadas da imagem recem criada:
docker history nome_da_imagem:tag
docker history id_imagem
Criar e executar um container a partir da imagem baixada (nginx)
docker run -d -p 8080:80 nginx:latest
Listar os containers em execucao
docker container ls
Parar um container
docker container stop <container_id>
Criar o arquivo "Dockerfile" (sem extensao e com D maiusculo) e adicionar o seguinte conteudo:
FROM nginx:latest
WORKDIR /usr/share/nginx/html
COPY app/ .
Fazer build da imagem:
docker build -t nome_da_imagem:tag .
Criar e rodar um container a partir da imagem recem criada
docker run -d -p 8080:80 nome_da_imagem:tag
Confirmar que container foi criado, está rodando, e que foi publicado atraves da porta 8080:
docker container ls
docker ps
Acessar a aplicacao recem publicada atraves do link abaixo: http://localhost:8080
Parar o container:
docker container stop <container_id>
Modificar o arquivo Dockerfile conforme exemplo abaixo:
FROM nginx:latest
Fazer build da imagem:
docker build -t nome_da_imagem:tag .
Verificar as camadas da imagem recem criada:
docker history nome_da_imagem:tag
Criar e rodar um container a partir da imagem recem criada
docker run -v <caminho_completo_diretorio_app>:/usr/share/nginx/html -d -p 8090:80 nome_da_imagem:tag
Confirmar que container foi criado, está rodando, e que foi publicado atraves da porta 8080:
docker container ls
docker ps
Acessar a aplicacao recem publicada atraves do link abaixo: http://localhost:8090
Parar o container:
docker container stop <container_id>
Para este exemplo, é necessário ter uma conta no Docker Hub.
- Autenticar o Docker Desktop no registry padrao (Docker Hub):
docker login
- Verificar o ID da imagem a que será enviada para o Docker HUB
docker image ls
- Adicionar uma tag (ou versao) na imagem
docker tag id_imagem hubusername/nome_imagem:tag
- Enviar imagem para docker HUB
docker push hubusername/nome_imagem:tag