Tag:

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

我正在使用Docker(1.3.1)在容器中构buildRPM: docker run -v /home/matt/build:/build build-rpm /build/build-pkg.sh 这工作正常(我的用户在docker组,所以我不需要sudo),并在当前目录中删除一个完整的.rpm文件。 问题是该文件被创build为拥有的根。 我如何安排它,以便该文件被创build拥有同一个用户,我运行docker?

装入泊坞窗主机卷,但用容器的内容覆盖

有几篇文章对于理解Docker的卷和数据pipe理非常有帮助。 这两个特别好: http://container-solutions.com/understanding-volumes-docker/ http://www.alexecollins.com/docker-persistence/ 但是,我不确定是否讨论了我正在寻找的内容。 这是我的理解: 当运行docker run -v /host/something:/container/something ,主机文件将覆盖(但不覆盖)指定位置的容器文件。 该容器将不再有权访问该位置的以前的文件,而只能访问该位置的主机文件。 在Dockerfile中定义一个卷时,其他容器可能会共享由图像/容器创build的内容。 主机也可以查看/修改一个Dockerfile卷,但只有在使用docker inspect发现真正的挂载点之后。 (通常是/var/lib/docker/vfs/dir/cde167197ccc3e138a14f1a4f7c…. )。 但是,当Docker必须在Virtualbox虚拟机内部运行时,这是多余的。 我的问题很简单。 如何反转叠加,以便在装入卷时,容器文件优先于我的主机文件? 我想指定一个可以轻松访问容器文件系统的挂载点。 但似乎没有人问这个问题。 我知道我可以使用一个数据容器,或者我可以使用docker inspect来查找挂载点,但在这种情况下解决scheme都不是一个好的解决scheme。

在Mac上的Docker机器:在Docker主机/ docker-machine上无法看到已安装的卷? 卷的物理存储位置在哪里?

我在一台Macbook Pro笔记本电脑上运行docker-machine(0.5.0)和docker-compose(1.5.0)来运行我的容器。 这意味着我使用docker-machine来创build我的virtualbox boot2docker驱动的HOST机器,它将运行我的docker守护进程并托pipe所有的容器。 我想我错过了关于HOSTS和VOLUME的概念,因为它们涉及到Docker和文档。 这是我的docker-compose.yml文件(网站只是build立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" Docker撰写卷的文件文档在这里: http : //docs.docker.com/compose/compose-file/ 它声明了卷 – 将path装载为卷,可选地在主机(HOST:CONTAINER)上指定path,或者访问模式(HOST:CONTAINER:ro)。 在这种情况下,主机是指由我的虚拟机创build的docker-machine,是否正确? 或者我的本地macbook文件系统? 在我的虚拟机上安装一个path到一个容器? 在networking下我声明: […]

Docker组成命名卷:在主机上查找卷

我有一个docker-compose.yml: version: '2' services: db: image: mysql:5.7 volumes: – db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: wordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: – db image: wordpress:latest ports: – "8000:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_PASSWORD: wordpress volumes: db_data: 当我运行这个docker-compose up -d ,然后执行docker inspect -f '{{ (index .Mounts 0).Source }}' ef8be254a08b为正在运行的db容器获取指定主机上卷位置的Source ,我总是得到“没有这样的文件或目录”,如果我的目录( ls /var/lib/docker/volumes/test_db_data/_data: No […]

两个docker集装箱需要从彼此的卷

Docker:往复卷 我创build了两个运行2个不同应用程序的容器。 容器A公开了2个目录:/ opt / appA和/ home / userA / runtime。 两者都需要被容器B引用(-volumes-来自A)。 B反过来应该公开容器A需要的volume / home / userB / runtime(–volumes-from B)。 问:如何做到这一点? 因为当我开始/运行容器'A'时,容器'B'还不存在(-volumes-from B不起作用),反之亦然。 有没有办法呢?

从Docker数据卷中挂载一个文件到Docker中

我正在尝试使用“docker run”从容器中的Docker卷装载单个文件。 我已经能够将整个卷挂载为一个目录,例如: docker run -v my_volume:/root/volume my_container 我也从物理机器上挂载了单个文件,例如: docker run -v /usr/local/bin/docker:/usr/local/bin/docker 有没有办法?

Docker:更改存放泊坞窗卷的文件夹

在我的Ubuntu EC2我使用docker容器托pipe一个应用程序。 db数据和upload数据被存储在使用这个命令创buildCaseBook-data-db和CaseBook-data-uploads中: docker volume create –name=CaseBook-data-db docker volume create –name=CaseBook-data-uploads 通过docker-compose文件附加卷: version: '2' services: mongo: container_name: "CaseBook-db" restart: always image: mongo:3.2.7 ports: – "27017" volumes: – data_db:/data/db labels: – "ENVIRONMENT_TYPE=meteor" app: container_name: "CaseBook-app" restart: always image: "meteor/casebook" build: . depends_on: – mongo environment: – MONGO_URL=mongodb://mongo:27017/CaseBook ports: – "80:3000" volumes: – data_uploads:/Meteor-CaseBook-Container/.uploads labels: – "ENVIRONMENT_TYPE=meteor" […]