0


Docker 容器开机自启动脚本

一、Docker服务设置自动启动

1、查看已经启动的服务

systemctl list-units --type=service

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

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

systemctl list-unit-files |grepdocker

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

3、设置开机启动

systemctl enable docker.service

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

二、Docker容器设置自动启动

1、设置容器自启

docker update --restart=always 容器名称

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

1. 容器启动时执行脚本

创建 start.sh 脚本

#!/bin/bashwhile[1];dodate>> /root/output.txt
    sleep1done

创建 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/bashwhile[1];dodate>> /root/output.txt
    sleep1done

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

#!/bin/bashSCRIPT_NAME=daemon.sh

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

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

if[-f ~/daemon-run.sh ];then. ~/daemon-run.sh
fi
标签: docker 容器 运维

本文转载自: https://blog.csdn.net/shao5166233/article/details/132685660
版权归原作者 farmerly_ 所有, 如有侵权,请联系我们删除。

“Docker 容器开机自启动脚本”的评论:

还没有评论