docker
docker 部署合集
docker搭建OpenLDAP
docker-compose
phpLdapAdmin 创建用户和组
jenkins 集成 ldap
添加memberOf模块
gitlab 集成ldap
OpenLDAP多主复制(基于docker容器模式部署)
ldap 日志
LDAP自助密码服务平台
cadvisor
开放 端口 和 套接字
docker命令
Weave Scope
cmd entrypoint
docker-compose 删除数据卷
docker slim
面试
harbor 更新证书
Docker Build Cache 缓存清理
本文档使用 MrDoc 发布
-
+
首页
面试
# cmd entrypoint 区别 `CMD`和`ENTRYPOINT`都是Dockerfile的指令,它们都可以用来指定容器启动后运行的命令,但是它们之间存在一些区别。 1. `CMD`:这个指令用来提供默认的执行命令,以及命令的参数。如果在运行容器时没有指定命令,那么就会执行`CMD`指定的命令。如果在运行容器时指定了命令,那么`CMD`指定的命令就会被忽略。一个Dockerfile可以包含多个`CMD`指令,但只有最后一个`CMD`会被使用。 2. `ENTRYPOINT`:这个指令用来指定容器启动后必须运行的命令,`ENTRYPOINT`指定的命令在容器启动时总是会被执行。如果在运行容器时指定了命令,那么这个命令会被当作`ENTRYPOINT`命令的参数。 这两个指令一般会一起使用,`ENTRYPOINT`指定一个固定的命令,`CMD`提供这个命令的默认参数。例如,你可以使用`ENTRYPOINT`指定容器启动后运行python解释器,然后使用`CMD`提供python程序的路径作为默认参数。这样,在运行容器时,如果不指定命令,那么就会运行默认的python程序;如果指定了命令,那么就会运行指定的python程序。 组合使用 entrypoint 和 cmd 命令时,确保你一定是用的是 exec 表示法 ``` ENTRYPOINT ["/bin/ping","-c","3"] CMD ["localhost"] # run /bin/ping -c 3 localhost ``` # add copy 的区别 `ADD`和`COPY`都是Dockerfile的指令,用于将文件从主机复制到Docker镜像。这两个指令的主要区别在于它们处理文件和文件夹的方式。 1. `COPY`:这个指令的基本形式是`COPY <src> <dest>`。它将从构建上下文中的`<src>`复制文件或目录到新的一层的`<dest>`。你可以复制多个源文件,但是`<dest>`必须是一个目录。它只关心在构建上下文中的文件和目录。 2. `ADD`:这个指令的基本形式是`ADD <src> <dest>`。`ADD`指令有`COPY`指令的所有功能,但是还有两个特性: - 可以用于下载远程的文件。在`<src>`中提供URL,它会下载URL指向的文件或者文件夹到`<dest>`。 - 自动解压缩。如果`<src>`是一个压缩文件,它会在复制后自动解压到`<dest>`。 尽管`ADD`指令功能更多,但是Docker官方建议在没有特殊需求的情况下,优先使用`COPY`指令,因为`COPY`指令更加透明。`ADD`指令的自动解压缩功能和URL支持可能会导致不可预见的结果。
admin
2023年11月5日 22:24
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码