【问题标题】:Can One Container use the file of another Container? [duplicate]One Container 可以使用另一个 Container 的文件吗? [复制]
【发布时间】:2020-07-30 23:33:55
【问题描述】:

基本上我有一个主目录和书籍目录(一般文件结构,还有更多,但这些是重要的部分)。因此,当我从 main 向 booksServer 发出请求时,它不起作用,因为缺少节点模块。

这是因为节点模块位于 docker 容器中的特定路径:'/usr/src/app'

我如何让 main.js 看到书籍(服务/容器)在此特定路径中确实有正确的节点包?

我认为我可以使用 docker-compose,但我想先单独测试它,而不先使用 docker-compose。

**-Main Directory (Individual Service, has its own container)**
  -Initiator (Fires commands) 
  -DockerFile

**-Books Directory (Individual Service, has its own container)**
  -Stubs
     -BooksStub.js (NEED THIS!, but it won't work because needs npm modules which is located in its container @/usr/src/app. How can I access the nodemodules that it's using?)

  -booksServer.js
  -Package*.json (lock and package.json)
  -DockerFile

里面

错误:

internal/modules/cjs/loader.js:800
    throw err;
    ^

Error: Cannot find module 'grpc'

书籍 Dockerfile

FROM node:12.14.0
WORKDIR /usr/src/app
COPY package*.json ./
COPY . /usr/src/app
RUN npm install
EXPOSE 30043
CMD ["node", "booksServer.js"]

主 DockerFile

FROM node:12.14.0
WORKDIR /usr/src/app
COPY package*.json ./
COPY . /usr/src/app
RUN npm install
EXPOSE 4555
CMD ["node", "main.js"]

【问题讨论】:

  • 是的,创建一个卷,然后将其映射到两个 docker 并设置它们的模式,如果你想只读的话

标签: docker docker-compose dockerfile docker-registry docker-volume


【解决方案1】:

使用卷可以将文件从一个容器共享到另一个容器。

  • 创建一个卷以在两个 Docker 容器之间共享:

    docker 卷创建 --name 卷名

  • 使用卷创建 container_first

    docker run -it --name=container_first -v volume_name:/volume image_name

  • 创建与 container_first 共享文件的 container_second

    docker run -it --name=container_second --volumes-from container_first image_name

【讨论】:

    猜你喜欢
    • 2022-08-24
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    相关资源
    最近更新 更多