我所能找到的只是Ubuntu 桌面版官方 Docker 镜像在 Docker Hub 上。没有适用于 Ubuntu Server 的吗?
这是否意味着我必须使用创建我自己的基础图像scratch
?
答案1
问题是关于 Ubuntu Server 的,但所有答案和讨论都是关于 Ubuntu Desktop 的。所以我会回答这两个问题,但首先讨论 Ubuntu Desktop。最后,(和不推荐用于临时容器大多数容器应该Docker 的最佳实践,但是也有例外)您可以在容器上安装 Ubuntu Desktop 和 Ubuntu Server 并运行它。
笔记:如果您只是对容器进行实验,则可以添加--rm
标志,通过在容器运行后自动删除容器,防止主机存储膨胀。
docker run --rm -it ubuntu
Ubuntu 桌面容器
正在运行的容器
这是一个相当大的容器!~1.5Gb
如果你运行:
docker run -it ubuntu
然后,在容器中:
> apt-get update && apt-get install -y ubuntu-desktop
您将有效地下载 Ubuntu 桌面
Ubuntu 桌面版 Dockerfile
可以创建一个 Dockerfile:
FROM ubuntu:16.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y ubuntu-desktop
然后构建它:
docker build -t ubuntu-desktop .
并运行它:
docker run -it ubuntu-desktop
Ubuntu Server 容器
正在运行的容器
docker run -it ubuntu
从集装箱码头出发:
apt-get update && apt-get install -y ubuntu-server
Ubuntu 服务器的 Dockerfile
FROM ubuntu:16.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y ubuntu-server
构建:
docker build -t ubuntu-server .
运行:
docker run -it ubuntu-server
Ubuntu 桌面和服务器容器
正在运行的容器:
docker run -it ubuntu
集装箱码头:
apt-get update && apt-get install -y ubuntu-server ubuntu-desktop
Ubuntu 服务器/桌面版 Dockerfile
FROM ubuntu:16.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y ubuntu-server ubuntu-desktop
构建:
docker build -t ubuntu-server-desktop .
运行:
docker run -it ubuntu-server-desktop
答案2
您可以测试它,首先在 Ubuntu 容器中运行 bash:
docker run -it ubuntu /bin/bash
-i
,--interactive
即使未连接,也保持 STDIN 开放
-t
,--tty
分配一个伪 TTY
然后运行以下命令检查是否ubuntu-desktop
已安装:
dpkg -l ubuntu-desktop
答案3
我所能找到的只是Ubuntu 桌面版官方 Docker 镜像在 Docker Hub 上。
该页面没有任何地方表明它是 Ubuntu桌面图像。无论如何,这没有意义,因为您(通常)不会在 Docker 容器中运行桌面环境。
答案4
在我看来,ubuntu 桌面大部分只是ubuntu server
+ desktop environment
。OP 指出的官方 repo 不包含任何带有桌面环境的图像,因此您应该将它们视为服务器版本。
对于极简主义者,我目前将其用于gcr.io/google_containers/ubuntu-slim:0.14
我的个人项目。这是一个极简但功能齐全的 ubuntu 映像,大小仅为官方映像的 1/3。