02-Dockerfile的基本使用

1. FROM

作用:指定基础镜像
使用:FROM 镜像名
demo: 
      FROM mysql
      FROM mysql:5.6

2. RUN

作用:指令是用来执行命令行命令的
使用:
      shell格式:RUN命令,就跟直接在命令行输入命令一样
      demo:RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html


      exec格式:RUN ['可执行文件', '参数1', '参数二']

3. MAINTAINER

作用:维护者的信息
使用:MAINTAINER <name>
demo:MAINTAINER 萌新瑟瑟发动

4. ADD

作用:将本地文件添加到容器中 压缩包类型的文件会自动解压(网络文件不会解压),可以访问网络
使用:ADD 本地文件 虚拟机路径

5. COPY

作用:功能类似ADD 但是不能解压和访问网络资源
使用:COPY 本地文件 虚拟机路径

6. CMD

作用:构建容器后调用,也就是在容器启动的时候才进行调用
使用:
      CMD ['executable', 'param1', 'param2'] # 执行可执行的软件 优先
      CMD ['param1', 'param2']  # 设置ENTPYPOINT,直接调用 ENTPYPOINT语法 + 参数
      CMD command parm1, parm2 # 执行shell 内部命令
注意:
      CMD 指定容器启动时执行的命令
      RUN 指定镜像构建所执行的命令

7. ENV

作用:设置环境变量
使用:
      ENV <key> <value>  # <key>之后所有的部分都会被当成value的一部分
      ENV <key>=<value>  # 可以设置多个变量每个变量为一个key=value的键值对,若其中<key>包含空格可以使用\ 进行转译。 也可以使用'' 标志,另外 \ 可以用于换行

8. EXPOSE

作用:指定外界交互端口
使用:EXPOSE <port>  <port>  # 主机端口/tcp 虚拟机端口/tcp   注: /tcp 可选

9. VOLUME

作用:用于指定持久化目录
使用:
      VOLUME ["/var/www", "/var/log/apache2", "/etc/apache2"]

注:一个卷可以存在于一个或多个容器的指定目录,该目录可以绕过联合文件系统,并具有以下功能:
      1、卷可以容器间共享和重用
      2、容器并不一定要和其它容器共享卷
      3、修改卷后会立即生效
      4、对卷的修改不会对镜像产生影响
      5、卷会一直存在,直到没有任何容器在使用它

10. WORKDIR

作用:工作路径,类似linux命令的 cd

使用:WORKDIR <path>
注意:通过WORKDIR设置工作目录后,在Dockerfile 其后的命令RUN、CMD等命令就在此目录下执行。在使用docker run 运行容器时,可以通过 - w 参数覆盖构建时所设置的工作目录

11. USER

作用:指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。使用USER指定用户时,可以使用用户名、UID或GID,或是两者的组合。当服务不需要管理员权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户
使用: 
      USER user
      USER user:group
      USER uid
      USER uid:gid
      USER user:gid
      USER uid:group

12. ARG

作用:用于指定传递给构建运行时的变量
使用:ARG <name>[==<default value>]
posted @ 2020-12-17 09:48  萌新_python  阅读(103)  评论(0)    收藏  举报