Notas de estudo do Docker (5) - a função do arquivo Dockerfile e como construir um espelho

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 .

Insira a descrição da imagem aqui
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.

Acho que você gosta

Origin blog.csdn.net/m0_45388819/article/details/109547207
Recomendado
Clasificación