问题标签 [docker-volume]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ubuntu - Docker 容器卷不写入主机
嗨,我尝试在 docker 容器中生成一些资产并将其放到主机上。所有在使用 virtualbox 驱动程序初始化的 docker-machine 环境中运行的东西。
例如我运行:
接着
从那时起,我实际上必须dummy.txt
在主机的$PWD/testfolder
文件夹中查看,但其中既没有文件夹testfolder也没有dummy.txt(逻辑上)。
奇怪的是,相同的设置在 MacOSX 上工作正常并在主机端创建文件,但是当我尝试它时 Ubuntu:14.04 它停止工作。这里都是inspect
容器
- MacOSX 主机:https ://gist.github.com/zavalit/65e8a260866f834223616c1b59e4ce7d
- Ubuntu:14.04 主机: https ://gist.github.com/zavalit/40bd3ce8629ad81fcd6793ca63f99491
据我所知,它们都完全相同。
它尝试使用 docker-machine 版本 0.7.0-rc2 和 0.6.0,docker 版本是 1.10.3
有没有人经历过,类似的事情?我非常感谢任何可能的小费。谢谢。
apache - 如何更改共享 docker 卷的 umask?
我正在尝试设置一堆应该能够到rw
docroot 的 apache-php 容器,以及一个也应该能够到rw
同一目录的 sftp 容器。因此,计划是创建一个共享卷,并将其安装在两个容器中(对于 sftp 容器,显然是在不同的位置)。我修改了官方的 php:7-apache 启动脚本,如下所示:
事实上,这两条umask
线证实了夹层umask 0002
运行正确。但是,当我bash
进入容器并自己测试时,umask
返回022
,如果我创建任何文件,它们实际上会获得权限644
。然后我可以手动umask 0002
创建任何具有权限664
(和775
目录)的新文件。
对于这个用例,两个容器(sftp 和 apache)都可以在共享卷中读写是至关重要的。那么,我该怎么做呢?
docker - Docker 卷挂载不存在
我在 OS X 上运行 Docker 1.11,并试图找出我的本地卷的写入位置。我通过运行创建了一个 Docker 卷docker volume create --name mysql
。然后我跑了docker volume inspect mysql
,它输出以下内容:
这个问题/mnt/sda1/var/lib/docker/volumes/mysql/_data
实际上并不存在于我的机器上。我想也许问题是它实际上并没有被创建,直到它被容器使用,所以我通过运行启动了一个容器docker run --name mysql -v mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysql -P -d mysql:5.7
,然后在 MySQL 中创建了一个数据库,但挂载点仍然不存在。我什至跑来docker inspect mysql
确保它使用正确的音量并得到以下信息:
在这一点上,我完全不知道数据的写入位置。我错过了什么?
docker - docker volume - 谁覆盖了谁 - docker 内的文件还是外部的现有文件?
假设我在 docker 中有文件 solr.xml,并且父文件夹映射到外部的主机文件夹。
现在 solr.xml 已更新,我删除容器并重新安装新图像并启动新容器 - 我看到已经存在的“旧”文件没有被覆盖。
这不是预期的行为吗?最佳做法是什么?我不想开始处理“删除”卷,因为那里有客户创建的文件......
顺便说一句 - 映射是通过 docker 卷容器完成的
docker - 当卷端点不在驱动器 C 上时,Docker 容器看不到 Windows 卷上的文件:
我想在我的工作过程中使用 docker 镜像。例如,我想使用 larryprice/sass 将我的 SASS 文件编译为 CSS。这张图很简单:
我正在使用 Windows 10、Docker 1.11 和 VirtualBox 5.0.16。
我的项目文件放在工作 SSD 上,映射到逻辑驱动器 D - D:\Projects\Foo\Bar\web\sass
所以,我的问题如下:当我从驱动器 D 将卷附加到容器时:(通过 $PWD 或通过 MINGW 样式 /D/Projects/Foo/Bar/web/sass 的完整路径)例如
容器看不到任何 SASS 文件:
但是当我从系统磁盘(C :) 挂载一个卷时,一切正常:
如何从 Windows 中需要的任何位置挂载卷?或者在我的情况下我做错了什么?
ps 在路径中添加前导斜杠也不起作用:
java - 为什么我需要运行 docker 特权才能访问主机 log4j2.yaml
我在 centos 7 主机中有一个 centos 7 映像。我的入口点使用 -Dlog4j.configurationFile=file:/opt/foo/bar/log4j2.yaml 我使用 -v 开关来共享 /home/fooser/log4j2.yaml:/opt/foo/bar/log4j2.yaml 当我刚刚使用 --cap-add SYS_ADMIN (我需要 samba 访问权限),log4j 无法访问它的配置文件;但是,如果我使用 --privileged,一切正常。我知道我必须需要一个额外的能力,但不知道它会是什么。
docker - docker run creating a new data volume for each run
I would like to persist some configuration data from a container and am following the tutorial on data volumes.
I'm successfully running the app with:
Where -v /app/config
is the directory inside the container that contains the config that should survive a container restart.
Also the result of running the container creates a volume in /var/lib/docker/volumes
.
However, if I kill the container and rerun it no data is persisted and a new volume is created in /var/lib/docker/volumes
:
I would expect that these would be the steps for persisting, am I missing something here?
docker - 使用 -v 挂载 VOLUME 时文件不可用
我有一个 Docker Image,它有一个 VOLUME ["/log"]。
在运行容器时,我正在安装主机上存在的文件夹。
我希望 docker 在 VOLUME ["/log"] 上写入的所有日志都可供主机使用。
日志没有被 hostlogfolder 写入
但是日志在 docker 中的位置 /log 中可用
挂载文件夹的正确方法是什么?
nginx - Docker 的容器挂载文件夹
我是 Docker 新手,我正在尝试简单地启动一个 nginx 应用程序。
为此,我有这个 DockerFile:
我的文件夹是这样组织的:
启动容器的命令:
但是容器停止了,我在日志中收到了这条消息:
我知道日志很清楚,但我不知道为什么它不起作用。
谢谢。
docker - 主机上的 docker 卷应该在哪里?
在主机端,所有挂载点都应该位于同一位置吗?或者它们应该反映容器内的位置?
例如,/var/jenkins_home
为了与其 Unix 文件系统保持一致,在主机端挂载的最佳位置是什么?
/var/jenkins_home
/srv/jenkins_home
/opt/docker-volumes/jenkins/var/jenkins_home
- 其他地方 ?