Bạn đang cố gắn một thư mục vào một tệp (hoặc ngược lại)?


92

Tôi có một docker với phiên bản 17.06.0-ce. Khi tôi cố gắng cài đặt NGINX bằng docker bằng lệnh:

docker run -p 80:80 -p 8080:8080 --name nginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx:latest

Nó cho thấy rằng

docker: Lỗi phản hồi từ daemon: lỗi thời gian chạy oci: container_linux.go: 262: bắt đầu quá trình vùng chứa gây ra "process_linux.go: 339: container init gây ra \" rootfs_linux.go: 57: mounting \\ "/ appdata / nginx / conf / nginx.conf \\ "để rootfs \\ "/ var / lib / Docker / aufs / mnt / dcea22444e9ffda114593b18fc8b574adfada06947385aedc2ac09f199188fa0 \\" tại \\" / var / lib / Docker / aufs / mnt / dcea22444e9ffda114593b18fc8b574adfada06947385aedc2ac09f199188fa0 / etc / nginx / nginx.conf \\ "gây ra \\" không phải là thư mục \\ "\" ": Bạn đang cố gắn một thư mục vào một tệp (hoặc ngược lại)? Kiểm tra xem đường dẫn máy chủ được chỉ định có tồn tại không và có phải là loại mong đợi hay không.

Nếu không gắn kết nginx.conftập tin, mọi thứ vẫn ổn. Vì vậy, làm thế nào tôi có thể gắn kết tệp cấu hình?


Đầu ra của là ls -al .gì? Muốn xem cô gái của bạn trông như thế nào.
Trí Nguyễn

1
Trong trường hợp của tôi, tôi đã vô tình ánh xạ một thư mục từ máy chủ tới một tệp trong vùng chứa. Khởi động lại vùng chứa không hoạt động nữa. Tôi phải xóa vùng chứa ( docker rm …), sau đó tạo lại nó.
slhck

Câu trả lời:


26

Bởi vì docker sẽ nhận dạng $PWD/conf/nginx.conflà một thư mục chứ không phải dưới dạng tệp. Kiểm tra xem $PWD/conf/thư mục có chứa nginx.confdưới dạng thư mục không .

Kiểm tra với

> cat $PWD/conf/nginx.conf 
cat: nginx.conf/: Is a directory

Nếu không, hãy mở sự cố Docker .
Nó hoạt động tốt đối với tôi với cùng một cấu hình.


Là một người dùng Linux trung cấp, tôi rất tò mò, lý do gì để Linux nhận ra đó là một thư mục chứ không phải một tệp?
J. Scott Elblein

Bởi vì nó thực sự là một thư mục. Nếu tệp không tồn tại, docker hãy tạo một thư mục vì đối số khối lượng-v
Mathieu Lescaudron

ok, vì vậy Linux chỉ công nhận nó là một thư mục nếu docker phải tạo nó do đường dẫn không tồn tại trước đó; nhưng nếu nginx.conftrước đó đã tồn tại ở đường dẫn đó thì Linux sẽ nhận ra nó là một tệp, phải không?
J. Scott Elblein

138

Điều này sẽ không còn xảy ra (kể từ v2.2.0.0), hãy xem tại đây


Nếu bạn đang sử dụng Docker cho Windows , lỗi này có thể xảy ra nếu gần đây bạn đã thay đổi mật khẩu của mình.

Làm thế nào để khắc phục:

  1. Trước tiên, hãy đảm bảo xóa ổ đĩa của vùng chứa bị hỏng
    docker rm -v <container_name>
    Cập nhật: Các bước bên dưới có thể hoạt động mà không cần xóa ổ đĩa trước.
  2. Mở Cài đặt Docker
  3. Chuyển đến tab "Bộ nhớ dùng chung"
  4. Nhấp vào liên kết "Đặt lại thông tin đăng nhập ..." ở cuối cửa sổ
  5. Chia sẻ lại các ổ đĩa bạn muốn sử dụng với Docker
  • Bạn sẽ được nhắc nhập tên người dùng / mật khẩu của mình
  1. Nhấp vào "Áp dụng"
  2. Chuyển đến tab "Đặt lại"
  3. Nhấp vào "Khởi động lại Docker"
  4. Tạo lại vùng chứa / khối lượng của bạn

