为docker机器和docker容器获取了相同的Ubuntu映像,但docker-machine中有更多二进制文件可用

时间:2019-11-14 12:40:13

标签: docker containers

我创建了一个容器并登录

docker run -it -d ubuntu bash

检查fdisk -l可用。

但是当我使用以下方法创建计算机时

docker-machine create -d "virtualbox" --swarm-image "ubuntu"  dev3

fdisk命令在计算机中可用

问题:我猜二进制文件来自图像,这是怎么发生的?以及如何添加fdisk而不创建自定义映像或在创建容器后安装它。

同一主机

1 个答案:

答案 0 :(得分:2)

您的两个命令在做完全不同的事情。

在第一种情况下,您要拉下ubuntu码头工人镜像并启动容器

在第二种情况下,您将使用名为ubuntu的VM映像在Virtualbox中构建虚拟机。这是完全不同的操作,ubuntu虚拟机映像与ubuntu容器映像没有任何关系。实际启动计算机所需的最少软件包数量远远大于启动容器所需的软件包数量,因此,虚拟机具有您在容器映像中找不到的软件包也就不足为奇了。

例如,容器不与块设备交互,因此不需要安装fdisk。如果您确实需要在容器映像中使用fdisk(尽管在某些用例中这很有意义,但是再次出现这种情况不太可能),则可以从Dockerfile构建自定义映像。例如:

FROM ubuntu:eoan
RUN apt-get update; apt-get -y install fdisk