docker学习:CMD 和 ENTRYPOINT区别

2023-11-19

CMD					# 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代。
ENTRYPOINT			# 指定这个容器启动的时候要运行的命令,可以追加命令

cmd 测试 ls -a的命令,实际上只有-a起作用了,ls没有

测试CMD

# 编写dockerfile文件
$ vim dockerfile-test-cmd
FROM centos
CMD ["ls","-a"]
# 构建镜像
$ docker build  -f dockerfile-test-cmd -t cmd-test:0.1 .
# 运行镜像
$ docker run cmd-test:0.1
.
..
.dockerenv
bin
dev

# 想追加一个命令  -l 成为ls -al
$ docker run cmd-test:0.1 -l
docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"-l\":
 executable file not found in $PATH": unknown.
ERRO[0000] error waiting for container: context canceled 
# cmd的情况下 -l 替换了CMD["ls","-l"]。 -l  不是命令所有报错


测试ENTRYPOINT

同样是ls -a 这时候测试结果是我们所期望的,展示文件。

# 编写dockerfile文件
$ vim dockerfile-test-entrypoint
FROM centos
ENTRYPOINT ["ls","-a"]
$ docker run entrypoint-test:0.1
.
..
.dockerenv
bin
dev
etc
home
lib
lib64
lost+found ...
# 我们的命令,是直接拼接在我们得ENTRYPOINT命令后面的
$ docker run entrypoint-test:0.1 -l
total 56
drwxr-xr-x   1 root root 4096 May 16 06:32 .
drwxr-xr-x   1 root root 4096 May 16 06:32 ..
-rwxr-xr-x   1 root root    0 May 16 06:32 .dockerenv
lrwxrwxrwx   1 root root    7 May 11  2019 bin -> usr/bin
drwxr-xr-x   5 root root  340 May 16 06:32 dev
drwxr-xr-x   1 root root 4096 May 16 06:32 etc
drwxr-xr-x   2 root root 4096 May 11  2019 home
lrwxrwxrwx   1 root root    7 May 11  2019 lib -> usr/lib
lrwxrwxrwx   1 root root    9 May 11  2019 lib64 -> usr/lib64 ....


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker学习:CMD 和 ENTRYPOINT区别 的相关文章

