我有一个v3的撰写文件,其中有3个服务共享/使用相同的卷.在使用swarm模式时,我们需要创建额外的容器和卷来管理整个群集中的服务.
我打算使用NFS服务器,以便将单个NFS共享直接挂载到群集中的所有主机上.
我在下面找到了两种方法,但它需要在docker主机上执行额外的步骤 -
在主机上使用"fstab"或"mount"命令挂载NFS共享,然后将其用作docker服务的主机卷.
使用Netshare插件 - https://github.com/ContainX/docker-volume-netshare
有没有一种标准的方法,我可以使用docker compose v3直接使用/挂载NFS共享,只需执行少量/无步骤(我知道无论如何都需要"nfs-common"包)在docker主机上?
我有一个运行 Ceph 的测试节点,其中大约 10TB 的数据存储在 CephFS 文件系统中。我想让 CephFS 文件中的某些子路径可用于 Docker 容器,在那里它可以通过 NFS 和 SMB 共享。
osds、mons 和 mds' 在同一节点上运行,这会禁止在 fstab 中安装 CephFS。
我还能如何将 CephFS 文件系统的子路径挂载到容器中?
我正在使用在Windows 10上创建的docker(docker用于linux).
此外,使用docker-compose(版本3.4)将docker之外的卷映射到docker容器中.
我在另一台计算机上有一个共享文件夹,我想在docker中使用它.
我检查该文件夹的访问权限,我可以从Docker正在运行的计算机上访问它.
// ip_addr中/ shared_folder
在docker-compose中,我写道:
volumes:
- //1.2.3.4/my_folder:my_docker_folder
Run Code Online (Sandbox Code Playgroud)
我发现了网络声明的一些语法.我不知道我该怎么写?
volumes:
- /my_folder:my_docker_folder
networks:
frontend:
ipv4_address: 1.2.3.4
Run Code Online (Sandbox Code Playgroud)
并且ip 1.2.3.4是my_folder的ip?
...但是这种语法可能不正确,或者我应该运行一些命令来正确共享文件夹.
如何将其他计算机共享文件夹映射到docker.
我尝试了几件事,也映射了一个符号链接.
我正在尝试在Windows 10中创建一个符号链接并将其附加到docker,但这对我没有太大帮助,因为我遇到异常.
在Windows命令行中我做了:
mklink /D c:\test_ext \\ip\shared_folder
Run Code Online (Sandbox Code Playgroud)
当运行docker时(我有docker社区版本18.06.1-ce-win73(19507) - linux容器).
在命令行中,我试图运行alpine(这也发生在基于linux映像的其他docker上):
docker run -i -t -vc:\ test_ext:/ data:rw alpine/bin/sh我收到错误:
搬运工:从守护程序错误响应:误差而创建安装源路径 '/ host_mnt/C/test_ext':MKDIR/host_mnt/C/test_ext:文件是否存在.
这只发生在外部IP上.
我看到的是,文件夹+子文件夹+文件是以完全权限共享的.
我尝试了一些解决方法,例如:docker volumes prune,但这没什么用处.
为什么会出现错误消息,我该如何解决?
我发现了一个可能有帮助的替代方案:
docker volume create \
--driver local \
--opt type=nfs \
--opt o=addr=ip_address,rw \
--opt device=:/myfolder
my_volume
Run Code Online (Sandbox Code Playgroud)
这也没有解决问题(语法错误).
谢谢.
我正在尝试在 EC2 服务器上运行的 docker 容器内安装 EFS。EC2 中的 EFS 挂载工作正常,
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport <efs-address>:/ efs
Run Code Online (Sandbox Code Playgroud)
但是当在 docker 容器中尝试时,它给出了错误“mount.nfs4:不允许操作”。请让我知道如何实现这一目标。