2016-07-26 21 views
6

Tôi đã có một docker-compose.yml như thế này:khối lượng Mounted rỗng bên trong chứa

db: 
    image: mongo:latest 
    ports: 
    - "27017:27017" 
server: 
    image: artificial/docker-sails:stable-pm2 
    command: sails lift 
    volumes: 
    - server/:/server 
    ports: 
    - "1337:1337" 
    links: 
    - db 

server/ là tương đối so với thư mục của tập tin docker-compose.yml. Tuy nhiên, khi tôi docker exec -it CONTAINERID /bin/bash và kiểm tra /server nó trống.

Tôi đang làm gì sai?

Trả lời

6

Hãy thử sử dụng:

volumes: 
    - ./server:/server 

thay vìserver/ - có một số trường hợp Docker không thích dấu gạch chéo.

+0

đây thực sự là giải pháp cho vấn đề, cảm ơn :) – Hedge

4

Theo tài liệu khối lượng Docker,

https://docs.docker.com/engine/tutorials/dockervolumes/#/mount-a-host-directory-as-a-data-volume

Host-dir có thể là một đường dẫn tuyệt đối hoặc một giá trị tên. Nếu bạn cung cấp đường dẫn tuyệt đối cho thư mục lưu trữ, Docker gắn kết với đường dẫn bạn chỉ định. Nếu bạn cung cấp một cái tên, Docker tạo ra một tên khối lượng tên đó

+2

Ngoài ra, điều này có thể gây nhầm lẫn khi cố gắng gắn kết một thư mục bằng cách sử dụng đường dẫn tương đối vào vùng chứa giống như 'docker run -v myDir:/containerdir ... 'bởi vì nó sẽ âm thầm tạo một volume docker (như tham chiếu trong câu trả lời) có tên myDir và liên kết nó, nhưng nó sẽ không làm cho nội dung của myDir có sẵn trong vùng chứa. Trong trường hợp này, sử dụng đường dẫn tuyệt đối hoạt động, ví dụ: 'docker run --volume $ (pwd)/myDir:/containerdir ...' –

Các vấn đề liên quan