当前位置: 首页 > 面试题库 >

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

汝跃
2023-03-14
问题内容

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


问题答案:

是的,即使没有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 │
└───────────────┴─────────────┘


 类似资料:
  • 问题内容: 我已经在ubuntu 14.04上安装了docker,它告诉我安装成功。然后我进入,它返回了 我进入了 我尝试了和,得到了相同的答复: 我不知道为什么它返回了这个,我尝试使用来拉ubuntu 并得到了 请告诉我如何解决此问题,如何拉出并运行docker image。和是一样的吗? 问题答案: 您需要将当前用户添加到组中,如下所示: 另外,您可以使用以下环境变量: 然后重新启动系统。正如

  • 是否可以从本机windows容器中启动本机windows同级容器?所以我不是说docker中的docker。 与linux上类似:

  • 主要内容:1 配置Tomcat服务器的多个实例很多时候,我们遇到需要修改服务器配置以使其适应应用程序的情况。如果我们有多个应用程序,并且希望每个应用程序都有自己定义的配置选项,那么需要怎么配置呢?在本教程中,我将讨论为每个应用程序使用不同的Tomcat实例。 1 配置Tomcat服务器的多个实例 我正在使用Windows机器,您将使用Windows格式的路径。但是创建多个实例的过程在所有其他操作系统中都是相同的。另外,我假设您要创建2个新的t

  • 在Windows上,我总是能够毫无问题地构建Docker图像。 如原始文档https://docs.docker.com/config/daemon/systemd/中所述,键入将导致以下错误:

  • 问题内容: 我有一个M5000 Sparc服务器,上面已经安装了solaris Os版本11.3()。可以在这台机器上安装docker- ce吗?我已经测试了一些解决方法,例如使用(开源泊坞窗),但是没有一个可以解决。在sparc系统上进行dockerization的解决方案是什么? 问题答案: 当前在Solaris上不支持Docker。Oracle针对Solaris的容器解决方案一直是Oracl

  • 问题内容: 我正在尝试运行Docker命令,但标题中遇到通知错误。我尝试跑步: 但仍然出现错误。有什么办法吗? 问题答案: 如何启动守护程序 应该可以。 要么