我创建了一个容器并登录
docker run -it -d ubuntu bash
检查fdisk -l
其不可用。
但是当我使用以下方法创建计算机时
docker-machine create -d "virtualbox" --swarm-image "ubuntu" dev3
fdisk
命令在计算机中可用。
问题:我猜二进制文件来自图像,这是怎么发生的?以及如何添加fdisk
而不创建自定义映像或在创建容器后安装它。
同一主机
答案 0 :(得分:2)
您的两个命令在做完全不同的事情。
在第一种情况下,您要拉下ubuntu
码头工人镜像并启动容器。
在第二种情况下,您将使用名为ubuntu
的VM映像在Virtualbox中构建虚拟机。这是完全不同的操作,ubuntu
虚拟机映像与ubuntu
容器映像没有任何关系。实际启动计算机所需的最少软件包数量远远大于启动容器所需的软件包数量,因此,虚拟机具有您在容器映像中找不到的软件包也就不足为奇了。
例如,容器不与块设备交互,因此不需要安装fdisk
。如果您确实需要在容器映像中使用fdisk
(尽管在某些用例中这很有意义,但是再次出现这种情况不太可能),则可以从Dockerfile构建自定义映像。例如:
FROM ubuntu:eoan
RUN apt-get update; apt-get -y install fdisk