在 Docker 中 的 “ 完 整 “Ubuntu 开 发 环 境 容 器
Wed 24 September 2025
尽 管 Docker/Podman 容 器 的 使 用 方 式 与 虚 拟 机 不 同 , 但 对 于 . 开 发 环 境 “, 我 们 还 是 倾 向 于 将 其 当 作 虚 拟 机 来 使 用 , 就 如 同 物 理 机 器 一 样 。 但 全 虚 拟 化 的 虚 拟 机 ( 如 kvm) 还 是 会 对 性 能 有 影 响 , 尤 其 是 对 于 /O 宿 集 型 应 用 ,LXC/LXD 应 当 是 不 错 的 选 择 , 但 实 际 上 在 装 机 必 备 “ 的 Docker 上 , 也 是 能 实 现 这 样 的 功 能 。
@ @ @ wusiyu@9dab0b085b97: ~ [ 】 Reached target MuLti-User System. [ ]】 Reached target Graphtcal Interface.
Starting Update UTMP about System Runlevel Changes … [ ] Finished Update UTMP about System RunlLevel Changes.
Ubuntu 28.84.2 LTS 9dab8b885b97 console
9dab8b885b97 login: wusiyu Passmord : Welcome to Ubuntu 28.84.2 LTS CGNU/Linux 5.13.9-2880.fc34.x86_64 x86_64)
- Documentation: “https://help.ubuntu.com
- Management : https://Landscape.canonical .com
- Support: httpS://ubuntu.com/advantage
The programs included with the Ubuntu System are free software ; the exact distribution terms for each program are described in the inditvidual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO MARRANTY,to the extent permitted by applicable law. WuStyuG9dab8b885b97:~$
F 98
这 是 个 Docker 容 器
下 方 的 Dockerfile 就 描 述 了 一 个 这 样 的 . 完 整 “Ubuntu 容 器 , 其 像 标 准 Ubuntu 一 样 由 systemd 作 为 init, 并 运 行 SSH 服 务 器 , 以 更 方 便 的 远 程 访 问 , 或 远 程 使 用 vscode remote。 其 还 创 建 了 一 个 普 通 用 广 , 用 户 名 、UID 和 GID 可 以 与 你 宿 主 机 上 保 持 一 致 , 以 更 方 便 的 共 享 文 件 。
Github Gist: https://gist.github.com/WuSiyYu/bbee5788242bcb99b9acbe5257aae 522
FROM ubuntu: Latest
LABEL maintainer=“5iYu Nu
ENV DEV_USER=user
ENV UID=1000
ENV GID=1000
ENV DEF _PASSNWD=password ENV TZ=Asia/Shanghai ENV LANG=en_US .UTF-8
RUN L1n -snf /usr/share/zoneinfo/$7Z /etc/Localtime && echo $T2Z
/etc/timezone && 飞
yes | unminimize && 飞
apt install -Yy systemd sudo openssh-server bash-completion ZzSh git _ curl Vim && 飞
addgroup --gid $GID $DEV_USER &&
adduser --uid $UID --gid $GID --gecos ““ --disabled- password $DEV_USER && 飞
usermod -aG Sudo $DEV_USER &&
echo “$DEV_USER:$DEF_PASSNWD“ | chpasswd && \
systemctl mask systemd-resolved.serVice && 飞
echo“LANG=SLANG“> /etc/defauLt/Locale &&
cp _/usr/share/doc/util-Linux/examples/securetty /etc/securetty
CMD _[“systemd“ ]
在 标 准 Ubuntu Docker 镜 像 基 础 上 , 执 行 了 以 下 操 作 :
。 设 置 时 区 。 去 . 精 简 化 “ 。 安 装 systemd、sudo、SSH 服 务 器 、bash 自 动 补 全 和 一 些 其 他 工
。 新 建 用 户 并 赋 予 sudo 权 限
。 禁 用 systemd-resolved.service, 因 为 Docker 已 经 为 我 们 配 置 好 了 容 器 的 DNS
。 设 置 语 言
。 补 全 /etc/securetty
使 用 示 例
为 保 证 镜 像 的 安 全 性 ( 更 新 及 时 ) , 未 维 护 Docker Hub 上 维 护 镜 像 , 请 自 行 构 建 构 建 镜 像
Sudo docker build -t devbox:V0 .1 。
启 动 镜 像 ( 非 特 权 模 式 )
需 要 赋 予 容 器 audit ( 审 计 信 息 ) 写 入 权 限 , 否 则 容 器 的 ssh、sudo 等 软 件 会 工 作 不 正 常
sudo docker run -d -it --cap-add AUDIT_NWRITB --name devbox -- publish 8022:22 --hostname devbox -V ./data: /data: Z devbox
启 动 镜 像 ( 特 权 模 式 )
sudo podman run -it --name devbox --publish 8022 :22 --hostname devbox -V ./data: /data --PriviLeged devbox 请 自 构 建 镜 像
Sudo docker build -t devbox:V0 .1 。
启 动 镜 像 ( 非 特 权 模 式 )
需 要 赋 予 容 器 audit ( 审 计 信 息 ) 写 入 权 限 , 否 则 容 器 的 ssh、sudo 等 软 件 会 工 作 不 正 常
sudo docker run -d -it --cap-add AUDIT_NWRITB --name devbox -- publish 8022:22 --hostname devbox -V ./data: /data: z devbox
启 动 镜 像 ( 特 权 模 式 )
sudo podman run -it --name devbox --publish 8022 :22 --hostname devbox -V ./data: /data --PriviLeged devbox
限 制 与 可 选 操 作
首 先 此 方 法 的 隔 离 型 「 不 如 Ixc/Ixd 方 式 , 哪 怕 是 非 特 权 模 式 , 容 器 的 audit 信 息 也 会 被 写 入 到 host ( 若 禁 止 则 会 导 致 容 器 工 作 不 正 常 ) , 大 概 是 因 为 Docker 本 身 就 没 有 对 此 进 行 隔 离 。
仪 这 是 因 为 ubuntu 的 官 方 docker 镜 像 中 禁 用 了 apt 的 一 些 缓 存 功 能 , 以 避 免 在 构 建 镜 像 时 产 生 一 些 无 用 的 缓 存 。 考 虑 到 容 器 巳 伟 此 处 保 留 了 这 个 特 性 。 如 果 你 希 望 能 正 常 使 用 软 件 包 名 自 动 补 全 0 删
除 /etc/apt/apt.conf.d/docker-clean 文 件 即 可
Category: 杂物