Docker:写入链接容器的磁盘
我有一个Docker容器,它运行一个简单的web应用程序。Docker Compose使用以下Docker-Compose.yml文件将该容器链接到另外两个容器:Docker:写入链接容器的磁盘,docker,networking,docker-compose,dockerfile,Docker,Networking,Docker Compose,Dockerfile,我有一个Docker容器,它运行一个简单的web应用程序。Docker Compose使用以下Docker-Compose.yml文件将该容器链接到另外两个容器: version: '2' services: mongo_service: image: mongo command: mongod ports: - '27017:27017' tomcat_service: image: 'bitnami/tomcat:latest'
version: '2'
services:
mongo_service:
image: mongo
command: mongod
ports:
- '27017:27017'
tomcat_service:
image: 'bitnami/tomcat:latest'
ports:
- '8080:8080'
web:
# gain access to linked containers
links:
- mongo_service
- tomcat_service
# explicitly declare service dependencies
depends_on:
- mongo_service
- tomcat_service
# set environment variables
environment:
PYTHONUNBUFFERED: 'true'
# use the image from the Dockerfile in the cwd
build: .
ports:
- '8000:8000'
一旦web
容器启动,我想将一些内容写入tomcat\u服务
容器上的/bitnami/tomcat/data/
。我尝试从web
容器中写入该磁盘位置,但遇到异常:
没有这样的文件或目录:'/bitnami/tomcat/data/'
有人知道我能做些什么才能从
web
容器写入tomcat\u服务
容器吗?如果其他人能就这个问题提供任何建议,我将不胜感激 如果希望一个服务写入另一个服务,则必须使用docker卷。如果web写入someFolderName,tomcat_服务中将存在相同的文件
version: '2'
services:
tomcat_service:
image: 'bitnami/tomcat:latest'
volumes:
- my_shared_data:/bitnami/tomcat/data/
web:
volumes:
- my_shared_data:/someFolderName
volumes:
my_shared_data:
卷
中的数据将保持不变,即使下次重新创建docker容器,这些数据也将可用。在docker容器中写入数据时,应始终使用docker卷。为什么要从一个容器写入另一个容器?@jrtapsell我基本上想将.war文件加载到我的tomcat容器中。war文件是在web
容器中以编程方式生成的。我应该在web
容器中构建tomcat吗?我喜欢通过compose创建的独立容器的清洁度,但这可能不可行。您可以使用多阶段构建来创建战争,然后使用它创建一个tomcat映像,并将其构建为不美观的,非常感谢您的注释;我想这些书可能会有帮助,但你已经说得更清楚了。只需检查:如果我在web
中触摸/someFolderName/success.json,tomcat
是否能够读取/bitnami/tomcat/data/success.json
?是的,您也可以装载卷,仅用于使用我的共享数据:/bitnami/tomcat/data/:ro
读取tomcat