今天玩了一天,主要是在做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