Docker 容器开机自启动脚本

一、Docker服务设置自动启动

1、查看已经启动的服务

systemctl list-units --type=service

如果 docker 没有启动,执行启动命令: systemctl start docker

2、查看是否设置开机启动

systemctl list-unit-files | grep docker

显示enabled说明docker服务设置了开机启动
显示disabled说明docker服务没有设置开机启动

3、设置开机启动

systemctl enable docker.service

如果要取消开机启动,执行命令:systemctl disable docker.service

二、Docker容器设置自动启动

1、设置容器自启

docker update --restart=always 容器名称

三、容器启动时自启动脚本

1. 容器启动时执行脚本

创建 start.sh 脚本

#!/bin/bash

while [ 1 ]; do
    date >> /root/output.txt
    sleep 1
done

创建 Dockerfile

# 基础镜像
FROM ubuntu:18.04

# 维护者信息
MAINTAINER test

# 构建镜像命令
COPY start.sh /usr/local/start.sh
CMD ["/bin/bash", "/usr/local/start.sh"]

构建镜像

docker build -t test:v1 .

创建 docker 容器

docker run -itd --name=test_v1 test:v1

2. 其他方式

当容器已创建完成时,在容器内无法通过添加 rc.local 或配置服务等方式来设置启动脚本,但可以在 .bashrc 文件内追加脚本的执行命令,需要注意的是当容器启动时会执行一次脚本,并且在每次用户登陆到容器时也还会执行一次。

在 root 目录下添加 daemon.sh(这是真正要执行的脚本) 文件,内容如下:

#!/bin/bash

while [ 1 ]; do
    date >> /root/output.txt
    sleep 1
done

添加 daemon-run.sh 脚本文件,内容如下:

#!/bin/bash

SCRIPT_NAME=daemon.sh

SCRIPT_NUM=$(ps -ef|grep $SCRIPT_NAME|grep -v "grep"|wc -l)
if [ $SCRIPT_NUM -eq 0 ]; then
        bash ~/$SCRIPT_NAME >/dev/null 2>&1 &
fi

之后在 /root/.bashrc 文件后追加如下内容:

if [ -f ~/daemon-run.sh ]; then
    . ~/daemon-run.sh
fi
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要设置Docker容器开机自启动,有几种方法可以实现。 第一种方法是通过将Docker启动脚本放置在/etc/init.d/目录下来实现自启动。这个方法适用于通过apt安装的Docker。 第二种方法是使用docker update命令来设置容器的重启策略为always。通过运行以下命令可以实现容器开机自启动: ``` docker update --restart=always <容器名称或ID> ``` 这个命令会将指定容器的重启策略设置为always,即每次宿主机启动时都会自动重启指定容器。 第三种方法是通过系统服务管理工具(如systemd)来设置Docker服务的开机自启动。可以创建一个脚本文件,内容类似于以下示例: ```bash #!/bin/sh sudo systemctl enable docker sudo systemctl start docker ``` 将这个脚本文件保存为一个自定义的文件名(如docker_start.sh),然后运行以下命令使脚本文件具有执行权限: ```bash chmod +x docker_start.sh ``` 最后,通过将这个脚本文件添加到系统的启动脚本中,可以实现Docker服务的开机自启动。 需要注意的是,具体的操作步骤可能因为不同的Linux发行版而有所不同,请根据你使用的操作系统和版本进行相应的调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Docker设置开机自启动](https://blog.csdn.net/m0_67403188/article/details/126327640)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [docker容器设置开机自启动](https://blog.csdn.net/hecr_mingong/article/details/106901633)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值