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
# docker run -i -t -d --name centos_aways --restart=always centos
e278cabec91e36f5582d92ba3ddb95ac17a0c2c59d8cdcc60791a28075e8abce
# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e278cabec91e centos "/bin/bash" 5 seconds ago Up 4 seconds
# init 6
# 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”参数的容器能否自动启动
# /etc/init.d/docker stop
Stopping docker:
# /etc/init.d/docker start
Starting 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 链接容器了。
页:
[1]