Docker - 卷未在容器中装载最新文件

Docker - Volume not mounting latest files in container

问题

当我在 Docker 中启动一个新容器时,我想挂载一个卷,以便获得主机上所有文件的最新更新,并可以在我的容器中使用它们。但是,我发现 Docker 在我构建 image 时安装了我的卷。我想要的是在创建新容器时安装卷。

因为我正在使用Docker来管理我的开发环境,这意味着每当我更新一小段代码时,我都必须重建我的开发环境Docker image ,通常需要 20-30 分钟左右。显然,这不是我想要 Docker.

的功能

这是我用来构建我的开发环境容器的东西:


Docker文件

# 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

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 以便它会自动挂载我的卷,但它并没有像我希望的那样工作。


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

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

只是 docker build 你的图像像正常一样,然后使用 -v 标志来 docker run 挂载卷:

docker run -it -v <hostpath>:<containerpath> <imageid>