docker构建镜像需使用的命令小结

 更新时间:2024年04月01日 17:23:58   作者:hhb_618  
Docker 构建镜像的命令主要分为两类:Dockerfile 指令与 docker build 命令,这篇文章主要介绍了docker构建镜像需使用的命令,需要的朋友可以参考下

Docker 构建镜像的命令主要分为两类:Dockerfile 指令与 docker build 命令。 以下是 Docker 构建镜像需要用到的一些关键命令和指令: 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 镜像,根据您的实际需求来选择合适的指令以构建出优质的镜像。 

到此这篇关于docker构建镜像需使用的命令的文章就介绍到这了,更多相关docker构建镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker常用命令汇总

    docker常用命令汇总

    这篇文章主要介绍了docker常用命令汇总,都是一些常用的基本命令,有需要的同学可以尝试学习下
    2020-12-12
  • docker下的 redis 之持久化存储详解

    docker下的 redis 之持久化存储详解

    这篇文章主要介绍了docker下的 redis 之持久化存储详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Centos8.3、docker部署springboot项目实战案例分析

    Centos8.3、docker部署springboot项目实战案例分析

    这篇文章主要介绍了Centos8.3、docker部署springboot项目实战记录,包括docker安装,开启docker远程访问端口的方法及配置idea docker环境的方法,需要的朋友可以参考下
    2021-06-06
  • 阿里云镜像安装docker报错的问题及解决方案

    阿里云镜像安装docker报错的问题及解决方案

    这篇文章主要介绍了阿里云镜像安装docker报错的问题及解决方案,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • 从零开始使用Dapr简化微服务的示例

    从零开始使用Dapr简化微服务的示例

    本文以net6和dapr1.5为基础,搭建一个dapr的简单使用示例。对Dapr简化微服务的简单使用感兴趣的朋友跟随小编一起学习下吧
    2021-11-11
  • docker容器如何优雅的终止详解

    docker容器如何优雅的终止详解

    最近公司在试验如何将项目部署到docker容器中去,这其中涉及到一个技术环节,那就是如何让docker容器优雅的终止。所谓优雅终止,指的就是程序在退出前有清理资源,保存必要中间状态,持久化内存数据的机会。下面通过这篇大家一起由简单到复杂逐一考量一下。
    2016-11-11
  • Docker镜像构建的两种方法解析

    Docker镜像构建的两种方法解析

    这篇文章主要为大家详细介绍了Docker镜像构建的两种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • docker-compose配置并部署redis服务的实现

    docker-compose配置并部署redis服务的实现

    本文主要介绍了docker-compose配置并部署redis服务的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • k8s部署docker容器的实现

    k8s部署docker容器的实现

    这篇文章主要介绍了k8s部署docker容器的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • docker-compose ports和expose的区别详解

    docker-compose ports和expose的区别详解

    这篇文章主要介绍了docker-compose ports和expose的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01

最新评论