本节介绍如何在单个主机上运行多个Docker守护程序。要运行多个守护程序,必须配置每个守护程序,以使其与同一主机上的其他守护程序不冲突。您可以通过将其提供为标志或使用守护程序配置文件来设置这些选项。
必须为每个守护程序配置以下守护程序选项:
-b, --bridge= 将容器附加到一个网络的桥接
--exec-root=/var/run/docker 存储容器状态的路径
--data-root=/var/lib/docker 存储持久性数据的路径
-p, --pidfile=/var/run/docker.pid 为守护进程的PID文件路径使用
-H, --host=[] 守护进程socket连接
--iptables=true 守护程序添加iptables规则
--config-file=/etc/docker/daemon.json 守护进程配置文件的存储路径
--tlscacert="~/.docker/ca.pem" 只有这个CA信任证书签署
--tlscert="~/.docker/cert.pem" TLS证书文件
--tlskey="~/.docker/key.pem" TLS密钥文件
当守护程序对这些标志使用不同的值时,您可以在同一主机上运行它们而不会出现任何问题。正确理解这些选项的含义并正确使用它们非常重要。
该-b, --bridge=标志设置docker0为默认桥接网络。它在安装Docker时自动创建。如果不使用默认值,则必须手动创建和配置网桥,或者将其设置为“ none”:--bridge=none
--exec-root是存储容器状态的路径。默认值为/var/run/docker。在此处指定正在运行的守护程序的路径。
--data-root是存储持久性数据(例如图像,卷和群集状态)的路径。默认值为/var/lib/docker。为了避免与其他守护程序发生任何冲突,请分别为每个守护程序设置此参数。
-p, --pidfile=/var/run/docker.pid是守护进程的进程ID的存储路径。在此处指定您的pid文件的路径。
--host=[]指定Docker守护程序将在何处侦听客户端连接。如果未指定,则默认为/var/run/docker.sock。
--iptables=false阻止Docker守护程序添加iptables规则。如果多个守护程序管理iptables规则,则它们可能会覆盖另一个守护程序设置的规则。请注意,禁用此选项需要您手动添加iptables规则以公开容器端口。如果您阻止Docker添加iptables规则,即使您将Docker设置--ip-masq为,Docker也不会添加IP伪装规则 true。如果没有IP伪装规则,则使用默认网桥以外的网络时,Docker容器将无法连接到外部主机或互联网。
--config-file=/etc/docker/daemon.json是配置文件的存储路径。您可以使用它代替守护程序标志。指定每个守护程序的路径。
--tls*Docker守护程序支持--tlsverify强制执行加密和认证的远程连接的模式。这些--tls*选项允许对单个守护程序使用特定的证书。