当前位置: 首页>前端>正文

docker npm 容器 dockerfile npm install

我们在使用Dockerfile构建镜像的时候需要搞清楚DockerFile中常用的指令有哪些

From:
 - 说明:指定该镜像的基础镜像
 - 格式:FROM <image>或FROM <image>:<tag>
 - 示例:FROM python:3.8
 - 注意:FROM一般出现在文件头,因为每个镜像都需要有一个FROM来指定基础镜像。


MAINTAINER:
 - 说明:用以指定作者信息
 - 格式:MAINTAINER <name>
 - 示例:MAINTAINER jibu "455636959@qq.com"


WORKDIR:
 - 说明:设置工作目录
 - 格式:WORKDIR /path
 - 示例:WORKDIR /app
 - 注意:可以使用绝对路径,也可以使用相对路径,设置后会自动切换到该目录下以后所有操作都将在这个目录下完成,一般会设置/app目录


RUN:
 - 说明:在构建镜像时执行脚本
 - 实例:RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

ENTRYPOINT:
 - 说明:在运行容器时执行脚本
 - 格式如:ENTRYPOINT ["exec", "comm1", "comm2"]、ENTRYPOINT command comm1 comm2
 - 示例:ENTRYPOINT ["test.sh", "run"]
 - 注意:一个Dockerfile中只有一条ENTRYPOINT,如果有多条只执行最后一条;不会被容器运行时的命令所覆盖

CMD:
 - 说明:在运行容器时执行脚本
 - 示例:CMD ["cd"]
 - 注意:一个Dockerfile中只有一条CMD,如果有多条只执行最后一条;在运行容器时如果用户指定了运行命令则Dockerfile中的CMD将被覆盖。

EXPOSE:

 - 说明:让Docker暴露容器的端口号,供其他容器使用,在宿主机以外的网络中是无法使用的
 - 格式如:EXPOSE <port> ...
 - 示例:EXPOSE 8000

ENV:

 - 说明:指定环境变量,在Dockerfile文件中的后续代码中使用,在容器运行时也可以使用
 - 格式如:ENV <key> <value>
 - 示例:ENV PYTHONUNBUFFERED 1

ADD:

 - 说明:复制文件(夹)到容器
 - 格式如:COPY <src> <goal>
 - 示例:COPY test.jar /test.jar   宿主机 /容器
 - 注意:复制指定的<src>到容器中的<dest>,<src>可以是Dockerfile所在目录的一个相对路径,也可以是一个URL,也可以是一个tar文件(tar文件将自动解压成文件目录)

COPY:
 - 说明:复制文件(夹)到容器
 - 格式如:COPY <src> <goal>
 - 示例:COPY requirements.txt requirements.txt
 - 注意:与ADD功能相似,只是不能指定URL,使用本地文件(夹)为源文件时,推荐使用COPY

VOLUME:

 - 说明:创建挂载点
 - 格式如:VOLUME [path]
 - 示例:volumes: "/home/lx/user_upload:/home/lx/user_upload"
 - 作用:就是将宿主机和容器的路径做一个映射,这样同意的目录下存的文件或文件夹相同

总结:

RUN、CMD、ENTRYPOINT三个指令的区别
 1. 三个指令都是执行脚本
 2. RUN是在创建镜像是执行,即使用docker build命令时执行,在一个Dockerfile里面可以有多个RUN
 3. CMD和ENTRYPOINT是在运行容器时执行,即使用docker run命令时执行,这两个指令在Dockerfile中都只有最行一条被执行
 4. CMD在使用docker run时可以加参数将Dockerfile中的CMD覆盖
 5. ENTRYPOINT在Dockerfile中出现后就一定会在docker run时被执行,不必担心会被其他参数所覆盖。

ADD、COPY复制文件(夹)到容器
 1. ADD复制文件(夹)时可以指定本地文件、远程URL地址,如果复制的是tar文件时将会被自动解压成文件夹
 2. COPY复制文件(夹)时不可以指定远程URL地址,拷贝tar文件也不会被自动解压成文件夹,在复制本地文件时建议使用COPY



https://www.xamrdz.com/web/2gn1938836.html

相关文章: