当我们的服务器上面部署了很多docker 的项目,如果我们将服务器重启,这个时候我们的容器是会被停止的,一个个手动去重启容器会显得很繁琐,所以有没有一种方式让容器重启呢?答案是肯定的
我们要确定一点,一个是docker本身服务,一个是docker 部署的容器项目
- 要设置 docker自动启动,如下:
systemctl enable docker.service
- 设置docker 容器为自启动,
在启动的时候可以使用参数 :docker run –restart=always
如果已经启动了则可以使用如下命令:
docker update --restart=always <CONTAINER ID>
–restart具体参数值详细信息:
no – 容器退出时,不重启容器;
on-failure – 只有在非0状态退出时才从新启动容器;
always – 无论退出状态是如何,都重启容器;
还可以在使用on-failure策略时,指定Docker将尝试重新启动容器的最大次数。默认情况下,Docker将尝试永远重新启动容器。
docker update --restart=on-failure:10 <CONTAINER ID>
如果要取消命令如下:
docker update --restart=no <CONTAINER ID>
取消全部
docker update --restart=no $(docker ps -q)
3. 查看是否加入开机启动项
systemctl list-unit-files |grep xxx
例如:查看所有自启动的项目
查看docker 在系统中状态
- 我们使用 reboot 来进行linux 重启后,看下docker 容器是否重启了
docker ps 命令发现已经设置的自启动容器项目已经启动了
- 常用命令
docker start NAMES. # 启动容器
docker stop NAMES # 停止
docker restart NAMES # 重启
docker 启动所有的容器
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker 关闭所有的容器
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker 删除所有的容器
docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker 删除所有的镜像
docker rmi $(docker images | awk '{print $3}' |tail -n +2)
欢迎指出任何有错误或不够清晰的表达,可以在下面评论区评论。