Tín dụng được chuyển đến BaranOrnarli trên GitHub cho giải pháp.


2
Cảm ơn! Nó hoạt động cho tôi bắt đầu từ bước thứ hai và tránh bước cuối cùng.
Mateo Hermosilla

1
Tôi đã có thể khắc phục sự cố bằng cách bắt đầu từ bước 2 và cũng bỏ qua bước cuối cùng. Tôi không phải phá hủy các thùng chứa / khối lượng để gắn kết lại.
Christian Engel

Tôi đồng ý với @MateoHermosilla, nó doesnt cần phải dete container, chỉ "Đặt lại Credentials"
sintetico82

Tôi gặp lỗi tương tự khi cố gắng chạy proxy-deploy.sh trong khi cài đặt sandbox-proxy (hadoop). Sau soln này. đã không sửa chữa nó.
Vaibhav

2
Đây là vấn đề đối với tôi. Mật khẩu được đặt lại vài tháng một lần, vì vậy tôi tiếp tục quên đặt lại thông tin đăng nhập Bộ nhớ dùng chung trong Docker.
Anders Tornblad

41

TL; DR : Xóa các ổ được liên kết với vùng chứa.

Tìm tên vùng chứa bằng cách sử dụng, docker ps -asau đó xóa vùng chứa đó bằng cách sử dụng:

docker rm -v <container_name>

Vấn đề:

Lỗi bạn đang gặp phải có thể xảy ra nếu trước đó bạn đã thử chạy docker runlệnh trong khi tệp không có ở vị trí mà lẽ ra nó phải ở trong thư mục máy chủ.

Trong trường hợp này, daemon docker sẽ tạo một thư mục bên trong vùng chứa ở vị trí của nó, thư mục này sau đó không ánh xạ đến tệp thích hợp khi các tệp chính xác được đưa vào thư mục máy chủ và lệnh docker được chạy lại.

Giải pháp:

Xóa các ổ được liên kết với vùng chứa. Nếu bạn không lo lắng về thể tích thùng chứa khác, bạn cũng có thể sử dụng:

docker volume rm $(docker volume ls -q)

Lệnh trong câu hỏi ban đầu chỉ liệt kê các khối lượng máy chủ lưu trữ đang được sử dụng. Các docker volumelệnh / giao diện chỉ dành cho ẩn danh và tên khối lượng, mà không phải là một phần của câu hỏi ban đầu.
lập trình

@programmerq Hãy xem lỗi, nó cho biết rằng mount đã bị lỗi khi nó cố gắng mount tại mục Suy /var/lib/docker/aufs/mnt/dcea22444e9ffda114593b18fc8b574adfada06947385aedc2ac09f199188fa0\\\"luận của tôi: Nó đã có một thư mục do một lần chạy trước đó, vì vậy nếu bạn cố gắng ánh xạ một tệp vào thư mục đó, nó sẽ không thành công.
Ayushya,

Ở đây có hai điều có thể đã xảy ra sai, máy chủ lưu trữ có thứ gì đó sai hoặc ổ đĩa đã tạo có thứ gì đó không chính xác. Giả sử máy chủ lưu trữ là chính xác, tôi nghĩ sẽ tốt hơn nếu giải quyết các vấn đề với khối lượng hiện có.
Ayushya

1
Đây thực sự là một câu trả lời hợp lệ cho thời điểm vùng chứa đã được liên kết với một ổ đĩa và loại ổ đĩa đó sẽ được thay đổi trong lần chạy tiếp theo. Vì vậy, loại bỏ âm lượng có thể hữu ích!
Yan Foto

1
Điều này rất hữu ích. Vấn đề trong trường hợp của tôi thực sự là tôi vẫn còn xác định các vùng chứa cũ. Sử dụng docker rm để cắt chúng và sau đó thực hiện việc biên soạn docker hoạt động bình thường.
Max Tardiveau

7

Câu trả lời cho những người sử dụng Hộp công cụ Docker

Đã có ít nhất 3 câu trả lời ở đây liên quan đến vấn đề, nhưng không giải thích đúng và không đưa ra giải pháp đầy đủ. Đây chỉ là một vấn đề gắn kết thư mục .

Mô tả vấn đề:

