一、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 脚本文件,内容如下:文章来源:https://www.toymoban.com/news/detail-741448.html
#!/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 文件后追加如下内容:文章来源地址https://www.toymoban.com/news/detail-741448.html
if [ -f ~/daemon-run.sh ]; then
. ~/daemon-run.sh
fi
到了这里,关于Docker 容器开机自启动脚本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!