随机推荐

  • 机器学习里的 kernel 是指什么?

    转自我的知乎回答 机器学习里的 kernel 是指什么 我换个角度来解释这个问题 机器学习在做回归或者分类时有一个很朴实的想法 预测 x 的值 那就在训练集 X 中寻找那些与 x 相似的样本 再把这些样本的值加权作为预测值 这里有两个问题
  • Unity 导出XCode工程运行报错: ‘UnityFramework/UnityFramework.h‘ file not found

    简介 近期项目升级到2019 4 10f1版本 在用自动化打包的时候 遇到了一些问题 其中一个是 在导出XCode工程之后 运行工程的时候 编译报错 UnityFramework UnityFramework h file not foun
  • ​CVPR 2023

    论文链接 https arxiv org pdf 2306 02763 pdf 代码链接 https github com ZhenglinZhou STAR 要解决的问题 人脸关键点检测标注中存在语义歧义问题 语义歧义是指不同的标注者对同
  • x86 32位机的特权保护

    优先级划分 指令的权限检查和超出权限访问的异常处理等是构成特权保护的基础 本文将试图讲解为大家解决两大问题 win32汇编中为什么找不到中断指令的应用 比如int 7ch windows错误的 蓝屏 是从哪里来的 保护模式下 中断或异常往往
  • idea2021如何开启RunDashboard

    一般来说如果你的微服务项目中拥有多个子模块 idea会自动识别 不需要进行以下操作 只要你一运行多个子模块就会自动出现 如果没有出现 那就只有手动添加了 1 找到workspace xml项目所在的磁盘路径 idea gt workspac
  • CTF图片隐写题

    1 隐藏在图片属性里的信息或者以文本形式打开能直接获取的信息 例如实验吧里的一道题 这个背影我给满分 就是将信息隐藏在属性里 又或者文本形式能直接看到的 分别是黑客榜中榜游戏和南邮平台的两道题
  • 按键控制数码管0-99显示,十位不跳,用定时器T0中断

    如果直接在主函数中写按键控制数码管0 99显示 不管怎么延时数码管十位上的数都会闪 原因就是单片机的机器周器太快 人的按键速度是ms级的 所以等你人操作完了 单片机早就执行了不知道多少遍 解决方法就是用中断 这里采用定时器T0溢出中断 工作
  • 单目标应用:基于蛇群优化算法(SO)的无人机(UAV)三维路径规划(提供MATLAB代码)

    一 蛇群优化算法SO 蛇群优化算法 Snake Optimizer SO 由Fatma A Hashim和Abdelazim G Hussien于2022年提出 该算法思路新颖 快速高效 模拟了蛇的觅食和繁殖行为 SO具体原理参考如下链接
  • PyQt5 组件之QMenuBar

    QMenuBar简介 在QMainWindow对象的标题栏下方 水平的QMenuBar被保留显示QMenu对象 QMenuBar类提供了一个可以包含一个或多个QAction对象或 级联的QMenu对象 要创建一个弹出菜单 Pyqt提供了cr
  • FM33G0X之上电过程引脚配置

    八 FM33G0X之上电过程引脚配置 使用官方例程的代码初始化 在实际测试中会出现 配置成输出的引脚在上电过程中会将电平拉高 12v的输入电压 引脚可能会拉到3v 并持续一段时间 这对于实际应用中 是不应该出现的 比如一开始在io口配置中配
  • Visual C++ Redistributable 一键安装All In One Runtimes

    老版本的程序需要在客户端安装低版本的VC运行库Visual Studio 但网上第三方找到的软件要么无法下载 要么版本低 或者要求付费 而且常常有病毒 或者根本就是垃圾广告 因此从微软厂商下载 并编写了一个非常简单的脚本一键安装 右键以管理
  • webpack

    一 背景 随着我们的项目涉及到页面越来越多 功能和业务代码也会随着越多 相应的 webpack 的构建时间也会越来越久 构建时间与我们日常开发效率密切相关 当我们本地开发启动 devServer 或者 build 的时候 如果时间过长 会大
  • simcse模型

    一个对比学习的框架 作者在这里通过将一句话分两次过同一个模型 但使用两种不同的dropout 这样得到的两个sentence embedding就作为模型的正例 而同一个batch中的其他embedding就变为了负例 第二个代理任务就更加
  • linux虚拟机BIOS禁用Intel VT-x,电脑重启开启CPU虚拟化

    安装虚拟机centOS64的时候出现下面这个问题 通过 任务管理器 查看性能 CPU 发现是 已禁用 解决办法 重启电脑 修改BIOS中CPU 的配置 重点是 重启电脑 重点是 重启电脑 重点是 重启电脑 重启的过程中才能修改 重启的时候
  • vue3中使用pinia(大菠萝)状态管理仓库

    在Vue 3中 状态管理是非常重要的一部分 而Pinia 大菠萝 作为一个全新的状态管理库 在Vue 3中提供了更好的状态管理方案 可以方便地实现任意组件之间数据共享 与VueX不同的是 Pinia并不依赖于Vue 3的响应式系统 而是通过
  • scikit-learn学习笔记

    数据划分 from sklearn model selection import train test split 数据预处理 数据标准化 归一化 from sklearn preprocessing import StandardScal
  • 浅谈HTTP

    HTTP Hyper Text Transfer Protocol 超文本传输协议 完成从客户端到服务器的一系列运作流程 是用于从万维网 WWW World Wide Web 服务器传输超文本到本地浏览器的传送协议 HTTP的发展历程 HT
  • python学习笔记(1)-爬取小说

    小说网站上某个小说的爬取 Python版本 3 9 6 ide PyCharm 2021 1 3 基于HTML和Python基础语法知识 涉及内容如下 1 使用requests获取网页资源 2 使用BeautifulSoup拆解网页html
  • Python Socket(二) Socket异常处理方法及Socket错误码一览表

    Python Socket操作的异常处理范例 http blog chinaunix net uid 270894 id 2452366 html socket常见错误码详解 Socket error 10048 Address alrea
  • docker学习:CMD 和 ENTRYPOINT区别

    CMD 指定这个容器启动的时候要运行的命令 只有最后一个会生效 可被替代 ENTRYPOINT 指定这个容器启动的时候要运行的命令 可以追加命令 cmd 测试 ls a的命令 实际上只有 a起作用了 ls没有 测试CMD 编写dockerf