如果我在docker image中运行sudo apt-get update并将其作为容器运行,我是否还需要在机器上进行sudo apt-get update?

时间:2017-05-31 10:33:09

标签: ubuntu docker

如果我在docker image中运行sudo apt-get update并将其作为容器运行,我是否还需要在机器上进行sudo apt-get update?我仍然试图了解Docker究竟是如何工作的,因为我的大脑的一部分告诉我Docker容器中运行的所有东西都依赖于Docker容器本身内部的所有内容,所以没有必要对apt-get update进行更新。机器也是,我脑子的另一部分告诉我这不对,所以我现在很困惑。

2 个答案:

答案 0 :(得分:0)

每当你在docker apt-get updatecontainer内运行Dockerfile时,它实际上是创建它自己的隔离空间,它将在该特定空间中运行所有命令仅影响您的物理服务器/环境容器和您的物理服务器/环境共享kernel。因此,如果您运行apt-get update或任何其他命令,而不是在您正在创建的docker容器或docker镜像中运行。

我强烈建议您阅读此答案以了解您对码头工作者的理解。 docker and virtual machine

希望这会对你有帮助!

谢谢!

答案 1 :(得分:0)

这些依赖关系并不像你期望的那样硬连接到docker主机(只要你没有为它安装任何卷)。

您可以使用几行代码验证您的建议。让我们使用普通的ubuntu映像:

docker run --rm ubuntu apt-get install git

结果为E: Unable to locate package git。这是因为从未使用apt-get update更新包。

如果我们提供一个由以下几行组成的Dockerfile:

FROM ubuntu
RUN apt-get update

并构建它以获取新图像

docker build -t myubuntu .

我们可以像这样执行新图像

docker run --rm myubuntu apt-get install git

然后尝试从官方存储库安装git,因为之前的图像已执行apt-get update

但是,我并不建议通过apt-get依赖容器图像已过时。