暴力修改Docker容器的启动命令

29 篇文章 0 订阅

事情是这样的,我先运行了一个docker容器,然后再这个docker容器中部署了一个web应用:

在这里插入图片描述
可以看到容器rust_cms的运行命令是/bin/bash ,现在想让这个容器自动启动并且启动后运行web服务.自动启动可以使用docker update更改启动策略,如:

docker update --restart always rust_cms

但docker update不支持修改COMMAND,每次docker重新启动还是要手动去启动web服务,怎么办呢?

方法一

想到的第一个方法是使用docker commit 把当前容器保存为镜像再使用新的镜像启动一个新的容器,在执行docker run启动新容器时就可以指定新的运行命令了。
感觉这个方法还得重新设置端口什么的比较麻烦,能不能直接修改docker容器的配置文件呢?这样显然比较暴力风险比较大。

方法二

使用docker inspect找到容器rust_cms配置文件所在目录
在这里插入图片描述
在这里插入图片描述
目录下的config.v2.json就是容器的配置文件了,如果你使用的docker版本比较低也可能是config.json。
找到文件就动手修改吧,修改前请停止docker服务并先备份config.v2.json文件以防改失败了好回滚:
把文件中的命令/bin/bash替换为新的命令:
在这里插入图片描述
再重启下docker服务:

systemctl start docker

查看容器是否启动成功:
在这里插入图片描述
从状态信息:

Restarting (101) 4 seconds ago

可以看出容器启动失败了,这是为什么呢?
是启动web服务器时忘记设置当前目录了,索性在config.v2.json文件里把当前工作目录也改了:
在这里插入图片描述
再次启动docker服务,就正常了:
在这里插入图片描述
如果执行命令比较麻烦,可能方式一还快些.

补充:

操作系统 centos 7

docker version
Client: Docker Engine - Community
 Version:           20.10.3
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        48d30b5
 Built:             Fri Jan 29 14:34:14 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.3
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       46229ca
  Built:            Fri Jan 29 14:32:37 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.3
  GitCommit:        269548fa27e0089a8b8278fc4fc781d7f65a939b
 runc:
  Version:          1.0.0-rc92
  GitCommit:        ff819c7e9184c13b7c2607fe6c30ae19403a7aff
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一个不安分的程序员

祝您财源广进

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

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

打赏作者

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

抵扣说明:

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

余额充值