标签: volumes

docker在主机上安装卷

我已经成功地能够在使用卷的docker容器之间共享文件夹

docker run -v /host/path:/container/path ...
Run Code Online (Sandbox Code Playgroud)

但我的问题是这与使用VOLUMEDockerfile中的命令有什么区别

VOLUME /path
Run Code Online (Sandbox Code Playgroud)

我正在使用一个有VOLUME命令的图像,我想知道如何与我的主机共享它.我使用-v上面的命令完成了它,但我不知道我是否需要-vVOLUME.

volumes mount-point docker

123
推荐指数
5
解决办法
15万
查看次数

使用Docker Compose将文件复制到容器

我有一个Dockerfile地方,我将现有目录(含内容)复制到容器,工作正常:

Dockerfile

FROM php:7.0-apache
COPY Frontend/ /var/www/html/aw3somevideo/
COPY Frontend/ /var/www/html/

RUN ls -al /var/www/html
RUN chown -R www-data:www-data /var/www/html 
RUN chmod -R 755 /var/www/html 
Run Code Online (Sandbox Code Playgroud)

使用docker exec的目录列表的屏幕截图

但是,当我使用docker-compose.yml文件时,只有目录aw3somevideo,里面aw3somevideo没有任何内容.

docker-compose.yml:

 php:
    build: php/
    volumes:
      - ./Frontend/ :/var/www/html/
      - ./Frontend/index.php :/var/www/html/
    ports:
      - 8100:80
Run Code Online (Sandbox Code Playgroud)

空目录列表的屏幕截图

也许我不明白它的功能,volumes如果是这种情况,请告诉我如何通过docker-compose.yml文件将现有文件复制到容器中.

copy volumes docker docker-compose

62
推荐指数
3
解决办法
12万
查看次数

复制 docker 卷

我想更新一些容器。为了进行测试,我想创建相应卷的副本。为这个新卷设置一个新容器。

这有那么容易吗cp -r volumeOld volumeNew

或者我必须注意什么?

volumes docker

38
推荐指数
3
解决办法
5万
查看次数

使用docker-compose删除命名卷?

如果我有一个docker-compose文件,例如:

version: "3"
services:
  postgres:
    image: postgres:9.4
    volumes:
      - db-data:/var/lib/db
volumes:
  db-data:
Run Code Online (Sandbox Code Playgroud)

...然后docker-compose up创建一个命名的卷db-data.有没有办法通过docker-compose?删除此卷?如果它是一个匿名卷,那么docker-compose rm -v postgres就可以了.但就目前而言,我不知道如何在db-data不恢复docker命令的情况下移除卷.感觉这应该可以在docker-composeCLI中实现.我错过了什么吗?

volumes docker docker-compose

32
推荐指数
4
解决办法
1万
查看次数

如何仅使用docker-compose.yml创建数据容器?

这个问题来自Docker的存储库中的一个问题:
https //github.com/docker/compose/issues/942

我无法弄清楚如何使用docker compose创建数据容器(没有进程正在运行).

volumes docker docker-compose

30
推荐指数
1
解决办法
2万
查看次数

Docker在已安装的卷中以root身份创建文件

我正在使用Docker(1.3.1)在容器内构建RPM:

docker run -v /home/matt/build:/build build-rpm /build/build-pkg.sh
Run Code Online (Sandbox Code Playgroud)

这工作正常(我的用户在docker组中,因此我不需要sudo)并.rpm在当前目录中删除已完成的文件.问题是该文件是由root拥有的.

我如何安排它,以便创建文件由我运行docker的同一用户拥有?

volumes docker file-ownership

28
推荐指数
2
解决办法
2万
查看次数

为什么docker有docker卷和容器容器

为什么docker有docker卷和容器容器?它们之间的主要区别是什么.我已经通过docker docs阅读了但是却无法理解它.

mount volumes docker

14
推荐指数
1
解决办法
4566
查看次数

Docker - 无法在现有文件上挂载卷,文件存在

