Tôi đang sử dụng docker-compose và v3. Tôi đang cố gắng để gắn kết một khối lượng trong Docker:Soạn thảo Docker - Chia sẻ khối lượng được đặt tên giữa nhiều vùng chứa
./appdata:/appdata
Tôi muốn có điều này như một khối lượng và sau đó tham khảo rằng khối lượng từ nhiều container. Chỉ volume configuration reference chỉ hiển thị data-volume:
là một tập có tên, không có giá trị, vì vậy nó không giống như ở trên.
services:
nginx:
build: ./nginx/
ports:
- 80:80
links:
- php
volumes:
- app-volume
php:
build: ./php/
expose:
- 9000
volumes:
- app-volume
volumes:
app-volume: ./appdata:/appdata
này mang lại cho tôi:
ERROR: In file './docker-compose.yml', volume 'app-volume' must be a mapping not a string.
Rõ ràng là tôi biết tôi cần phải thay đổi cặp volumes
chìa khóa/giá trị, nhưng tôi không chắc chắn cách để thay đổi điều này để tôi có thể chia sẻ một khối lượng giữa các dịch vụ.
Tôi cũng đã kiểm tra volumes_from
nhưng điều này có hiệu quả chỉ cho phép thừa kế từ các vùng chứa khác. Tôi đã thấy ai đó sử dụng volumes_from
trên một vùng chứa khác có chứa ánh xạ mà họ muốn, nhưng với command: true
được đặt để vùng chứa không bao giờ thực sự chạy, điều đó đối với tôi dường như chỉ là lỗi.
Tôi làm cách nào để thực hiện việc này?
Lưu ý, tôi làm có làm việc tiếp theo:
nginx:
volumes:
- ./appdata:/appdata
php:
volumes:
- ./appdata:/appdata
Nhưng đó chỉ là sự trùng lặp và là một cái gì đó tôi hy vọng một khối lượng được đặt tên có thể giúp tôi tránh :-)
Nhưng có hai địa điểm tôi sử dụng trong ví dụ của tôi, một địa chỉ lưu trữ và một vùng chứa. Ban đầu nó trông như thế này: '- ./appdata:/appdata' nhưng với giải pháp của bạn, tôi chỉ có thể thấy một trong những giá trị này? – Jimbo
Cả hai thùng chứa đều có thể ghi vào ổ đĩa AFAIK.vì vậy nếu bạn phơi bày một thư mục từ một trong các vùng chứa của bạn vào khối lượng được đặt tên - nó có thể được nhìn thấy và ghi đè bởi vùng chứa khác và ngược lại. Nếu nó vẫn không rõ ràng - tôi sẽ dán mã ví dụ của tôi để thử giải thích nó tốt hơn – Kannaj
Nó phải là "câu trả lời đúng". –