从容器到主机docker的容量共享 – 组成

我试图在容器和主机之间共享数据。 所以我只是想做这个来存储容器文件。 数据必须从容器共享到主机。

我的docker-compose.yml

version: "3.3" services: django: image: python:slim volumes: - type: volume source: ./env target: /usr/local/lib/python3.6/site-packages volume: nocopy: true - ./src:/usr/src/app ports: - '80:80' working_dir: /usr/src/app command: bash -c "pip install -r requirements.txt && python manage.py runserver" 

当我运行docker时会抛出:

错误:对于Django无法创build容器的服务django:无效的绑定安装规范“/Users/gustavoopb/git/adv/env:/usr/local/lib/python3.6/site-packages:nocopy”:无效的卷规范:“ /Users/gustavoopb/git/adv/env:/usr/local/lib/python3.6/site-packages:nocopy':types为“bind”的无效装载configuration:字段不能指定VolumeOptions错误:遇到错误该项目。

https://docs.docker.com/compose/compose-file/#long-syntax-3

文档中指定的卷不在服务中使用,而是在服务外部指定。 尝试从卷中删除最后一行:

 volume: nocopy: true 

您正尝试使用绑定装入命名的卷语法。 我会把你的语法切换到:

 version: "3.3" services: django: image: python:slim volumes: - type: bind source: ./env target: /usr/local/lib/python3.6/site-packages - ./src:/usr/src/app ports: - '80:80' working_dir: /usr/src/app command: bash -c "pip install -r requirements.txt && python manage.py runserver" 

注意type的改变和缺lessnocopy选项。 不支持将映像中的文件复制到主机绑定,只有命名的卷才可用。

我的问题是保持pythonenv当我的容器发生故障。 为此,我需要将容器内的env共享给主机。 我试过docker文件的build议,但它不工作。

 volume: nocopy: true 

我的解决scheme:我创build一个指定的容器。

 version: "2" services: django: image: python:2.7 command: bash -c "pip install -r requirements.txt && python manage.py collectstatic --no-input && python manage.py migrate && python manage.py runserver 0.0.0.0:80" env_file: - .env volumes: - .:/app - env:/Library/Python/2.7/site-packages links: - database ports: - "8000:80" working_dir: /app volumes: env: