gpt4 book ai didi

docker - 从多个主机共享 docker 卷?

转载 作者:行者123 更新时间:2023-12-05 04:06:15 25 4
gpt4 key购买 nike

https://nickjanetakis.com/blog/docker-tip-28-named-volumes-vs-path-based-volumes

似乎表明 named volumespath based volumes 都存储在 docker 主机(运行容器的地方)

假设我有 webnginx 服务。

我想我可以在一台主机上运行 web 服务,在另一台主机(两台不同的机器)上运行 nginx 。(虽然我才刚刚开始学习docker的基础,还需要很长时间才能把服务分给不同的主机)

有没有办法让 nginx 容器通过在两者之间共享卷来提供 web 服务拥有的静态文件?

最佳答案

Docker 还没有内置的基于软件的解决方案来跨多台机器共享卷。关于 infinit 的工作但他们还没有发布任何用于生产用途的东西。

您可以使用第 3 方存储解决方案。如果您使用的是云提供商,他们的解决方案通常最适合您的用例。对于自托管软件解决方案,您可以使用类似 glusterfs 的东西。自己处理数据复制的应用程序是容器的理想选择,例如蟑螂数据库。

典型的自托管解决方案是回退到 NFS。即使使用云提供商,我通常也使用他们的 NFS 方法来安装存储。在 docker 中,这看起来像下面这样:

  # create a reusable volume
$ docker volume create --driver local \
--opt type=nfs \
--opt o=nfsvers=4,addr=192.168.1.1,rw \
--opt device=:/path/to/dir \
foo

# or from the docker run command
$ docker run -it --rm \
--mount type=volume,dst=/container/path,volume-driver=local,volume-opt=type=nfs,\"volume-opt=o=nfsvers=4,addr=192.168.1.1\",volume-opt=device=:/host/path \
foo

# or to create a service
$ docker service create \
--mount type=volume,dst=/container/path,volume-driver=local,volume-opt=type=nfs,\"volume-opt=o=nfsvers=4,addr=192.168.1.1\",volume-opt=device=:/host/path \
foo

# or inside a docker-compose file
...
volumes:
nfs-data:
driver: local
driver_opts:
type: nfs
o: nfsvers=4,addr=192.168.1.1,rw
device: ":/path/to/dir"
...

请注意,只要保持 nfs 的类型,其中每个 IP 地址都可以是主机名。

关于docker - 从多个主机共享 docker 卷?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50076644/

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