Centos 配置開機啟動腳本啟動 docker 容器


Centos 配置開機啟動腳本啟動 docker 容器

Intro

我們的 Centos 服務器上部署了好多個 docker 容器,因故重啟的時候就會導致還得手動去手動重啟這些 docker 容器,為什么不寫個腳本自動重啟呢,於是就有了這篇文章。

批量啟動 Docker 容器

之前我們有提到過關於 docker 的一些騷操作 ,可以直接使用

docker start $(docker ps -aq) # 啟動所有容器
docker start $(docker ps -aq -f status=exited) # 啟動所有狀態為exited 的容器,和上面的命令效果一致

對於有 link 有依賴項的需要先把對應的依賴項先啟動,比如說我們有一個 identityserver 的 docker 容器(auth-server),別的容器啟動的時候會 link 它,這時候就需要先啟動 auth-server 再啟動其他容器,這時啟動腳本則需要稍加修改

docker start auth-server # 先啟動 auth-server 容器
docker start $(docker ps -aq -f status=exited) # 再啟動所有狀態為exited 的容器

寫個 shell 腳本

寫一個啟動 startup 腳本,在系統啟動的時候執行它
在一個你想放啟動腳本的地方創建一個 startup.sh,我這里創建在了 /usr/local/scripts/startup.sh

文件內容如下:

#!/bin/bash
# start docker container
docker start auth-server
docker start $(docker ps -aq -f status=exited)

設置文件權限:

sudo chmod +x /usr/local/scripts/startup.sh

設置開機啟動

/etc/rc.d/rc.local 文件中添加開機啟動執行腳本

sudo vi /etc/rc.d/rc.local 編輯文件,添加自定義的啟動腳本

#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local
/usr/local/scripts/startup.sh # 新增自定義啟動腳本

設置文件權限

chmod +x /etc/rc.d/rc.local

重啟驗證

執行 sudo reboot 重啟服務器,稍后重新連接,執行 docker ps 查看在運行的 docker 鏡像,有 docker 在運行就說明我們的啟動腳本正常執行了~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM