`

从头创建一个最小的CentOS Docker镜像

 
阅读更多

一、从头创建一个CentOS的基础框架

首先安装好CentOS7,并在上面安装Docker,然后执行:

# /usr/local/bin/supermin --prepare yum -o supermin.d
# /usr/local/bin/supermin --build --format chroot supermin.d -o appliance.d

# cd appliance.d
# mv usr/share/locale/en usr/share/locale/en_US tmp
# rm -rf usr/share/locale/*
# mv tmp/en tmp/en_US usr/share/locale/
# mv usr/share/i18n/locales/en_US tmp
# rm -rf usr/share/i18n/locales/*
# mv tmp/en_US usr/share/i18n/locales/
# echo 7 > etc/yum/vars/releasever
# cd ..

# tar --numeric-owner -cpf centos7-zero.tar -C appliance.d .
# cat centos7-zero.tar | docker import - local/centos7-zero

 

 

二、安装必要的组件,完成一个最小的CentOS7镜像

在主机上执行:

# docker run -i -t local/centos7-zero /bin/bash

在container中执行:

# yum update -y
# yum install -y audit-libs basesystem bash binutils bzip2-libs ca-certificates centos-release chkconfig coreutils cpio cracklib cracklib-dicts curl cyrus-sasl-lib dbus-libs device-mapper device-mapper-libs diffutils elfutils-libelf expat fakesystemd file file-libs filesystem findutils gawk gdbm glib2 glibc glibc-common gmp gnupg2 gpgme grep groff-base gzip hardlink info iproute iptables iptables-services iputils keyutils-libs kmod-libs kpartx krb5-libs less libacl libassuan libattr libblkid libcap libcap-ng libcom_err libcroco libcurl libdb libdb-utils libffi libgcc libgcrypt libgomp libgpg-error libidn libmnl libmount libnetfilter_conntrack libnfnetlink libpwquality libselinux libsemanage libsepol libssh2 libstdc++ libtasn1 libunistring libuser libutempter libuuid libverto libxml2 lua ncurses ncurses-base ncurses-libs nspr nss nss-softokn nss-softokn-freebl nss-sysinit nss-tools nss-util openldap openssl-libs p11-kit p11-kit-trust pam pcre pinentry pkgconfig popt procps-ng pth pygpgme pyliblzma python python-iniparse python-libs python-pycurl python-urlgrabber pyxattr readline rootfiles rpm rpm-build-libs rpm-libs rpm-python sed setup shadow-utils shared-mime-info sqlite systemd-libs tzdata ustr util-linux vim-minimal which xz xz-libs yum yum-metadata-parser yum-plugin-fastestmirror zlib
# yum update -y && yum clean all
# exit

 

在主机上执行:

# docker export <container_id> > centos7-minimal.tar

 

分享到:
评论

相关推荐

    Docker镜像的Heroku​项目Heroku-Docker.zip

    这个简单的小项目拿来现有的Heroku应用程序后,可以从命令行将其转换成Docker镜像,执行整个操作只需要几个命令就行。示例代码:$ heroku docker:build -a myapp Sending build context to Docker daemon...

    Docker拉取镜像的完整步骤

    1. docker pull 拉取镜像 使用 $ docker pull {IMAGE_...一个 Docker 镜像分为很多层,如果本地存在该层,则不会再次拉取。 IMAGE_NAME 第一个斜杠之前没有域名标识 Docker 会将 IMAGE_NAME 拼接为 docker.io/IMAGE

    狂神 Docker学习笔记 超详细从开始到进阶到补充

    Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更...

    image-tests:docker-exec 镜像的测试套件

    几个参数被传递给图像,程序应该接收这些参数并将它们打印在一个新行上,保留空格。 它的输出是: a a b a b c x y z 舍邦去除 这将测试包含调用dexec的 shebang 行的源文件dexec会被删除。 它只是 'hello world...

    docker-beaglebone-black-node:用于 Node 开发的 BeagleBone Black Docker 镜像

    稍后我可能会按照这些从头开始创建图像。 构建和推送镜像 vagrant up vagrant ssh docker build . -t strictlybusiness/beaglebone-black-node docker push strictlybusiness/beaglebone-black-node 使用图片 镜像...

    虚拟化--docker.ctb

    • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。 • 容器(Container):镜像(Image)和容器...

    docker入门到实战

    * 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。 * 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样。 * 仓库(Repository):仓库可...

    rootbuilder:使用 buildroot 生成 rootfs.tar 的基础 Docker 镜像

    这是一个用于 buildroot 的 Docker 构建环境容器。 您可以使用此容器生成根文件系统 tar,您可以使用它从头开始构建 BusyBox 容器。 请参阅示例目录以了解您通常如何使用 rootbuilder。 使用 rootbuilder ...

    docker-centos4-base

    从头开始 CentOS 4.9 Docker 镜像使用yum和一些chroot魔法的尽可能最小的 CentOS 4.9 映像。 签入一个大的、不透明的二进制文件的想法让我很痒,但 Docker 模型目前不允许对图像创建进行更多控制。 希望这是我唯一一...

    docker-nodemcu-build:Docker镜像为您的机器上的ESP8266构建NodeMCU固件

    我创建了一个具有不错的用户界面和配置选项的云构建服务。 但是,如果他们使用LFS,则可能要构建自己的LFS映像,以替代Terry Ellison的在线服务。 然后,此图像适合他们! 偶尔的NodeMCU固件黑客 他们不需要完全...

    Docker 搭建openP2P教程

    3. 输入 Docker 命令,下载 openP2P 客户端的镜像。 4. 配置容器的安装位置,使用 docker inspect 命令获取容器的存储位置和 Mounts 信息。 5. 创建容器,使用 docker create 命令,指定容器的存储位置、网络模式、...

    【Linux】CentOS7 下安装Docker

    简单来说就是一个轻量型的虚拟机,与虚拟机不同的是Docker容器实现的是软件资源上的虚拟化。而虚拟机是将硬件也进行虚拟化,因此容器比较轻量级,节约资源。 1.2 可以做什么? 1)Web 应用的自动化打包和发布。 2)...

    Docker容器技术笔记

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用程序以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 操作系统的机器上。容器是完全使用沙箱机制,相互之间不会有任何接口。 ...

    langchain-ChatGLM.tar.gz

    langchain-ChatGLM.tar.gz 是一个包含此类工具的压缩包,它为开发者提供了一整套用于创建高效、自然、富有表现力的对话系统的资源。 langchain是Mozilla Research开发的一个Python库,专注于构建自然语言处理管道。...

    sparkr-docker:使用 RStudio 前端试用 SparkR 的 Dockerfile

    这个 dockerfile 使用 、 和构建了一个基于 centos (CentOS 6) 的。 的预构建镜像可以节省您的时间,因为 Spark 构建通常需要很长时间。从 Docker Hub 获取现成的镜像 $ docker pull beniyama/sparkr-docker$ ...

    nix-docker:Nix软件包管理器的Docker映像

    当前基于alpine,该镜像是从头开始构建的,看起来更像 。 nix,bash和coreutils安装在链接到/run/current-system/sw的系统配置文件中,唯一的全局路径是/bin/sh和/usr/bin/env 使用特定版本的nixpkgs构建新的...

    docker-shiny:具有用户名和密码身份验证的R Shiny服务器的Docker映像

    docker pull epwalsh/docker-shiny或从头开始构建: :flexed_biceps: git clone https://github.com/epwalsh/docker-shiny.git && cd docker-shinydocker build -t epwalsh/shiny-server .2.在本地运行docker镜像。...

Global site tag (gtag.js) - Google Analytics