Build-Docker-Image-from-Zero 从零构建Docker镜像

7 篇文章 0 订阅
本文档详细介绍了如何从零开始创建Docker镜像,包括构建CentOS的基础rootfs,使用Docker命令生成镜像,以及通过Buildah和Dockerfile构建更复杂的镜像。此外,还提到了使用Buildah的起步指南和从scratch构建极小镜像的方法。
摘要由CSDN通过智能技术生成

Build-Docker-Image-from-Zero

荣涛

2022-03-11

文档修改日志

日期

修改内容

修改人

备注

2022-03-11

创建

荣涛

引言

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

从零构建docker镜像示例

参考连接为: Creating container base image of CentOSGitHub: 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 c e n t o s r o o t / e t c / p k i / r p m − g p g / R P M − G P G − K E Y − r e d h a t − r e l e a s e s u d o d n f − y − − i n s t a l l r o o t = centos_root/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release sudo dnf -y --installroot= centosroot/etc/pki/rpmgpg/RPMGPGKEYredhatreleasesudodnfyinstallroot=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
    tsflags=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

  2. 创建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 all

ADD http://ftpmirror.gnu.org/hello/hello-2.10.tar.gz /tmp/hello-2.10.tar.gz

RUN tar xvzf /tmp/hello-2.10.tar.gz -C /opt

WORKDIR /opt/hello-2.10

RUN ./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构建

参考链接

Copyright © CESTC Com.

根据提供的命令`docker build -t nacos-docker`,这是一个用于构建Docker镜像的命令。`-t`参数用于标记镜像,`nacos-docker`是镜像名称。 Docker是一个开源的容器化平台,可以将应用程序和服务放入容器中进行部署,而容器又可以在不同的环境中运行,从而实现了跨平台和快速部署。Docker镜像是一个轻量级、独立的可执行软件程序包,其中包含了运行应用程序所需的所有文件、依赖项和配置。Docker镜像可以在不同的Docker容器中运行,并且可以在Docker Hub等容器仓库中共享和获取。 下面是构建一个Docker镜像的步骤: 1. 编写Dockerfile文件,该文件描述了如何构建Docker镜像,包括基础镜像、应用程序代码、依赖项等信息。 2. 执行`docker build`命令构建镜像。在构建过程中,Docker会执行Dockerfile文件中的每个命令,生成一个新的镜像。 3. 使用`docker run`命令启动容器,并运行应用程序。 下面是构建nacos-docker镜像的步骤: 1. 创建一个名为nacos-docker的文件夹,并在该文件夹中创建一个Dockerfile文件。 2. 在Dockerfile中定义基础镜像和安装nacos的命令。例如: ```shell FROM openjdk:8-jdk-alpine RUN mkdir /nacos && cd /nacos \ && wget https://github.com/alibaba/nacos/releases/download/1.4.2/nacos-1.4.2.tar.gz ``` 3. 执行`docker build -t nacos-docker .`命令构建镜像,其中`.`表示Dockerfile所在的当前目录。Docker会执行Dockerfile中的每个命令,并生成一个新的名为nacos-docker镜像。 4. 使用`docker run`命令启动容器,并运行nacos应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值