暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Docker 镜像制作原理 制作属于自己的docker镜像

kk的DBA随笔 2025-01-16
79

一. 手动制作镜像

  1. 启动容器
  2. 进入容器定制
  3. 基于容器生成镜像

1. 启动容器

启动容器之前我们首先要有一个镜像,这个镜像可以是从 docker 拉取,例如:现在 pull 一个 ubuntu 镜像到本机。

  1. docker pull ubuntu:22.04

 我们接下来可以基于这个容器进行容器定制。

2. 进入容器定制

基于镜像启动容器,进入到容器进行定制:

  1. docker run -it ubuntu:22.04 bash

更换一下国内的源,docker cp 可以把本机的源拷贝到容器,我这里直接用了容器的源。

安装一些定制容器所需要的包

     apt -y install wget curl net-tools procps psmisc iputils-ping iproute2 vim tzdata tcpdump telnet traceroute tree iotop unzip zip nfs-common lrzsz && apt clean

    3. 基于容器生成镜像

    包装完之后退出,可以基于这个容器生成一个镜像

    1. docker commit xenodochial_chandrasekhar ubuntu:22.04-myself
    1. docker images 此时可以看到自己做的镜像了

     基于自己做的镜像,创建容器,看看工具有没有

    1. docker run -it 81924198f671

     可以看到工具是有的

    二. 批量制作镜像(docker file).

    Alpine 是一个轻量级的 Linux 发行版,广泛用于容器化环境和嵌入式系统中。它以体积小、安全性高和运行效率高而闻名。

    首先创建目录,在目录下创建 dockerfile 目录,这样层次分明一些

    创建一个容器查看 alpine ,以及更换镜像源,以及安装想要安装的工具 (curl,vim,tree 等) alpine 更新源使用的是 apk update

      root@zhangxin-virtual-machine:/data/dockerfile/base/alpine-myself# vim Dockerfile


      FROM alpine:3.18.0
      LABEL maintainer="zhangxin kk"
      RUN sed -'s/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/' /etc/apk/repositories &&  apk update && apk --no-cache add gcc curl wget iotop libgcc libc-dev libcurl libc-utils pcre-dev zlib-dev libnfs make pcre pcre2 zip unzip net-tools pstree libevent libevent-dev iproute2
        docker build -t alpine-myself:3.18.0 .

        构建成功  此时 docker images 以及可以看到我们自己构建的镜像

         运行我们构建的镜像: 可以看到刚才安装的工具已经都有了

         自己构建的镜像比原镜像大了不少:


        文章转载自kk的DBA随笔,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论