从零制作一个ubuntu的docker镜像

上次分享了一下怎么制作centos的镜像,今天给大家分享一下ubuntu的制作方法。

准备ubuntu环境

如果你有Ubuntu环境的话最好,可以直接打包,我用的是CentOS系统,所以需要借助debootstrap工具。

bash 复制代码
yum -y install epel-release
yum -y install debootstrap

mkdir ~/ubuntu-root
debootstrap --arch=amd64 focal ~/ubuntu-root http://archive.ubuntu.com/ubuntu/

[root@bogon ]# ls ~/ubuntu-root/
bin   dev  home  lib32  libx32  mnt  proc  run   srv  tmp  var
boot  etc  lib   lib64  media   opt  root  sbin  sys  usr

制作ubuntu镜像

bash 复制代码
mkdir ubuntu
cd ubuntu
mv ~/ubuntu-root .

cat > Dockerfile << EOF
FROM scratch
ADD ubuntu-root/ /
CMD ["/bin/bash"]
EOF

docker build -t ubuntu .

[root@bogon ubuntu]# docker build -t ubuntu .
[+] Building 0.3s (5/5) FINISHED                                     docker:default
 => [internal] load build definition from Dockerfile                           0.0s
 => => transferring dockerfile: 87B                                            0.0s
 => [internal] load .dockerignore                                              0.0s
 => => transferring context: 2B                                                0.0s
 => [internal] load build context                                              0.3s
 => => transferring context: 1.08MB                                            0.3s
 => CACHED [1/1] ADD ubuntu-root/ /                                            0.0s
 => exporting to image                                                         0.0s
 => => exporting layers                                                        0.0s
 => => writing image sha256:80026197be11ccce07f1be9707d39540bc4fda056b6119d6d  0.0s
 => => naming to docker.io/library/ubuntu                                      0.0s

测试

bash 复制代码
[root@bogon ~]# docker run -it --rm ubuntu bash
root@25befe3b3054:/# 
相关推荐
Patrick_Wilson11 小时前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
阿里云云原生13 小时前
AI 开发新常态:当 Cursor、Claude、Codex 并行,如何统一管理散落的 Skill 资产?
云原生·ai编程
探索云原生19 小时前
K8s 1.36 这个 GA 特性,把 initContainer 拉模型的 hack 干掉了
ai·云原生·kubernetes
Suroy21 小时前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭21 小时前
运行你的第一个Docker容器
后端·docker·容器
Java之美21 小时前
从edge-trigger到level-trigger,谈谈 Kubernetes controller 的开发范式
云原生
阿里云云原生2 天前
深度解构:当 Append-only 的 SLS 遇上 Update/Delete,是如何实现设计权衡的?
云原生
Web3探索者2 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo2 天前
Linux系统中网线与USB网络共享冲突
linux
荣--2 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计