问题标签 [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.
docker - Dockerfile, persist data with VOLUME
Please bear with me as I learn my way around docker. I'm using v1.11.1
I am making a Dockerfile and would like to specify that a folder of the container should be persisted, this should only be persisted per user (computer running the container). I originally thought that including:
would be enough, but when I start my container with docker run -t -i myimage:latest bash
and manually add files in then exit
I expect to be able to find my files again. But when I run the image again (as per above) the added files are no longer there.
I've read around but answers seem either outdated in regards to the use of VOLUMES, or suggest things I would rather not do, which is:
- I don't want to use
-v
in the run command - I would rather not make a volume container (seems like overkill for my one tiny folder)
What is it that I'm doing wrong? Any help would be greatly appreciated.
Cheers guys.
Update: I can persist data using a named volume ie: docker run -v name:/path/to/persist -t -i myimage:latest bash
But building with a Dockerfile that contains VOLUME name:/path/to/persist
does not work.
docker - docker 容器更改后 WSO2 丢失 API
我在使用 WSO2 API Manager 2.0.0 时遇到了另一个问题:我已经使用三个容器(一个用于 APIM,一个用于 Analytics,一个用于 MySQL)将它安装在 docker 中,并且我用我的自定义版本替换了一些配置文件(例如 DB,服务器名称,网关设置...)。APIM 和 Analytics 都配置为将数据保存在 MySQL 容器中,我能够看到数据库中的更改。
问题是重建容器后,我在发布者和商店中都找不到我的 API。数据库中的更改仍然存在,我可以看到我所有 API 的统计信息,如果我尝试使用相同的名称或上下文创建新的 API,我会收到错误消息,但在新构建后存储始终为空。
我还尝试将两者都/repository/deployment/server/synapse-config/default
放在/repository/tenants/
两个卷中,我可以看到/.../default/api/
为我的 API 创建的文件,但我无法找出问题所在。我应该保留一些指南中未提及的附加目录吗?
如果可能的话,我不想将整个 APIM 和 Analytics 主页放在一起。
docker - Docker 上的 RabbitMQ:使用 erlang cookie 时权限被拒绝
我使用 Kitematic 来管理我的容器。我在 docker 上运行 rabbitmq,它正在运行。问题是当我配置它的音量时。每当我为其卷设置本地文件夹(在 Kitematic 中)时,它都会停止、启动并打印以下错误:
我该如何解决这个问题?
docker - 如何将多个文件复制到 docker 数据卷中
这听起来可能微不足道,但我找不到一种简单的方法将多个文件复制到 docker 卷的根文件夹中。我正在使用 Ubuntu Xenial 16.04和Docker 1.12.1。例如,如果我有一个带有卷/my_data的 Ubuntu 容器:
在我的主机中,我有一个名为/tmp/my_data/的文件夹,其中包含多个文件,我想将所有这些文件复制到 my_container 中的卷/ my_data中。我尝试了以下方法,但它们都不起作用:
有人知道解决此问题的方法吗?
docker - 如何使用配置数据制作 docker 容器的多个副本?
我有一个正在运行的docker
容器。JIRA
我已成功配置JIRA
正确的工作流程/字段。我现在想为此创建一个docker
图像,以便我可以传播此配置的多个副本(是的,这里有一个许可问题,正在其他地方解决)。
我知道要持久化我需要创建一个data
container
. 但我不希望我的所有实例都使用相同的数据量 - 我只希望我的图像包含该数据。但我不太确定如何做到这一点。
我的想法如下:
- 创建与我的
docker
容器关联的数据卷。 - 配置一切
- Docker 提交 (?)
- 在新系统上创建一个新的数据卷
- 加载在步骤 3 中创建的图像
这会实现我的目标吗?
docker - Docker compose:是否可以将本地文件挂载到远程守护进程?
使用场景是这样的:
我有一个已经使用docker-machine预置的 AWS EC2 实例。
我想使用docker-compose在该 EC2 实例上远程启动一些容器。
compose 文件有这样的部分:
如果我docker-compose up -d
在本地使用,它会起作用,因为“ /home/ubuntu/nginx.tmpl ”文件存在于我的本地机器上。
但是,如果我尝试使用docker-compose来控制 AWS 中的远程守护程序,如下所示:
它会失败,因为远程机器中不存在“ /home/ubuntu/nginx.tmpl ”文件。
我试过在远程机器同目录下创建这样一个文件,可以,但是感觉不对……
将本地文件挂载到远程 docker 守护进程的更好方法是什么?
docker - 从图像中删除卷
当我docker-compose
使用 some创建一个容器volumes
然后提交该容器时,volumes
docker-compose 文件中的 也将被提交。有没有办法不提交映像中的卷?
使用以下命令只能添加卷但不能删除它们:
谢谢你。
docker - 如何删除 docker 镜像中的配置卷
我docker run -it -v /xx1 -v /xx2 [image] /bin/bash
用来创建一个容器。
然后提交镜像并推送到 docker hub。
采用docker inspect [image]
Volumes
细节是
现在我想删除/xx1
这张图片中的音量。
我该怎么办?
php - 如何使用 docker-compose 初始化跨多个容器共享的命名卷
我正在尝试使用 docker-compose 构建自己的 wordpress-nginx-php_fpm 堆栈,但我遇到了命名卷及其初始化的问题。
这是我的 docker-compose.yml:
如您所见,我有 2 个命名卷。“wp-db”没有问题,因为它只与“db”服务一起使用。
我的问题是安装在 2 个服务中的“wp-files”卷(=容器)
- 哪个服务会先将其数据复制到命名卷?
- 第二个容器会覆盖第一个容器放置的数据吗?
- 如何在某处“初始化”命名卷并仅在安装它的 2 个容器之后使用它?我听说有一个“nocopy”标志。
- 我是否必须使用其他东西(如数据容器)而不是命名卷?
谢谢你。注意:(一切都在同一个物理主机上)
docker - docker run -v 还是 Dockerfile VOLUME 优先?
Dockerfile
观察
现在我相信我理解VOLUME
在创建之前声明语句的含义test.txt
- 在运行时暴露的卷/var/tmp
将基于test.txt
创建文件之前的中间容器,因此它将是空的(希望这个观察是正确的)
因此,正如预期的那样,以下内容docker run
没有显示test.txt
:
docker run kz/test-volume:0.1
但后来我尝试在运行时提供卷,如下所示:
docker run -v /var/tmp kz/test-volume:0.1
问题
结果是一样的。那么这是什么意思?docker run 命令中的 是否映射到 Dockerfile中命令公开-v /var/tmp
的空/var/tmp
目录,而不是最新映像中的目录?VOLUME
/var/tmp
test.txt
感觉有点迷茫。