Hộp công cụ Docker bỏ qua yêu cầu Hyper-V của Docker bằng cách tạo một máy ảo (trong VirtualBox, đi kèm). Docker được cài đặt và chạy bên trong máy ảo. Để Docker hoạt động bình thường, nó cần phải có quyền truy cập từ máy chủ. Mà ở đây nó không.

Sau khi tôi cài đặt Hộp công cụ Docker, nó đã tạo Máy ảo VirtualBox và chỉ được gắn C:\Usersvào máy, như \c\Users\. Dự án của tôi C:\projectskhông ở đâu trên ổ đĩa được gắn kết. Khi tôi gửi đường dẫn đến máy ảo, nó sẽ không tồn tại, vì C:\projectskhông được gắn kết. Do đó, lỗi trên.

Giả sử tôi có dự án chứa cấu hình ngnix của tôi trong C:/projects/project_name/

Khắc phục nó:

  1. Đi tới VirtualBox, nhấp chuột phải vào Mặc định (máy ảo từ Docker)> Cài đặt> Thư mục được chia sẻ nhập mô tả hình ảnh ở đây

  2. Nhấp vào biểu tượng nhỏ có dấu cộng ở bên phải, Thêm chia sẻ mới. Tôi đã sử dụng các cài đặt sau:

nhập mô tả hình ảnh ở đây

  1. Ở trên sẽ ánh xạ C:\projectstới /projects( ROOT/projects) trong VM, nghĩa là bây giờ bạn có thể tham chiếu bất kỳ đường dẫn nào trong các dự án như thế này: /projects/project_name- bởi vì project_namefrom C:\projects\project_namebây giờ đã được gắn kết.

Để sử dụng đường dẫn tương đối, vui lòng xem xét đặt tên đường dẫn c/projectskhôngprojects

  1. Khởi động lại mọi thứ và bây giờ nó sẽ hoạt động bình thường. Tôi đã dừng máy ảo theo cách thủ công trong VirtualBox và khởi động lại CLI Hộp công cụ Docker.

Trong tệp docker của tôi, bây giờ tôi tham chiếu nginx.confnhư sau:

volumes:
    - /projects/project_name/docker_config/nginx/nginx.conf:/etc/nginx/conf.d/default.conf

Nơi nginx.conf thực sự cư trú C:\projects\project_name\docker_config\nginx\nginx.conf


7

Lời giải thích được đưa ra bởi @Ayushya là lý do khiến tôi gặp phải thông báo lỗi hơi khó hiểu này và việc dọn dẹp nhà cần thiết có thể được thực hiện dễ dàng như sau:

$ docker container prune
$ docker volume prune

6

Tôi đã từng gặp vấn đề tương tự. Tôi đang sử dụng Docker Desktop với WSL trong Windows 10 17.09.

Nguyên nhân của vấn đề:

Vấn đề là Docker cho Windows mong bạn cung cấp đường dẫn khối lượng của mình ở định dạng phù hợp với điều này:

/c/Users/username/app

NHƯNG, WSL thay vào đó sử dụng định dạng:

/mnt/c/Users/username/app

Điều này thật khó hiểu vì khi kiểm tra tệp trong bảng điều khiển, tôi đã thấy nó và đối với tôi mọi thứ đều chính xác. Tôi không biết về kỳ vọng của Docker cho Windows về đường dẫn khối lượng .

Giải pháp cho vấn đề:

Tôi đã liên kết các điểm gắn kết tùy chỉnh để khắc phục sự khác biệt của Docker cho Windows và WSL:

sudo mount --bind /mnt/c /c

Giống như đề xuất trong hướng dẫn tuyệt vời này: Thiết lập Docker cho Windows và WSL để hoạt động hoàn hảo và mọi thứ hiện đang hoạt động hoàn hảo.

Trước khi bắt đầu sử dụng WSL, tôi đã sử dụng Git Bash và tôi cũng gặp sự cố này.


1
Xem thêm chi tiết ở đây: github.com/10up/wp-local-docker/issues/...
nbeuchat

4

Tôi đang sử dụng Docker ToolBox cho Windows. Theo mặc định C Drive được gắn kết tự động, vì vậy để gắn kết các tệp, hãy đảm bảo các tệp và thư mục của bạn nằm trong C DRIVE .

Thí dụ: C:\Users\%USERNAME%\Desktop


1
thư mục được gắn kết của tôi là C: \ x-suite \; Tôi đã chia sẻ ổ C của mình , nhưng vẫn chưa giải quyết được sự cố của mình
袁文涛

