首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个容器的体积相同

多个容器的体积相同
EN

Stack Overflow用户
提问于 2018-01-17 12:42:08
回答 2查看 2.7K关注 0票数 1

目前,我正在执行一个任务,需要创建4-5个不同的docker containers。现在的问题是,所有这些容器都应该使用安装在容器中的相同的卷

我正在使用单个Dockerfile构建映像,然后使用这些映像运行容器。最好的方法是在VOLUME中使用Dockerfile,但我不知道如何确切地使用它。

以下是Dockerfile的代码片段-

代码语言:javascript
复制
FROM [imagename]

WORKDIR \app

VOLUME \app\[container's folder]  #this folder is separate for each container. eg. VOLUME \app\sql

COPY shell.sh \app\[container's folder]\shell.sh

.
.
rest of code

在运行容器并猛击到它之后,对于特定的容器,文件被存储在特定的路径中;例如。与上面的片段一样,shell.sh存在于路径\app\[container's name]中。

但是,当我签入另一个容器时,我能够在特定路径中看到该容器的文件,但不能看到第一个容器的文件。

这就是我想要的结构-

代码语言:javascript
复制
app
|- sql
|   |- shell-script files
|- tsdb
|   |- shell-script files
|- kernel
|   |- shell-script files
.
.

OR

/app/sql/shellsql.sh
/app/tsdb/shelltsdb.sh
/app/kernel/shellkernel.sh
EN

回答 2

Stack Overflow用户

发布于 2018-01-17 14:24:41

您有以下容器的卷

代码语言:javascript
复制
VOLUME /app/container1
代码语言:javascript
复制
VOLUME /app/container2
代码语言:javascript
复制
VOLUME /app/container3

分享卷的方式就是这样。从命令行创建3个卷:

码头容量创建vol1停靠库卷创建vol2停靠库卷创建vol3

在运行每个容器时,挂载所有卷

代码语言:javascript
复制
docker run -v vol1:/app/container1 -v vol2:/app/container2 -v vol3:/app/container3 <image1>
docker run -v vol1:/app/container1 -v vol2:/app/container2 -v vol3:/app/container3 <image2>
...
票数 1
EN

Stack Overflow用户

发布于 2018-01-17 16:04:14

你为什么不用码头写作?

docker是在一个命令中运行所有容器的更好方法(您也可以运行特定的容器。在对接-撰写,你可以很容易地创建配置(挂载卷,链接容器到对方,网络.等)。

请看一下样例停靠-撰写文件。

代码语言:javascript
复制
container1:
 build: image_name
 volumes_from:
  - data_volume

container2:
 build: vra_manager2
 volumes_from:
  - data_volume

在上面的例子中,两个容器使用相同的data_volume。您不必为每个容器编写大型命令。

例如:

代码语言:javascript
复制
volumes:
 - /vol1:/app/container1  
volumes_from:
  - data_volume
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48301448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档