Docker:写入链接容器

时间:2018-03-23 22:20:24

标签: docker networking docker-compose dockerfile

我有一个运行简单Web应用程序的Docker容器。该容器通过Docker Compose与以下docker-compose.yml文件链接到另外两个容器:

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容器启动后,我想在/bitnami/tomcat/data/容器上向tomcat_service写一些内容。我尝试从web容器中写入该磁盘位置,但我得到了一个异常:

  

没有这样的文件或目录:' / bitnami / tomcat / data /'

有谁知道我能做什么才能从tomcat_service容器写入web容器?我非常感谢其他人可以就此问题提出的建议!

1 个答案:

答案 0 :(得分:2)

如果您希望一个服务写入其他服务,则必须使用docker卷。如果web写入someFolderName,则tomcat_service中将存在相同的文件。

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:

volumes中的数据仍然存在,即使您下次重新创建docker容器,它们也可用。在docker容器中写入一些数据时,应始终使用docker卷。