天天看點

docker 開機自啟服務

今天玩了一天,主要是在做docker的測試環境,一台centos7 24核 96G記憶體 2T的伺服器

對于docker的玩法沒有任何的定義,一千個人有一千種玩法,隻是有些事最優的。今天發現以前的可能有點low。

    以前的想法是 官方或者自己yum安裝出一個鏡像,然後 docker run -it --restart=awlays centos  /bin/bash開終端進入玩,完全是虛拟機的想法,沒有什麼不對的,隻是有些局限性:

    每次重新開機的時候容器都會執行/bin/bash沒什麼卵用,隻是打開一個shell,沒有真正的去重新開機服務,是以每次都要去将基礎的服務啟動(當然理論上容器裡面隻放一個服務),我的想法是寫一個腳本,docker服務重新開機的時候去執行(裡面是一些docker exec指令),這沒有什麼不對的。

    也經常看機器上跑的其他人的容器,感覺不太一樣 我的容器啟動指令都是/bin/bash 其他人的是很多奇葩的東西。  今天理科了後面的指令是每次容器啟動的時候執行的指令,是以可以寫成腳本的形式,這樣就能做到容器啟動服務也啟動。高端的玩法。。。這樣無論以後這個容器跑了多少服務都在一個start.sh 的腳本中寫着啟動項。  隻需要維護這個腳本就行了。

具體做法:

原來

docker run -it --restart=always --name=test01 --hostname=test01 -p 22001:22 f03c13002608 /bin/bash

現在

docker run -it --restart=always --name=test01 --hostname=test01  -p 22001:22 f03c13002608 /start.sh

最基礎的start.sh

#! /bin/bash

/usr/sbin/sshd -D

由于這裡是做測試機 必須考慮可用性,測試人員能夠登入機器

注意最後一條指令一定是能夠持續運作的,不能放背景,不然你可以試試。。。。

本文轉自    憬薇   51CTO部落格,原文連結:http://blog.51cto.com/welcomeweb/1732663