bạn có đang sử dụng Docker ToolBox không?
Abhishek DK

minikube + virtualBox + docker ToolBox, localkube không được dùng nữa, tôi nên sử dụng trình điều khiển nào?
袁文涛

nếu bạn đang gắn kết từ Dockercompose, hãy sử dụng $ {pwd} / <path>
Abhishek DK

1
nếu bạn đang làm trong Dockerfile, thì hãy sử dụng VOLUME / c / x-suite
Abhishek DK

2

Có lẽ ai đó thấy điều này hữu ích. Tệp soạn của tôi đã được gắn ổ đĩa sau

./file:/dir/file

Vì ./file không tồn tại, nó được gắn vào ABC (theo mặc định là thư mục).

Trong trường hợp của tôi, tôi có một vùng chứa được tạo ra từ

docker commit ABC cool_image

Sau đó, khi tôi tạo ./file và chạy docker-compose up, tôi gặp lỗi:

[...] Bạn đang cố gắn một thư mục vào một tệp (hoặc ngược lại)? Kiểm tra xem đường dẫn máy chủ được chỉ định có tồn tại không và có phải là loại dự kiến ​​hay không.

Vùng chứa được hiển thị từ cool_imagenhớ rằng đó /dir/filelà một thư mục và nó xung đột với được tạo và gắn kết gần đây ./file.

Giải pháp là:

touch ./file
docker run abc_image --name ABC -v ./file:/dir/file
# ... desired changes to ABC
docker commit ABC cool_image

Cảm ơn bạn, đây cũng là vấn đề của tôi vì tôi có một thiết lập Docker khá phức tạp!
rmcsharry

1

Trong Windows 10, tôi chỉ gặp lỗi này mà không thay đổi bất kỳ thứ gì trong docker-compose.ymltệp của tôi hoặc cấu hình Docker nói chung.

Trong trường hợp của tôi, tôi đang sử dụng VPN có chính sách tường lửa chặn cổng 445.

Sau khi ngắt kết nối khỏi VPN, sự cố sẽ biến mất.

Vì vậy, tôi khuyên bạn nên kiểm tra tường lửa của mình và không sử dụng proxy hoặc VPN khi chạy Docker Desktop.

Kiểm tra Docker cho windows - Quy tắc tường lửa cho bộ nhớ dùng chung để biết thêm chi tiết.

Tôi hy vọng điều này sẽ giúp một người khác.


1

Bạn có thể vui lòng sử dụng đường dẫn tuyệt đối / hoàn chỉnh thay vì $PWD/conf/nginx.conf? Sau đó, nó sẽ hoạt động.

EX:docker run --name nginx-container5 --rm  -v /home/sree/html/nginx.conf:/etc/nginx/nginx.conf -d -p 90:80 nginx
b9ead15988a93bf8593c013b6c27294d38a2a40f4ac75b1c1ee362de4723765b

root@sree-VirtualBox:/home/sree/html# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
b9ead15988a9        nginx               "nginx -g 'daemon of…"   7 seconds ago       Up 6 seconds        0.0.0.0:90->80/tcp   nginx-container5
e2b195a691a4        nginx               "/bin/bash"              16 minutes ago      Up 16 minutes       0.0.0.0:80->80/tcp   test-nginx

nếu bạn thoát nó bằng dấu ngoặc kép: docker run -d --rm -v "$ PWD / nginx.conf: /etc/nginx/nginx.conf" nginx, nó sẽ không có gì khác biệt vì shell sẽ dịch nó trước khi chuyển nó để docker chạy và thực sự, nó không tạo ra sự khác biệt, ít nhất là đối với tôi
Manumie

1

Tôi đã gặp sự cố tương tự khi sử dụng Docker qua WSL1 trên Windows 10 với dòng lệnh này:

echo $PWD
/mnt/d/nginx

docker run --name nginx -d \
  -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
nginx

Tôi đã giải quyết nó bằng cách thay đổi đường dẫn cho tệp trên hệ thống máy chủ thành một đường dẫn tuyệt đối kiểu UNIX:

docker run --name nginx -d \
  -v /d/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
nginx

hoặc sử dụng đường dẫn tuyệt đối kiểu Windows với /thay vì \dưới dạng dấu phân cách đường dẫn:

