Docker容器开机自动启动(在宿主机重启后或者Docker服务重启后)-阿里云开发者社区

开发者社区> 余二五> 正文

Docker容器开机自动启动(在宿主机重启后或者Docker服务重启后)

简介:
+关注继续查看

一、环境介绍
系统版本:CentOS6.7 X64
内核版本:2.6.32-573.18.1.el6.x86_64


二、测试过程
使用在Docker run的时候使用--restart参数来设置。

no - container:不重启
on-failure - container:退出状态非0时重启
always:始终重启

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@docker ~]# docker run -i -t -d --name centos_aways --restart=always centos
e278cabec91e36f5582d92ba3ddb95ac17a0c2c59d8cdcc60791a28075e8abce
[root@docker ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
e278cabec91e        centos              "/bin/bash"         5 seconds ago       Up 4 seconds   
[root@docker ~]# init 6
[root@docker ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
e278cabec91e        centos              "/bin/bash"         3 minutes ago       Up About a minute
 
Docker服务重启后,查看添加了“--restart=always”参数的容器能否自动启动
[root@docker ~]# /etc/init.d/docker stop
Stopping docker:                                           [  OK  ]
[root@docker ~]# /etc/init.d/docker start
Starting docker:                                      [  OK  ]
[root@docker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
14caa9ab03a9        dockerui/dockerui   "/dockerui"         11 minutes ago      Up 3 seconds        0.0.0.0:9000->9000/tcp   dockerui_qinwen     
e278cabec91e        centos              "/bin/bash"         About an hour ago   Up 3 seconds                                 centos_aways

 

三、注意事项:
1.用docker自带的--link把多个容器链接在一起,有重启或升级的问题,比如很多容器都依赖于 db 这个容器,然后db容器重启了,重启时docker分配的ip会变,导致其他依赖于db的容器都要重启。

2.--link 链接的容器还有启动顺序的问题, 需要先启动db容器再启动其他依赖于db的容器, 这样导致 --link和--restart=always 不能一起用, 如果一起用会发现宿主机重启了, docker容器并没有全部重启,
3.因为这时候docker容器是同时被启动的,并不知道启动顺序。 最后决定不用 --link 链接容器了。










本文转自 冰冻vs西瓜 51CTO博客,原文链接:http://blog.51cto.com/molewan/1743902,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
docker学习 - docker启动和镜像
# docker daemon启动 载体为daemon,调度管理engine,任务执行靠job Engine是map[string]Handler,type Handler func(*Job) Status Daemon的启动流程: - 注册serve job、pull job、create job、start job等 - 构建serveapi job,并执行ServeApi h
1317 0
《自己动手写docker》之namespace部门实验
动手写一遍,印象不一样! package main import ( "log" "os" "os/exec" "syscall" ) func main() { cmd := exec.
1090 0
+关注
12613
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载