docker - Docker:如何从给定容器访问另一个容器中的文件?
问题描述
基本上我有一个主目录和书籍目录(一般文件结构,还有更多,但这些是重要的部分)。因此,当我从 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"]
解决方案
您可以datavolume
使用datavolume
这是创建数据卷的步骤,
第 1 步: docker volume create --name storageOne
您可以提供任何名称,而不是storageOne
第 2 步:现在您需要使用docker run -ti --name=myContainer -v storageOne:/storageOne ubuntu
命令将该卷附加到容器中
第 3 步:在该数据卷中复制或创建所需的文件
第 4 步:docker run -ti --name=myContainer2 --volumes-from MyContainer ubuntu
现在使用命令创建另一个容器
第 5 步:重新启动myStorage
容器
因此,任何可用的文件都可以在myStorage
附加的容器之间共享。
可能这会帮助你
推荐阅读
- sql-server - 由于错误消息无法更新帐户
- c++ - C++ Struct 中递归返回 nullptr ?
- angular - 检查是否在 ngOnChanges lifeCycle 挂钩中按下了 Enter 键?
- go - Go中的Supertype如何引用Subtype
- c++ - 可以为 Visual Studio Code 安装多个 CMake 扩展吗?
- c# - 在 SignOut() Xamarin.Android 之后执行操作
- python - 来自 cv2.cvtColor (img, cv2.COLOR_BGR2GRAY) 的算法
- python - Tab 使用 python Cmd 库完成文件夹名称
- java - Java 中的 SparkNLP 情感分析
- vue.js - 属性在 vue-class-component 中不是反应式的