docker构建镜像需使用的命令

Docker 构建镜像的命令主要分为两类:Dockerfile 指令与 docker build 命令。

以下是 Docker 构建镜像需要用到的一些关键命令和指令:

  1. Dockerfile 指令

Dockerfile 是 Docker 镜像的构建蓝图,其中包括了一系列指令,可以帮助您定义如何构建和配置 Docker 镜像。以下是几个常见的 Dockerfile 指令:

  • FROM:用于指定该镜像的基础镜像,也就是从哪个镜像开始构建;
  • RUN:用于在新的镜像中运行命令,比如安装软件包、配置环境变量等;
  • COPY:用于将文件或目录从宿主机复制到新的镜像中;
  • ENV:用于设置环境变量;
  • EXPOSE:用于声明容器运行时需要监听的端口号;
  • CMD:在容器启动时需要运行的命令。
  1. docker build 命令

docker build 命令用于构建 Docker 镜像,语法如下:

docker build [OPTIONS] PATH | URL | -

OPTIONS 中的一些常用选项如下:

  • -f:指定 Dockerfile 的文件名,默认为当前目录下的 Dockerfile;
  • -t:指定构建出的镜像的名称及 tag,格式为 name:version;
  • –no-cache:在构建镜像时不使用缓存;
  • –force-rm:在构建结束后删除中间容器。

这些命令和指令基本能够满足绝大多数 Docker 镜像的构建需求,如果需要更复杂的构建过程,您可以查看 Docker 官方文档找到更多有用的命令和指令。

以下是 Dockerfile 中的 100 条指令:

