gpt4 book ai didi

docker - 是否可以在同一台机器上启动多个 docker 守护进程

转载 作者:IT老高 更新时间:2023-10-28 12:38:26 26 4
gpt4 key购买 nike

如果可能,您将如何配置每个守护程序 - 图形位置、图像位置等?

最佳答案

是的,即使没有 Docker Machine,也完全可以在单个主机上运行两个 Docker 守护程序。从 Docker 18.09.0-ce 开始,如果两个守护进程使用默认值,以下 dockerd 标志可能会导致冲突:

  -b, --bridge string       Attach containers to a network bridge
--exec-root string Root directory for execution state files (default "/var/run/docker")
--data-root string Root directory of persistent Docker state (default "/var/lib/docker")
-H, --host list Daemon socket(s) to connect to
-p, --pidfile string Path to use for daemon PID file (default "/var/run/docker.pid")
  • --bridge的默认值是docker0,如果你不使用默认值,你必须手动创建和配置网桥(Docker赢了'不要为你创建/管理它)。更多详情如下。

  • --exec-root 是存储容器状态的地方(默认:/var/run/docker)。

  • --data-root 是存储图像的位置(默认:/var/lib/docker)。

  • --host 指定 Docker 守护程序将在何处监听客户端连接。如果未指定,则默认为 /var/run/docker.sock

  • --pidfile 是存储守护进程的进程ID的地方(默认:/var/run/docker.pid)。

因此,只要您的两个守护程序对这些标志使用不同的值,您就可以在同一主机上运行它们。示例脚本(包括网络设置):

#!/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 ip link add name $bridge type bridge
sudo ip addr add ${net:-"10.20.30.1/24"} dev $bridge
sudo ip link set dev $bridge up
fi

sudo dockerd \
--bridge=$bridge \
--data-root=$base.data \
--exec-root=$base.exec \
--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 -i -t alpine sh
/ # echo hereiam
hereiam

更新了从 Docker 1.9.1 到 18.09.0-ce 的更改,以防有人使用非常旧的版本:

┌───────────────┬─────────────┐
│ 1.9.1 │ 18.09.0-ce │
├───────────────┼─────────────┤
│ docker daemon │ dockerd │
│ -g / --graph │ --exec-root │
└───────────────┴─────────────┘

关于docker - 是否可以在同一台机器上启动多个 docker 守护进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32334167/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com