如何解决如果在卷中使用相对路径,docker 会为“bind”类型编写无效的挂载配置
我正在试验 Docker 和 Docker compose。我正在尝试创建一个带有卷的 PHP 容器。如果我对卷的路径进行硬编码,它就可以工作。如果我使用相对路径,我会收到错误:
来自守护进程的错误响应:类型“绑定”的安装配置无效:绑定 源路径不存在: /users/Daniel/Documents/Source/Docker/IFS-Stack/public_html/
目录结构:
.
|__users
|__Daniel
|__Documents
|__Source
|__Docker
|__IFS-Stack
|__docker-compose.yml
|__public_html
|__(content)
docker-compose.yml:
version: "3.7"
services:
php:
container_name: ifs-php
build: './php/'
networks:
- backend
volumes:
- ./public_html/:/var/www/html/
#THIS TOO FAILS - $PWD/public_html/:/var/www/html/
#THIS WORKS - /users/Daniel/Documents/Source/Docker/IFS-Stack/public_html/:/var/www/html/
我正在从 /users/Daniel/Documents/Source/Docker/IFS-Stack 运行 docker compose up
正如在其他线程中所建议的那样,我尝试了以下路径:
volumes:
- $PWD/public_html/:/var/www/html/
和(这就是我想要的):
volumes:
- ./public_html/:/var/www/html/
两者都会产生错误。但是如果我指定完整路径,它就可以工作
volumes:
- /users/Daniel/Documents/Source/Docker/IFS-Stack/public_html/:/var/www/html/
Docker 桌面,版本 3.3.1 (63152),引擎 20.10.5 MACOS 11.0.1(大苏尔)
Docker 信息
Client:
Context: default
Debug Mode: false
Plugins:
app: Docker App (Docker Inc.,v0.9.1-beta3)
buildx: Build with BuildKit (Docker Inc.,v0.5.1-docker)
scan: Docker Scan (Docker Inc.,v0.6.0)
Server:
Containers: 4
Running: 0
Paused: 0
Stopped: 4
Images: 15
Server Version: 20.10.5
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e
runc version: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
init version: de40ad0
Security Options:
seccomp
Profile: default
Kernel Version: 5.10.25-linuxkit
Operating System: Docker Desktop
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.942GiB
Name: docker-desktop
ID: RQFF:PHKO:5PNH:WXU7:AYMA:PKWN:V6HV:CGXM:JV4L:IKCH:IYV6:Y6O4
Docker Root Dir: /var/lib/docker
Debug Mode: false
HTTP Proxy: http.docker.internal:3128
HTTPS Proxy: http.docker.internal:3128
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
有什么建议吗?请注意,如果我从错误消息中复制路径并对其执行 ls
,我确实会获得目录内容,因此我不必担心特殊字符或大写。
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。