是否有可能在同一台机器上启动多个docker守护进程
如果可能的话,你将如何configuration每个守护进程 – graphics位置,图像位置等?
是的,即使没有Docker Machine,也可以在单个主机上运行两个Docker守护进程。 从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
,如果你没有使用默认值,你必须手动创build和configuration网桥(Docker不会为你创build/pipe理)。 下面更多细节。 -
--exec-root=/var/run/docker
是存储容器状态的地方。 -
--graph=/var/lib/docker
是存储图像的地方。 -
--host=[]
指定Docker守护进程将侦听客户端连接的位置。 如果未指定,则默认为/var/run/docker.sock
。 -
--pidfile=/var/run/docker.pid
是守护进程的进程ID存储位置。
所以,只要你的两个守护进程为这些标志使用不同的值,你可以在同一个主机上运行它们。 示例脚本(包括networking设置):
#!/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机器来实现
使用这个,你可以创build多个docker守护进程并在它们之间切换。
- 重新启动后,Akka actor不会重新连接到远程Actor
- Traefik作为Docker容器与主机networking的代理
- 在使用azure色驱动程序创build实例期间,“打开:没有这样的文件或目录”
- 如何build立一个运行MySQL的Docker容器?
- 谷歌/ cadvisor:最新的图像监视器容器运行错误
- 你可以通过Dockerfile来回答xampp的linux安装问题
- 从Docker容器(没有Filebeat)发送日志到ELK容器
- “群集模式”中的Docker 1.12是否提供“单个虚拟Docker主机”?
- 无法将使用docker run的命令行parameter passing给Shell脚本文件