首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Docker -容器中未安装最新文件的卷

Docker -容器中未安装最新文件的卷
EN

Stack Overflow用户
提问于 2015-03-01 00:34:23
回答 1查看 1.9K关注 0票数 4

问题

当我在Docker中启动一个新容器时,我希望挂载一个卷,这样我就可以获得主机上任何文件的最新更新,并且可以在我的容器中使用它们。然而,我发现当我建立这个形象的时候,Docker正在增加我的容量。相反,我希望在创建新容器时挂载卷。

因为我使用Docker来管理我的开发环境,这意味着每当我更新一小块代码时,我必须重建我的开发环境Docker映像,这通常需要20到30分钟。显然,这不是我想从Docker获得的功能。

下面是我用来构建开发环境容器的内容:

Dockerfile

代码语言:javascript
运行
复制
# This docker file constructs an Ubuntu development environment and configures the compiler/libs needed
FROM ubuntu:latest

ADD . /gdms-rcon/liaison
WORKDIR /gdms-rcon/liaison

RUN rm -rf ./build
RUN apt-get update
RUN apt-get install -y -f gcc g++ qtbase5-dev cmake mysql-client

fig.yml

代码语言:javascript
运行
复制
liaison:
  build: ./liaison/
  command: /bin/bash
  volumes:
    - liaison:/gdms-rcon/liaison
  working_dir: /gdms-rcon/liaison

我还使用了一个fig.yml文件来简化构建。

要运行,我使用:fig build

要访问我的容器来编译源代码,我使用:docker run -it <container_id>

也许我的命令做错了什么?我不使用fig up,因为它不会给我一个交互式的shell,所以我使用docker run -it <container_id>。我选择使用fig,以便它能够自动挂载我的卷,但它并不像我所希望的那样工作。

这里有一张图片可以更清楚地说明我的问题

EN

Stack Overflow用户

回答已采纳

发布于 2015-03-01 02:41:17

如果您没有使用fig启动容器,那么您的fig.yml中的volumes行没有做任何有用的事情。如果您需要一个交互式的shell,那么fig并不是真正适合您的工具。

只需像平常一样docker build您的图像,然后使用-v标志到docker run来挂载卷:

代码语言:javascript
运行
复制
docker run -it -v <hostpath>:<containerpath> <imageid>
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28788697

复制
相关文章

相似问题

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