docker容器ssh自启动设置

最近经常遇到服务器docker容器异常关闭的情况,导致VSCode无法通过remote-ssh连接到docker,在此记录一下解决方案。
参考链接:
docker容器内服务开机自启动实现方案(以ssh服务为例)

设置docker容器开机自启动

docker update --restart=always 容器名

设置ssh自启动

笔者在这一步遇到了一些问题,由于创建容器时使用的命令类似:

docker run ...   /bin/zsh

使用的不是默认的shell bash而是zsh(oh-my-zsh,同样是一种shell命令行工具),因此解决方案稍微和参考链接中的不一样。

  1. 在 /root 目录下新建一个 start_ssh.sh文件,赋予该文件可执行权限:
touch /root/start_ssh.sh

chmod +x /root/start_ssh.sh
  1. vim /root/start_ssh.sh,将以下内容粘贴到/root/start_ssh.sh中:
#!/bin/bash
 
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
echo "[$LOGTIME] startup run..." >>/root/start_ssh.log
service ssh start >>/root/start_ssh.log
  1. 如果默认的shell是bash,则执行vim /root/.bashrc ,本机使用的shell是zsh,因此输入vim /root/.zshrc,在文件末尾添加:
# startup run
if [ -f /root/start_ssh.sh ]; then
      . /root/start_ssh.sh
fi

因为容器创建时会执行/bin/bash或/bin/zsh命令,所以ssh服务通过第二步创建的脚本也被启动起来了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值