1. ADD:将文件、目录或远程文件的 URL 添加到镜像中。
2. ARG:定义构建时需要传递给构建运行时的变量。
3. CMD:容器启动时要运行的命令。只有最后一个 CMD 指令会起作用。
4. COPY:将文件或目录从构建上下文复制到容器文件系统中。
5. ENTRYPOINT:配置容器启动时要运行的命令,并且不可被覆盖。
6. ENV:设置环境变量。
7. EXPOSE:声明运行容器时监听的端口。
8. FROM:指定基础镜像。
9. HEALTHCHECK:检查容器是否在运行。
10. LABEL:为镜像添加元数据。
11. MAINTAINER:已过时,用 LABEL 代替。
12. ONBUILD:为镜像设置触发器,当镜像被作为另一个镜像的基础镜像时,这些指令会被触发执行。
13. RUN:构建镜像时要运行的命令。
14. SHELL:覆盖默认 shell 执行的命令。
15. STOPSIGNAL:向容器发送 SIGTERM 信号,用于停止容器的默认进程。
16. USER:指定运行容器进程的用户名或 UID。
17. VOLUME:用于将容器内的一个或多个目录挂载到主机文件系统或其他容器中。
18. WORKDIR:设置当前工作目录。
19. HEALTHCMD:运行在健康检查期间要执行的命令。
20. HEALTHSTARTPERIOD:健康检查启动后等待几秒钟才进行首次检查。
21. HEALTHINTERVAL:健康检查的时间间隔。
22. HEALTHTIMEOUT:健康检查超时时间。
23. HEALTHRETRIES:健康检查失败后的重试次数。
24. CURL:使用 curl 命令下载文件。
25. CHMOD:更改文件或目录的权限。
26. ADDUSER:添加用户到容器中。
27. CHOWN:更改文件或目录的所有者。
28. COPYONWRITE:为镜像添加 copy-on-write 的特性。
29. INIT:配置容器启动时的 init 进程。
30. IPC:指定容器的 IPC 类型。
31. NET:指定容器的网络模式。
32. PID:指定容器的 PID 模式。
33. ADDGROUP:添加群组到容器中。
34. ARGDEFAULT:为 ARG 指定默认值。
35. CONTAINERDOMAINNAME:为容器指定域名。
36. CONTAINERHOSTNAME:为容器指定主机名。
37. CONTAINERIP:为容器指定 IP 地址。
38. CONTAINERNETWORKMODE:指定容器的网络模式。
39. CONTAINERTIMEZONE:为容器设置时区。
40. EXPOSEORPUBLISH:EXPOSE 和 PUBLISH 端口。
41. ENTRYPOINTDEFAULT:为 ENTRYPOINT 指定默认值。
42. USERGROUP:指定运行容器进程的用户和群组。
43. VOLUMEFROM:指定从其他容器中挂载的卷。
44. HTTPMASKING:掩盖 HTTP 请求头中的敏感信息。
45. LABELDEFAULT:为 LABEL 指定默认值。
46. ARGCONDITIONAL:为 ARG 添加条件。
47. FROMSCRATCH:从 scratch 镜像开始构建。
48. GID:指定用户组 ID。
49. IDENTITY:添加 SSH 身份验证密钥到容器中。
50. INSTALL:安装软件包。
51. LINK:为容器添加链接。
52. LOGDRIVER:指定容器日志驱动程序。
53. MAINTAINERDEFAULT:为 MAINTAINER 指定默认值。
54. MEMORY:指定容器的内存限制。
55. NAMESPACE:为镜像配置命名空间。
56. REPOSITORY:为镜像配置存储库。
57. SECURITYOPT:指定容器的安全选项。
58. SHELLDEFAULT:为 SHELL 指定默认值。
59. SIGNAL:向容器发送信号,用于停止容器的默认进程。
60. TAG:为镜像配置标签。
61. TARGET:指定在构建 Dockerfile 时要使用的构建阶段。
62. UMOUNT:卸载容器中的目录挂载。
63. UNSHARE:指定容器是否应该 unshare 命名空间。
64. USEBILLING:启用计费模式。
65. USERDEFAULT:为 USER 指定默认值。
66. UTS:指定容器的 UTS 名称空间。
67. VOLUMEDEFAULT:为 VOLUME 指定默认值。
68. ARGFILE:从文件中读取 ARG 变量。
69. BUILDARG:设置运行构建时的参数,类似于 ARG 指令。
70. CACHEFROM:指定构建时要使用的缓存镜像列表。
71. COMPOSE:应用 Docker Compose 配置。
72. CONFIG:添加配置文件到容器。
73. CONTAINERNAME:指定容器名称。
74. CPU:指定容器的 CPU 限制。
75. DEBUG:启用调试模式。
76. DEPLOY:指定 stack 文件的部署配置。
77. DOMAINNAME:为容器指定域名。
78. DOCKERFILE:指定 Dockerfile 名称。默认为 'Dockerfile'。
79. DOMAINSEARCH:为容器中的 DNS 解析配置搜索域名。
80. ENTRYPOINTSHELL:为 ENTRYPOINT 指定 shell。
81. ENVFILE:从文件中读取环境变量。
82. EXPORTVARS:在进入容器之前导出主机环境变量。
83. FILE:将文件添加到容器中。
84. FLUENTD:配置 Fluentd 日志驱动程序。
85. FROMCACHE:选择要使用的缓存版本的 FROM 语句。
86. HEALTHCHECKCMD:为健康检查指定 CMD 命令。
87. HTTPPROXY:为容器设置 http 代理。
88. HTTPSVERIFY:指定 Docker 是否验证 https 证书。
89. INCLUDE:包含另一个文件。
90. INITPATH:覆盖默认的 init 路径。
91. ISOLATION:指定容器的隔离级别。
92. LABELFILE:从文件中读取元数据标签。
93. LINKSDEFAULT:为 LINKS 指定默认值。
94. LOGCONF:为容器配置日志驱动程序。
95. MAINTAINERFILE:从文件中读取镜像维护者信息。
96. MEMSWAP:指定容器的内存和交换空间限制。
97. NETWORKALIASES:为容器设置网络别名。
98. NOPROXY:配置容器的无代理列表。
99. PLATFORM:指定构建镜像的平台。
100. REMOTEIMPORT:从远程位置导入文件或目录到容器中。

这些指令可以帮助您定义如何构建和配置 Docker 镜像,根据您的实际需求来选择合适的指令以构建出优质的镜像。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hhb_618

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值