O que é Dockerfile?
Dockerfile é um arquivo de texto usado para construir uma imagem. O conteúdo do texto contém instruções e instruções para construir uma imagem.
Use Dockerfile para personalizar a imagem
1. Para personalizar uma imagem nginx abaixo (a imagem construída terá um arquivo /usr/share/nginx/html/index.html)
em um diretório vazio, crie um novo arquivo chamado Dockerfile e adicione o seguinte ao conteúdo do arquivo:
FROM nginx
RUN echo '这是一个本地构建的nginx镜像' > /usr/share/nginx/html/index.html
2. A função das instruções FROM e RUN
FROM:定制的镜像都是基于 FROM 的镜像,这里的 nginx 就是定制需要的基础镜像。后续的操作都是基于 nginx。
RUN:用于执行后面跟着的命令行命令。有以下俩种格式:
shell 格式:
RUN <命令行命令>
# <命令行命令> 等同于,在终端操作的 shell 命令。
exec 格式:
RUN ["可执行文件", "参数1", "参数2"]
# 例如:
# RUN ["./test.php", "dev", "offline"] 等价于 RUN ./test.php dev offline
Nota : Cada vez que as instruções do Dockerfile são executadas, uma nova camada será criada no docker. Portanto, muitas camadas sem sentido farão com que a imagem se expanda muito. Por exemplo:
FROM centos
RUN yum install wget
RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
RUN tar -xvf redis.tar.gz
以上执行会创建 3 层镜像。可简化为以下格式:
FROM centos
RUN yum install wget \
&& wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" \
&& tar -xvf redis.tar.gz
如上,以 && 符号连接命令,这样执行后,只会创建 1 层镜像
Comece a construir a imagem
No diretório de armazenamento do arquivo Dockerfile, execute a ação de construção.
O exemplo a seguir cria um nginx: v3 (nome da imagem: rótulo da imagem) do Dockerfile no diretório.
Nota: A última . Representa o caminho do contexto desta execução, que será apresentado na próxima seção.
docker build -t nginx:v3 .
O contexto do caminho
um sobre, a última diretiva mencionada . É o caminho do contexto, então qual é o contexto do caminho?
docker build -t nginx:v3 .
O caminho do contexto se refere a quando o docker está construindo uma imagem e, às vezes, deseja usar os arquivos locais (como cópia). Depois que o comando docker build conhece esse caminho, ele empacota todo o conteúdo sob o caminho.
Análise: Porque o modo de operação do docker é C / S. Nossa máquina nativa é C, e o motor docker é S. O processo de construção real é concluído no mecanismo do docker, portanto, nossos arquivos locais não podem ser usados neste momento. Isso requer que os arquivos no diretório especificado de nossa máquina local sejam empacotados juntos para uso pelo mecanismo docker.
Se o último parâmetro não for especificado, o caminho do contexto padrão é o local do Dockerfile.
Nota: Não coloque arquivos inúteis no caminho do contexto, porque eles serão empacotados e enviados para o mecanismo do docker.Se houver muitos arquivos, o processo será lento.