Até agora usamos imagens prontas.
Agora criaremos nossa própria imagem.
Estrutura
mkdir -p ~/docker-labs/minha-imagem
cd ~/docker-labs/minha-imagem
Crie index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Docker Lab</title>
</head>
<body>
<h1>Minha primeira imagem Docker</h1>
<p>Imagem criada utilizando Dockerfile.</p>
</body>
</html>
Crie Dockerfile:
FROM nginx:alpine
COPY index.html /usr/share/nginx/html/index.html
EXPOSE 80
Build
docker build -t meu-site:1.0 .
Liste:
docker images
Execute:
docker run -d \
--name meu-site \
-p 8080:80 \
meu-site:1.0
Teste:
curl localhost:8080
Entendendo
FROM
FROM nginx:alpine
Define a imagem base.
COPY
COPY index.html /usr/share/nginx/html/index.html
Copia arquivos para a imagem.
EXPOSE
EXPOSE 80
Documenta a porta utilizada pela aplicação.
EXPOSE não publica a porta automaticamente.
Ainda precisamos de:
-p 8080:80