docker run --name nginx -d \
  -v D:/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
nginx

Bạn có nhận thấy bất kỳ sự khác biệt nào về hiệu suất khi sử dụng đường dẫn kiểu Windows so với đường dẫn kiểu Unix không?
J. Scott Elblein

Tôi không thể nói. Tôi chỉ đang sử dụng Docker cho Windows để thử nghiệm / phát triển và chưa bao giờ theo dõi hiệu suất.
bwibo

0

Cập nhật Hộp ảo lên 6.0.10 đã khắc phục sự cố này cho Hộp công cụ Docker

https://github.com/docker/toolbox/issues/844

Tôi đã gặp phải loại lỗi này:


mlepisto@DESKTOP-VKJ76GO MINGW64 ~/G/Projects
$ touch resolv.conf

mlepisto@DESKTOP-VKJ76GO MINGW64 ~/G/Projects
$ docker run --rm -it -v $PWD/resolv.conf:/etc/resolv.conf ubuntu /bin/bash
C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:430: container init caused \"rootfs_linux.go:58: mounting \\\"/c/Users/mlepisto/G/Projects/resolv.conf\\\" to rootfs \\\"/mnt/sda1/var/lib/docker/overlay2/61eabcfe9ed7e4a87f40bcf93c2a7d320a5f96bf241b2cf694a064b46c11db3f/merged\\\" at \\\"/mnt/sda1/var/lib/docker/overlay2/61eabcfe9ed7e4a87f40bcf93c2a7d320a5f96bf241b2cf694a064b46c11db3f/merged/etc/resolv.conf\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.

# mounting to some other file name inside the container did work just fine
mlepisto@DESKTOP-VKJ76GO MINGW64 ~/G/Projects/
$ docker run --rm -it -v $PWD/resolv.conf:/etc/resolv2.conf ubuntu /bin/bash
root@a5020b4d6cc2:/# exit
exit

Sau khi cập nhật VitualBox, tất cả các lệnh đều hoạt động tốt 🎉


0

Cũng có đầu óc như vậy vì tôi không có tệp cục bộ nên nó đã tạo nó như một thư mục.

mimas@Anttis-MBP:~/random/dockerize/tube$ ls
Dockerfile
mimas@Anttis-MBP:~/random/dockerize/tube$ docker run --rm -v $(pwd)/logs.txt:/usr/app/logs.txt devopsdockeruh/first_volume_exercise
docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:430: container init caused \"rootfs_linux.go:58: mounting \\\"/Users/mimas/random/dockerize/tube/logs.txt\\\" to rootfs \\\"/var/lib/docker/overlay2/75891ea3688c58afb8f0fddcc977c78d0ac72334e4c88c80d7cdaa50624e688e/merged\\\" at \\\"/var/lib/docker/overlay2/75891ea3688c58afb8f0fddcc977c78d0ac72334e4c88c80d7cdaa50624e688e/merged/usr/app/logs.txt\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.
mimas@Anttis-MBP:~/random/dockerize/tube$ ls
Dockerfile  logs.txt/

0

không xác định: Bạn đang cố gắn một thư mục vào một tệp (hoặc ngược lại)? Kiểm tra xem đường dẫn máy chủ được chỉ định có tồn tại không và có phải là loại dự kiến ​​không

Tôi đã gặp lỗi tương tự trên niginx trong môi trường Mac. Docker không nhận dạng đúng tệp default.conf. Sau khi thay đổi đường dẫn tương đối thành đường dẫn tuyệt đối, lỗi đã được sửa.

      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf

0

Đối với tôi, điều này không hoạt động:

volumes:
  - ./:/var/www/html
  - ./nginx.conf:/etc/nginx/conf.d/site.conf

