天天看點

Docker容器開機自動啟動(在主控端重新開機後或者Docker服務重新開機後)

一、環境介紹

系統版本:CentOS6.7 X64

核心版本:2.6.32-573.18.1.el6.x86_64

二、測試過程

使用在Docker run的時候使用--restart參數來設定。

no - container:不重新開機

on-failure - container:退出狀态非0時重新開機

always:始終重新開機

<code>[root@docker ~]</code><code># docker run -i -t -d --name centos_aways --restart=always centos</code>

<code>e278cabec91e36f5582d92ba3ddb95ac17a0c2c59d8cdcc60791a28075e8abce</code>

<code>[root@docker ~]</code><code># docker ps -l</code>

<code>CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES</code>

<code>e278cabec91e        centos              </code><code>"/bin/bash"</code>         <code>5 seconds ago       Up 4 seconds   </code>

<code>[root@docker ~]</code><code># init 6</code>

<code>e278cabec91e        centos              </code><code>"/bin/bash"</code>         <code>3 minutes ago       Up About a minute</code>

<code>Docker服務重新開機後,檢視添加了“--restart=always”參數的容器能否自動啟動</code>

<code>[root@docker ~]</code><code># /etc/init.d/docker stop</code>

<code>Stopping docker:                                           [  OK  ]</code>

<code>[root@docker ~]</code><code># /etc/init.d/docker start</code>

<code>Starting docker:                                      [  OK  ]</code>

<code>[root@docker ~]</code><code># docker ps</code>

<code>CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES</code>

<code>14caa9ab03a9        dockerui</code><code>/dockerui</code>   <code>"/dockerui"</code>         <code>11 minutes ago      Up 3 seconds        0.0.0.0:9000-&gt;9000</code><code>/tcp</code>   <code>dockerui_qinwen     </code>

<code>e278cabec91e        centos              </code><code>"/bin/bash"</code>         <code>About an hour ago   Up 3 seconds                                 centos_aways</code>

三、注意事項:

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,如需轉載請自行聯系原作者