Docker |安装卷导致错误
Docker | Mounting volumes causes error
我正在尝试设置一个 Docker 群,它将我的 3 个服务器连接在一起。群已设置好并转到 URL 我得到了相同的结果,这是完美的,正是我需要的。
但是,对于我现在工作的服务器,我在每台服务器上生成一个全局 nginx 以实现负载平衡。
服务器上会有多个配置文件,我需要这些文件才能将域映射到正确的文件夹,这是我卡住的部分 on/not 为我工作。
我有一个非常简单的 docker-compose.yml
因为我有 sh运行k 它是为了调试问题,它包含以下内容...
version: '3'
services:
nginx:
image: nginx:latest
volumes:
- /var/www/nginx/config/:/etc/nginx/conf.d/:ro
deploy:
mode: global
音量返回时出现错误 "invalid mount config for type "bind": bind source path does not exist"
很明显,当我删除音量线时它工作得很好,但是我 100% 需要这条线。
我可以,在服务器内部完美导航到 /var/www/nginx/config/
并且我的配置文件存在于其中。与另一个相同,如果我 运行 docker exec -it <container> /bin/bash
并导航到 /etc/nginx/conf.d
我可以很好地到达那里,这就是我在这里发帖的原因。
我查看了其他帖子并按照其他人所说的进行了修复,例如
- 在卷中添加引号
- 删除文件末尾的斜线
- 重启服务器
- 重启Docker
但似乎没有任何效果
潜在的问题可能是您的 swarm 集群中并非所有节点都创建了目录 (/var/www/nginx/config/
)。由于在 swarm 中服务可以放置在任何可用节点中(除非你设置了约束)你可能会看到这个错误。
确保在所有 3 个节点中都创建了此目录。
此外,您还可以查看 here 以定义配置。
我正在尝试设置一个 Docker 群,它将我的 3 个服务器连接在一起。群已设置好并转到 URL 我得到了相同的结果,这是完美的,正是我需要的。
但是,对于我现在工作的服务器,我在每台服务器上生成一个全局 nginx 以实现负载平衡。
服务器上会有多个配置文件,我需要这些文件才能将域映射到正确的文件夹,这是我卡住的部分 on/not 为我工作。
我有一个非常简单的 docker-compose.yml
因为我有 sh运行k 它是为了调试问题,它包含以下内容...
version: '3'
services:
nginx:
image: nginx:latest
volumes:
- /var/www/nginx/config/:/etc/nginx/conf.d/:ro
deploy:
mode: global
音量返回时出现错误 "invalid mount config for type "bind": bind source path does not exist"
很明显,当我删除音量线时它工作得很好,但是我 100% 需要这条线。
我可以,在服务器内部完美导航到 /var/www/nginx/config/
并且我的配置文件存在于其中。与另一个相同,如果我 运行 docker exec -it <container> /bin/bash
并导航到 /etc/nginx/conf.d
我可以很好地到达那里,这就是我在这里发帖的原因。
我查看了其他帖子并按照其他人所说的进行了修复,例如
- 在卷中添加引号
- 删除文件末尾的斜线
- 重启服务器
- 重启Docker
但似乎没有任何效果
潜在的问题可能是您的 swarm 集群中并非所有节点都创建了目录 (/var/www/nginx/config/
)。由于在 swarm 中服务可以放置在任何可用节点中(除非你设置了约束)你可能会看到这个错误。
确保在所有 3 个节点中都创建了此目录。
此外,您还可以查看 here 以定义配置。