如果可能,您將如何配置每個守護進程 - 圖形位置,映像位置等?是否有可能在同一臺機器上啓動多個docker守護進程
回答
是的,即使沒有Docker Machine,也可以在單個主機上運行兩個Docker守護程序。由於碼頭工人1.9.1,下面docker daemon
標誌,可能導致衝突,如果兩個守護進程使用默認的那些:
-b, --bridge= Attach containers to a network bridge
--exec-root=/var/run/docker Root of the Docker execdriver
-g, --graph=/var/lib/docker Root of the Docker runtime
-H, --host=[] Daemon socket(s) to connect to
-p, --pidfile=/var/run/docker.pid Path to use for daemon PID file
爲
--bridge
默認爲docker0
,如果你不使用默認情況下,您必須手動創建和配置網橋(Docker不會爲您創建/管理它)。以下更多細節。--exec-root=/var/run/docker
是存儲容器狀態的地方。--graph=/var/lib/docker
是存儲圖像的地方。--host=[]
指定Docker守護進程將偵聽客戶端連接的位置。如果未指定,則默認爲/var/run/docker.sock
。--pidfile=/var/run/docker.pid
是存儲守護進程的進程ID的地方。
所以,只要你的兩個守護進程爲這些標誌使用不同的值,你可以在同一個主機上運行它們。示例腳本(包括網絡設置):
#!/bin/sh
## name: altdocker.sh
set -e -x
: ${bridge=altdocker}
: ${base=$HOME/$bridge}
# Set up bridge network:
if ! ip link show $bridge > /dev/null 2>&1
then
sudo brctl addbr $bridge
sudo ip addr add ${net:-"10.20.30.1/24"} dev $bridge
sudo ip link set dev $bridge up
fi
sudo docker daemon \
--bridge=$bridge \
--exec-root=$base.exec \
--graph=$base.graph \
--host=unix://$base.socket \
--pidfile=$base.pid
用法示例:
## in one terminal
$ env net=10.9.8.7/24 /bin/sh altdocker.sh
# ... log output ...
## in another terminal
$ docker -H unix://$HOME/altdocker.socket run --rm -it alpine sh
/# echo hereiam
hereiam
偉大的問題!可以在容器中啓動Docker守護進程。在那個容器中,你將能夠啓動更多的容器。這樣你可以在同一臺主機上運行不同設置的docker守護進程。
結帳該項目:https://github.com/jpetazzo/dind。它提供了一個包含Docker本身的Docker鏡像,就像你需要的一樣。
是的,這是通過使用Docker Machine
使用這個,你可以創建多個碼頭工人守護進程並根據需要在它們之間切換是可行的。
正是你將如何去這樣做?你必須爲你想要的每個碼頭引擎創建一個虛擬機,對吧? – babbata
- 1. 一臺機器上有多個sidekiq守護進程
- 2. 在Mac上使用docker。是否有可能使用docker-machine啓動docker守護進程並傳入參數?
- 3. Mac上的Docker:如何在機器重啓後自動重啓守護進程?
- 4. 通過Ansible啓動Docker守護進程
- 5. docker守護進程啓動使用ansible
- 6. Docker,無法連接到Docker守護進程。碼頭守護程序是否在該主機上運行?
- 7. 一個docker守護進程可以支持多少個docker容器?
- 8. 從PHP啓動一個守護進程
- 9. 是否可以只安裝docker cli而不是守護進程
- 10. 是否有可能將多個版本的Oracle.DataAccess.dll放在同一臺機器上?
- 11. Linux守護進程啓動
- 12. 使用守護進程啓動在Ubuntu 14.04上啓用Docker遠程API
- 13. Ubuntu docker羣集錯誤「docker:無法連接到Docker守護進程。docker守護進程是否在該主機上運行?」
- 14. 是否有可能在一臺主機上運行同一臺機器上的多個MySQL從站?
- 15. Ubuntu是否需要Docker機器,如果不是如何TCP一個Ubuntu docker守護進程?
- 16. Windows的Docker守護進程
- 17. 是否有可能在Amazon elasticbeanstalk上啓動特權Docker容器?
- 18. hadoop守護進程沒有啓動
- 19. 在docker中守護進程是否是最佳實踐?
- 20. Linux守護進程停止啓動 - 停止守護進程
- 21. 作爲守護進程的Docker容器
- 22. init進程是一個守護進程
- 23. 什麼是Vagrant配置器上的docker守護進程版本?
- 24. 守護進程線程是否也是守護進程線程啓動的線程?
- 25. 在mod_wsgi守護進程'重新啓動
- 26. 在MAC OSX中啓動守護進程
- 27. 如何在服務器啓動時啓動守護進程
- 28. 作爲其他用戶啓動Docker守護進程
- 29. boot2docker/docker-machine/Docker Toolbox上的Docker守護進程配置文件
- 30. Docker守護進程日誌在哪裏?
這工作真的很棒。但是,測試設置的命令無法按照您的設置進行操作。 'docker -H unix:// $ HOME/altdocker --rm -it alpine sh'應該是'docker -H unix://$HOME/altdocker.socket run --rm -it alpine sh'。 –
謝謝@dynamic_cast。從一個更大的腳本中提取。更正了這個例子。 – benizi