Nhưng điều này, hoạt động tốt (rõ ràng là đã di chuyển tệp cấu hình của tôi vào trong một thư mục mới:

volumes:
  - ./:/var/www/html
  - ./nginx/nginx.conf:/etc/nginx/conf.d/site.conf

0

Tôi sẽ chia sẻ trường hợp của mình ở đây vì điều này có thể tiết kiệm rất nhiều thời gian cho người khác trong tương lai.

Tôi đã có một trình soạn nhạc docker hoạt động hoàn hảo trên macos của mình, cho đến khi tôi bắt đầu sử dụng docker-in-docker trong Gitlab CI. Tôi chỉ được cấp quyền để làm việc với tư cách là Chính trong một kho lưu trữ và Gitlab CI do người khác tự lưu trữ và thiết lập và không có thông tin nào khác được chia sẻ, về cách thiết lập, v.v.

Điều sau gây ra sự cố:

volumes:
  - ./.docker/nginx/wordpress/wordpress.conf:/etc/nginx/conf.d/default.conf

Chỉ khi tôi nhận thấy rằng điều này có thể đang chạy dưới cửa sổ (hàng giờ đồng hồ vò đầu bứt tai), tôi đã thử đổi tên wodpress.conf thành default.conf và chỉ đặt tên đường dẫn dir:

volumes:
  - ./.docker/nginx/wordpress:/etc/nginx/conf.d

Điều này đã giải quyết vấn đề!


0

Tôi gặp sự cố này trong Windows 7 vì tệp dockerfile của tôi nằm trên ổ đĩa khác.

Đây là những gì tôi đã làm để khắc phục sự cố:

  1. Mở Trình quản lý VirtualBox
  2. Chọn vùng chứa "mặc định" và chỉnh sửa cài đặt.
  3. Chọn Thư mục được chia sẻ và nhấp vào biểu tượng để thêm một thư mục được chia sẻ mới
  4. Đường dẫn Thư mục: x: \
  5. Tên thư mục: / x
  6. Kiểm tra Tự động gắn kết và Đặt vĩnh viễn
  7. Khởi động lại máy ảo

Tại thời điểm này, docker-compose upnên làm việc.


0

Tôi gặp lỗi tương tự trên Windows10 sau khi cập nhật Docker: 2.3.0.2 (45183).

... gây ra \\\"not a directory\\\"\"":không xác định: Bạn đang cố gắn một thư mục vào một tệp (hoặc ngược lại)? Kiểm tra xem đường dẫn máy chủ được chỉ định có tồn tại không và có phải là loại dự kiến ​​không

Tôi đã sử dụng những con đường tuyệt đối như thế này //C/workspace/nginx/nginx.confvà mọi thứ hoạt động như một sự quyến rũ.
Bản cập nhật đã phá vỡ trình soạn thư của tôi và tôi phải thay đổi các đường dẫn thành /C/workspace/nginx/nginx.confbằng một đường dẫn duy nhất /cho gốc.


0

Lưu ý rằng tình huống này cũng sẽ xảy ra nếu bạn cố gắn một ổ đĩa từ máy chủ lưu trữ chưa được thêm vào phần Tài nguyên> Chia sẻ Tệp của Tùy chọn Docker.

nhập mô tả hình ảnh ở đây

Việc thêm đường dẫn gốc làm tài nguyên chia sẻ tệp bây giờ sẽ cho phép Docker truy cập tài nguyên để gắn nó vào vùng chứa. Lưu ý rằng bạn có thể cần xóa nội dung trên vùng chứa Docker của mình để cố gắng gắn lại ổ đĩa.

Ví dụ: nếu ứng dụng của bạn được đặt tại /mysites/myapp, bạn sẽ muốn thêm /mysiteslàm vị trí tài nguyên chia sẻ tệp.


0

Tôi cũng gặp phải vấn đề tương tự, docker-compos đang tạo một thư mục thay vì tệp, sau đó bị lỗi giữa chừng.

Tôi đã làm gì:

  1. Chạy vùng chứa mà không có bất kỳ ánh xạ nào.

  2. Sao chép .conftệp vào vị trí máy chủ:

    docker cp containername:/etc/nginx/nginx.conf ./nginx.conf

  3. Loại bỏ vùng chứa ( docker-compose down).

  4. Đặt lại bản đồ.

  5. Gắn lại thùng chứa.

Docker Compose sẽ tìm .conftệp và ánh xạ nó, thay vì cố gắng tạo một thư mục .


-2

Tôi đã giải quyết vấn đề gắn kết. Tôi đang sử dụng môi trường Win 7 và vấn đề tương tự đã xảy ra với tôi.

Bạn đang cố gắn một thư mục vào một tệp tin?

Vùng chứa có thư mục đồng bộ hóa mặc định tại C:\Users\, vì vậy tôi đã chuyển dự án của mình đến C:\Users\, sau đó tạo lại dự án. Bây giờ nó hoạt động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.