探讨 docker 容器里增加开机自启命令或者脚本的最佳方式

2020-09-12 22:19:34 +08:00
 herozzm
  1. run 的时候增加命令
  2. ...
  3. ...

已经 run 的容器又如何增加容器的开机启动脚本? docker container update ?

4400 次点击
所在节点    Docker
10 条回复
leishi1313
2020-09-12 23:57:51 +08:00
不要把容器当虚拟机用
wellsc
2020-09-13 00:00:48 +08:00
自己写个作业 docker-entrypoint.sh
mikeguan
2020-09-13 00:24:34 +08:00
放个 systemd 进去控制开机自起,或者退而求其次用 supervisor ?
herozzm
2020-09-13 01:03:21 +08:00
@leishi1313 安装了一个 tensorflow docker 环境,需要在启动一个 python 脚本,导出重新 run 不支持 gpu,头大
jim9606
2020-09-13 06:30:11 +08:00
你是说开机时自动运行容器吗?
这个在 docker run 添加 --restart=always 就行了
locoz
2020-09-13 07:55:42 +08:00
不要把容器当成虚拟机来使用,换个思路做…容器里是没有也不需要开机自启这个概念的。
如果你是想要在环境里增加东西,就直接用 dockerfile from 旧镜像,然后再添加上你的增加操作步骤,并打包成一个新的镜像。
ETiV
2020-09-13 07:59:29 +08:00
可以在制作镜像的时候就提前设计好这种能力

比如新近的 nginx 镜像:
启动脚本会扫描 /entrypoint.d 下的可执行.sh 文件,有的话便会依照文件名的排序依次执行它们

已经 run 的,环境允许的话,狸猫换太子?
把 entrypoint 文件换掉什么的……

——
不过你这情况似乎可以 docker commit
calmzhu
2020-09-13 09:24:58 +08:00
支持楼上,docker 简单说就是单个进程。没什么开机的说法。不要当虚拟机用。
matrix67
2020-09-13 09:28:55 +08:00
要跑的那个进程 pid 是 1 用 systemd 的话,systemd 会占掉 pid 1 了
xxb
2020-09-13 23:15:19 +08:00
为什么部分楼层要把“自启动”跟虚拟机划等号?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/706467

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX