问题标签 [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 - 将文件添加到 bluemix 卷
我是 docker 和 bluemix 的新手,正在尝试在 bluemix 上部署我的应用程序。我想在卷中添加应用程序配置文件,以便所有容器都可以读取相同的配置文件。
我在这里遵循了 bluemix 给出的所有步骤 - https://console.ng.bluemix.net/docs/containers/container_volumes_mount.html
这些是我执行的命令 -
现在不是将文件复制到 xyz 目录,而是将文件的内容复制到一个名为“xyz”的新文件中。
我究竟做错了什么?
如何将文件复制到卷以及如何检查容器是否能够读取卷中的文件?
添加 -
我在运行实例后运行 df 命令并给了我以下输出(没有安装卷)-
添加了更多 -
我想我找到了问题所在——
更多信息
cf ic 卷 fs-list
Dockerfile
docker - 在主机更改时自动同步容器中的数据
是否有可能在主机和容器之间有一个“实时同步”的卷?我的意思是Node.js
在主机上有一个应用程序/项目,然后运行一个node.js
容器,该容器将获取项目,然后每当我更改项目中的文件时 - 它会立即在容器中更新,而无需重新启动容器,以便复制卷。
目前,我在提升容器时将源代码复制到容器的卷中:
但是,如您所见,每次我希望将更改从主机更新到容器时,我都需要重新启动容器。
如果可能的话,您能否提供一个如何在 docker-compose 中编写它的示例,也许还提供一个指向相应文档的链接?
docker - 如何删除 swarm 集群中的卷?
我有一个带有一个管理器和另一个普通节点的群集群,当我创建一个群服务时,我正在使用挂载类型、挂载源和挂载目标创建。它在管理器和节点中创建具有相同名称的卷并启动容器并且我的服务已启动。
当我发布服务时,与服务一起创建的卷没有被删除,这仍然很好。
我面临的问题是,当我删除具有相同端点的卷时,它只是删除了集群管理器中的卷,创建服务时在节点中创建的卷仍然存在。
我希望经理删除与 swarm 服务一起创建的所有卷。有办法吗??
mongodb - 无法使用 docker 命令启动 mongo,但可以使用容器内的 /bin/bash(带有数据量)
这docker-compose.yml
:
导致此错误(剪断):
同上只是尝试直接使用该图像在容器中运行命令:
但是,如果我/bin/bash
在启动容器时运行,然后启动mongo
,我们就可以了:
根据输出,差异似乎是在第二种情况下,该命令以 root 身份运行。
所以,我的问题是:
- 为什么该
/bin/bash
方法有效,而其他方法无效? - 我怎样才能在 docker-compose 中复制这个原因?
注意:在 OSX 上,因为这似乎会影响您是否可以将主机目录挂载为卷供 Mongo 使用 - 而不是我正在这样做。
docker - 如何在 docker compose 中将主机目录挂载为卷
我有一个正在 dockerizing 的开发环境,我希望能够实时重新加载我的更改,而无需重建 docker 映像。我正在使用 docker compose,因为 redis 是我的应用程序的依赖项之一,我喜欢能够链接 redis 容器
我在我的定义了两个容器docker-compose.yml
:
我已经在我node
的应用程序的 dockerfile 中添加了一个卷,但是如何将主机的目录挂载到卷中,以便我对代码的所有实时编辑都反映在容器中?
这是我当前的 Dockerfile:
我的项目如下所示:
docker - Kubernetes 填充基础镜像
Docker 支持命名卷,并且这些卷在挂载时会填充基本映像内容。
对于 K8s,我也需要相同的内容,即我需要一个 pod 将使用基本映像的内容填充一个卷。
K8s 和 PVC 有可能吗?
elasticsearch - Docker Swarm:如何在同一卷上设置多个容器
我正在使用启用 swarm 的 Docker 1.12.2 build bb80604
我有
- 具有 2 个领导者和 3 个从属节点的 swarm 集群。
- 从节点和领导节点上的每个命名卷。
- Elistacsearch 在 2 个主服务器上运行
卷创建命令
docker volume create -d local-persist -o mountpoint=/data/docker/swarm/elasticsearch --name esvolume
现在,当我运行 docker service create 命令创建 5 个 Elasticsearch 副本时,3 个节点启动(每个从属服务器上 1 个),而其余 2 个副本失败
失败的错误是
引起:java.lang.IllegalStateException:获取节点锁失败,试过[[/var/lib/elasticsearch/swarmescluster]]带锁 ID [0];也许这些位置不可写或在没有增加 [node.max_local_storage_nodes] 的情况下启动了多个节点(原为 [1])?在 org.elasticsearch.env.NodeEnvironment.(NodeEnvironment.java:259) ~[elasticsearch-5.0.0.jar:5.0.0] 在 org.elasticsearch.node.Node.(Node.java:240) ~[elasticsearch- 5.0.0.jar:5.0.0] 在 org.elasticsearch.node.Node.(Node.java:220) ~[elasticsearch-5.0.0.jar:5.0.0] 在 org.elasticsearch.bootstrap.Bootstrap $5。 (Bootstrap.java:191) ~[elasticsearch-5.0.0.jar:5.0.0] at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:191) ~[elasticsearch-5.0.0.jar:5.0. 0] 在 org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:286) ~[elasticsearch-5.0.0.jar:5.0.0]
问题
- 如何配置副本以写入相同的路径或动态路径(我需要持久数据)
- 如果我想在创建副本时设置“node.max_local_storage_nodes”的值,我如何在运行时执行它?
docker - Docker 数据/命名卷
我试图围绕 Docker 卷来思考,但我必须缺少一些东西才能理解它。
假设我有一个 Python 应用程序,需要根据 env 变量进行一些初始化。我想要实现的是拥有一个“仅代码图像”,我可以从中启动将在执行时安装的容器。然后Main 容器的入口点脚本将从Code only 容器中读取并生成一些文件。
我试图创建一个图像以获得代码的副本
然后docker create --name code_volume
并使用 docker-compose:
我从应用程序容器中收到一个错误,说它在 /usr/local/code/app/src 中找不到文件,但是当我使用 bash 运行 code_volume 然后 ls 进入文件夹时,文件就在那里......
我尝试更改访问权限,添加 /bin/true (在某些示例中看到它),但我无法获得我想要的工作。我检查了该docker volume create
功能,但它似乎是用于存储/共享数据之后
我错过了什么?是否在安装卷之前执行入口点脚本?对于这种不涉及安装文件夹并为每个容器保留一份副本的情况,是否有任何最佳实践?我应该重新考虑我的容器吗?
docker - 备份有状态的 docker 卷
有许多容器将附加到 docker 套接字、枚举卷并备份内容,但是我如何将其与可能正在编写或假定它具有对文件的独占访问权限的容器一起编排(s)?我正在考虑 SQL Server 或 Minecraft 或其他有状态的数据存储,它们可能会以不可预知的方式定期流入数据。是否有从 docker 卷中获取事务一致数据进行备份的策略?或者有没有办法告诉一个容器在备份操作期间暂停/停止另一个容器?