项目作者: ucucs

项目描述 :
Docker Build DockerFile,Useable And Developer Enviroment.
高级语言: Shell
项目地址: git://github.com/ucucs/docker.git
创建时间: 2019-06-23T00:50:04Z
项目社区:https://github.com/ucucs/docker

开源协议:GNU General Public License v3.0

下载


docker

Docker Build DockerFile,Useable And Developer Enviroment.

docker命令详解

  1. FROM
  2. FROM指定一个基础镜像, 一般情况下一个可用的 Dockerfile一定是 FROM 为第一个指令。至于image则可以是任何合理存在的image镜像。
  3. FROM 一定是首个非注释指令 Dockerfile.
  4. FROM 可以在一个 Dockerfile 中出现多次,以便于创建混合的images
  5. 如果没有指定 tag latest 将会被指定为要使用的基础镜像版本。
  6. MAINTAINER
  7. 这里是用于指定镜像制作者的信息
  8. RUN
  9. RUN命令将在当前image中执行任意合法命令并提交执行结果。命令执行提交后,就会自动执行Dockerfile中的下一个指令。
  10. 层级 RUN 指令和生成提交是符合Docker核心理念的做法。它允许像版本控制那样,在任意一个点,对image 镜像进行定制化构建。
  11. RUN 指令缓存不会在下个命令执行时自动失效。比如 RUN apt-get dist-upgrade -y 的缓存就可能被用于下一个指令. --no-cache 标志可以被用于强制取消缓存使用。
  12. ENV
  13. ENV指令可以用于为docker容器设置环境变量
  14. ENV设置的环境变量,可以使用 docker inspect命令来查看。同时还可以使用docker run --env <key>=<value>来修改环境变量。
  15. USER
  16. USER 用来切换运行属主身份的。Docker 默认是使用 root,但若不需要,建议切换使用者身分,毕竟 root 权限太大了,使用上有安全的风险。
  17. WORKDIR
  18. WORKDIR 用来切换工作目录的。Docker 默认的工作目录是/,只有 RUN 能执行 cd 命令切换目录,而且还只作用在当下下的 RUN,也就是说每一个 RUN 都是独立进行的。如果想让其他指令在指定的目录下执行,就得靠 WORKDIRWORKDIR 动作的目录改变是持久的,不用每个指令前都使用一次 WORKDIR
  19. COPY
  20. COPY 将文件从路径 <src> 复制添加到容器内部路径 <dest>
  21. <src> 必须是想对于源文件夹的一个文件或目录,也可以是一个远程的url,<dest> 是目标容器中的绝对路径。
  22. 所有的新文件和文件夹都会创建UID GID 。事实上如果 <src> 是一个远程文件URL,那么目标文件的权限将会是600
  23. ADD
  24. ADD 将文件从路径 <src> 复制添加到容器内部路径 <dest>
  25. <src> 必须是想对于源文件夹的一个文件或目录,也可以是一个远程的url。<dest> 是目标容器中的绝对路径。
  26. 所有的新文件和文件夹都会创建UID GID。事实上如果 <src> 是一个远程文件URL,那么目标文件的权限将会是600
  27. VOLUME
  28. 创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等。
  29. EXPOSE
  30. EXPOSE 指令指定在docker允许时指定的端口进行转发。
  31. CMD
  32. Dockerfile.中只能有一个CMD指令。 如果你指定了多个,那么最后个CMD指令是生效的。
  33. CMD指令的主要作用是提供默认的执行容器。这些默认值可以包括可执行文件,也可以省略可执行文件。
  34. 当你使用shellexec格式时, CMD 会自动执行这个命令。
  35. ONBUILD
  36. ONBUILD 的作用就是让指令延迟執行,延迟到下一个使用 FROM Dockerfile 在建立 image 时执行,只限延迟一次。
  37. ONBUILD 的使用情景是在建立镜像时取得最新的源码 (搭配 RUN) 与限定系统框架。
  38. ARG
  39. ARGDocker1.9 版本才新加入的指令。
  40. ARG 定义的变量只在建立 image 时有效,建立完成后变量就失效消失
  41. LABEL
  42. 定义一个 image 标签 Owner,并赋值,其值为变量 Name 的值。(LABEL Owner=$Name )
  43. ENTRYPOINT
  44. 是指定 Docker image 运行成 instance (也就是 Docker container) 时,要执行的命令或者文件。