Build-Docker-Image-from-Zero
荣涛 2022-03-11

文档修改日志

日期 修改内容 修改人 备注
2022-03-11 创建 荣涛

引言

本文档主要讲构建基础Docker(Podman)镜像。

从零构建docker镜像示例

参考连接为: Creating container base image of CentOS 和 GitHub: Creating minimal CentOS docker image from scratch。

  1. 首先为docker创建rootfs
export centos_root="`pwd`/centos_image/rootfs"
mkdir $centos_root
rpm --root $centos_root --initdb
sudo dnf reinstall --downloadonly --downloaddir . centos-stream-release
sudo dnf reinstall --downloadonly --downloaddir . centos-stream-repos
sudo dnf reinstall --downloadonly --downloaddir . centos-gpg-keys
rpm --root $centos_root -ivh centos-*.rpm
rpm --root $centos_root --import  $centos_root/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sudo dnf -y --installroot=$centos_root --setopt=tsflags='nodocs' --setopt=override_install_langs=en_US.utf8 install dnf
#sed -i "/distroverpkg=centos-release/a override_install_langs=en_US.utf8\ntsflags=nodocs" $centos_root/etc/yum.conf
sudo cp /etc/resolv.conf $centos_root/etc
sudo chroot $centos_root /bin/bash <<EOF
dnf install -y procps-ng iputils
dnf clean all
EOF
sudo rm -f $centos_root/etc/resolv.conf
  1. 创建docker镜像

这步的前提是已经安装了docker,安装方法:

sudo dnf install -y docker
sudo systemctl start docker

然后生成docker镜像文件:

# 生成Docker镜像并导入
sudo tar -C $centos_root -c . | docker import - deleteme
# 查看镜像
docker images
# 运行镜像
docker run --rm deleteme cat /etc/redhat-release

镜像制作成功。

使用buildah构建

参考 Getting started with Buildah。

使用Dockerfile从基础镜像构建

首先,buildah可以从Dockerfile构建,如下Dockerfile:

FROM fedora:28
LABEL maintainer Chris Collins <collins.christopher@gmail.com>RUN dnf install -y tar gzip gcc make \&& dnf clean allADD http://ftpmirror.gnu.org/hello/hello-2.10.tar.gz /tmp/hello-2.10.tar.gzRUN tar xvzf /tmp/hello-2.10.tar.gz -C /optWORKDIR /opt/hello-2.10RUN ./configure
RUN make
RUN make install
RUN hello -v
ENTRYPOINT "/usr/local/bin/hello"

然后,构建即可:

sudo buildah bud -t hello .
# 查看
sudo buildah images
# 推送
sudo buildah push hello:latest docker-daemon:hello:latest

scratch构建

参考链接

  • 红帽:How to build tiny container images
  • GitHub: Creating minimal CentOS docker image from scratch
  • 构建基础镜像
  • Creating container base image of CentOS
  • Getting started with Buildah
Copyright (C) CESTC Com.

Build-Docker-Image-from-Zero: 从零构建Docker镜像相关推荐

  1. 在linux上运行python脚本(安装pytorch踩坑记录,pyinstaller使用方式,构建docker镜像)

    背景 脚本需要导入pytorch等库才能运行. 脚本在windows上运行成功,尝试放到linux上运行. linux服务器内存较小. 方法一:在linux上安装依赖 把脚本放到linux上,直接安装 ...

  2. Docker源码分析(十一):镜像存储

    http://www.infoq.com/cn/articles/docker-source-code-analysis-part11 1.前言 Docker Hub汇总众多Docker用户的镜像,极 ...

  3. Docker 入门到实战教程(一)介绍Docker

    一. Docker简介 1.1 什么是虚拟化? 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器.网络.内存及存储等,予以抽象.转换后呈现 ...

  4. SpringBoot 项目构建 Docker 镜像调优实践

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:超级小豆丁 http://www.mydlq.club/article/16/ PS ...

  5. docker ss-pannel_如何构建Docker镜像

    构建Docker 镜像有如下两种方法: (一)使用docker commit命令. (二)使用docker build命令和 Dockerfile 文件. 在这里并不推荐使用docker commit ...

  6. 在内网中使用maven_maven构建docker镜像三部曲之三:推送到远程仓库(内网和阿里云)-Go语言中文社区...

    在上一章<maven构建docker镜像三部曲之二:编码和构建镜像>的实战中,我们将spring boot的web工程构建成docker镜像并在本地启动容器成功,今天我们把docker-m ...

  7. 通过Dockerfile构建Docker镜像

    Dockerfile是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建. Dockerfile支持Shell类的行尾添 ...

  8. 【Spring boot 实战】使用Maven插件构建Docker镜像

    本文主要介绍如何使用Maven插件将SpringBoot应用打包为Docker镜像,并上传到私有镜像仓库Docker Registry的过程. 使用Maven构建本地Docker镜像 我们以项目spr ...

  9. 打包应用和构建Docker镜像(docker在windows上)

    在构建Docker时编译应用 一般有两种方法在构建镜像时进行打包应用.第一种方法就是使用基本的镜像,该镜像包括应用平台和构建工具,因此在Dockerfile中,复制源代码到镜像中并在构建镜像时编译ap ...

最新文章

  1. [原创 URL重写步骤
  2. 牛客题霸 转圈打印矩阵 C++题解/答案
  3. wsl2无法使用systemctl_Win 10 更新,Linux 内核的 WSL 2 开始上线
  4. Eclipse安装Rust插件 (Ubuntu)
  5. SAP License:ERP具有的九种优势
  6. 1.Echarts的坑:切换tab时,echart显示默认的100px
  7. system32文件夹里的文件详解
  8. (转)GB2312简体中文编码表
  9. 最新最全的免费股票数据接口--沪深A股指数实时交易数据API接口(七)
  10. win10 如何设置绿色保护色?
  11. 谷歌地图高精度模型提取1
  12. 桥接模式与Nat模式的区别
  13. Unity mesh换装
  14. Spring Security 小记 - @Secured(), @PreAuthorize() 及 @RolesAllowed()
  15. 分分钟搞定python破解无线wifi
  16. [iOS] MUI-WebView模式集成到iOS应用
  17. 图形学实验三 图形几何变换
  18. 操作系统之进程管理习题
  19. acwing1017-怪盗基德的滑翔翼
  20. CAS单点登录四-单点登出

热门文章

  1. SpringMVC框架----ModelAttribute注解
  2. 必知必会SQL(贰) --索引(聚集[簇]索引和非聚[簇]集索引) vs 全文本索引
  3. linux下 gdb+coredump 调试偶发crash的程序
  4. [leetcode]242. Valid Anagram判断两个字符串是不是包含相同字符的重排列
  5. Oracle SQL Tips
  6. Iphone客户端程序员半年工作总结
  7. Python打印到文件
  8. 高度固定 宽度裁剪_高领落肩连衣裙的制版裁剪教程才智服装
  9. python的进程和线程定位_Python | 进程 线程的理解拾遗
  10. 8g ubuntu 树莓派4b_树莓派4B如何安装ubuntu20.04