我正在尝试在Docker中为我的应用程序构建一个数据容器.我运行此命令以显示一些卷:

docker run --name svenv.nl-data -v /etc/environment -v /etc/ssl/certs -v /var/lib/mysql -d svenv/svenv.nl-data
Run Code Online (Sandbox Code Playgroud)

问题是我从这个命令得到这个错误:

Error response from daemon: cannot mount volume over existing file, file exists /var/lib/docker/aufs/mnt/aefa66cf55357e2e1e4f84c2d4d2d03fa2375c8900fe3c0e1e6bc02f13e54d05/etc/environment
Run Code Online (Sandbox Code Playgroud)

如果我正确理解Docker文档.支持为单个文件创建卷.所以我不明白为什么我会收到这个错误.

有人可以向我解释这个吗?我在Ubuntu 14.04上运行Docker 1.9.1.

ubuntu volumes docker

13
推荐指数
2
解决办法
2万
查看次数

Mac上的Docker Machine:在docker主机/ docker-machine上看不到挂载的卷?卷物理存储在哪里?

我在Macbook Pro笔记本电脑上运行docker-machine(0.5.0)docker-compose(1.5.0)来让我的容器运行.

这意味着我正在使用docker-machine来创建我的虚拟机boot2docker驱动的HOST机器,它将运行我的docker守护程序并托管我的所有容器.

我想我缺少一些关于HOSTS和VOLUME概念的东西,因为它们指的是Docker和文档.

这是我的docker-compose.yml文件(web只是构建了php:5.6-apache图像):

web:
  restart: "always"
  build: ./docker-containers/web
  ports:
    - "8080:80"
  volumes:
    - ./src:/var/www/html
  links:
    - mysql:mysql

mysql:
  restart: "always"
  image: mysql:5.7
  volumes_from:
    - data
  ports:
    - "3306:3306"
  environment:
    - MYSQL_ROOT_PASSWORD=XXX

data:
  restart: "no"
  image: mysql:5.7
  volumes:
    - /var/lib/mysql
  command: "true" 
Run Code Online (Sandbox Code Playgroud)

Docker撰写卷的文件文档在这里:http://docs.docker.com/compose/compose-file/

它表示卷 - 将路径挂载为卷,可选择指定主机上的路径(HOST:CONTAINER),或访问模式(HOST:CONTAINER:ro).

在这种情况下主机是指我的由docker-machine创建的VM,对吗?还是我的本地macbook文件系统?将VM上的路径挂载到容器?

网上我声明:

volumes:
  - ./src:/var/www/html
Run Code Online (Sandbox Code Playgroud)

这是将我的macbook pro上的本地macbook文件系统./src文件夹映射到我的Web容器.如果我的理解是正确的,不应该将我的VM上的./src文件夹映射到Web容器中的/ var/www/html吗?!从理论上讲,我认为我应该首先将我的本地mac文件系统文件夹./src复制到我的VM,然后我做这个卷声明.似乎docker-compose一下子神奇地做了所有这一切?困惑

最后,我们可以看到我正在创建一个仅限数据的容器来保存我的mysql数据.我宣布:

volumes:
   - /var/lib/mysql …
Run Code Online (Sandbox Code Playgroud)

mysql volumes docker docker-compose docker-machine

11
推荐指数
1
解决办法
3952
查看次数

通过 docker compose 重新使用现有卷

我设置了两个独立的 docker 容器,一个运行网络服务器,另一个运行 mysql。现在我正试图让它与 docker-compose 一起工作。一切都很好,运行良好,但我想知道如何重新使用我之前创建的现有独立容器中的现有卷(因为我想保留它们中的数据)。

我看到有人建议为此使用external: true命令,但到目前为止无法获得正确的语法。

external: true是正确的方法,还是我应该以不同的方式处理?或者我可以在 docker-compose.yml 中指定卷的路径并使其使用旧的现有卷吗?

volumes docker docker-compose

11
推荐指数
2
解决办法
8925
查看次数