`

从头创建一个最小的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...

    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

    本书结合了几位作者在容器领域和阿里云上的生产实践,涉及了从入门的容器技术和Go原理到最新的容器领域规范和开源项目OCI、containerd、CRI等,很精炼地将如何从零写一个Docker娓娓道来,非常有助于提高读者在Docker...

    springboot整合docker部署实现两种构建Docker镜像方式

    Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和...

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

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

    docker-centos4-base

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

    【Linux】CentOS7 下安装Docker

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

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

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

    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镜像。...

    Docker简单安装与应用入门教程

    Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。比如,我们在笔记本上编译测试通过的容器可以批量地在生产环境中部署,可以用于自动化测试和持续集成、发布。 还可以...

    docker-apache-php:用于本地PHP开发的微小但功能齐全的Docker映像,可以将其作为完整的LAMP堆栈加倍

    它们要么设置得非常有根据,要么需要您进行大量配置,以使得您可以简单地从头创建一个自己的文件,或者在非Linux系统上运行时遇到文件许可问题。 另外,通过使用Alpine Linux作为基础,生成的映像大小约为32 MB,...

    docker-kubernetes:最新的 Kubernetes 构建

    我需要一个简单的方法来安装上 。 用法: 每当容器运行时,它都会构建最新的二进制文件并将它们移动到/target(任何现有的二进制文件都将被覆盖)。 因此,要安装或更新 ,即在/opt/kubernetes ,只需运行 ...

    Docker入门安装教程(小白篇)

    Docker是一种容器相关的技术,简单来说你可以把它当做一个微型的独立系统,在这个系统里面运行各种软件,然后又在linux服务器上或者是电脑上运行这个系统,这个系统就被称为Docker容器,而运行Docker容器的机器就被...

    loowid-docker:用于构建低级容器的 Docker 文件

    跑步如果您想从头开始构建自己的镜像: docker build -t loowid/loowid-docker github.com/loowid/loowid-docker 码头工人运行-d -p 443:443 低/低-码头工人它也是 docker hub ( ) 上可用的图像: docker run -d -p ...

    wubot:Balanced 的 Hubot

    乌博特 平衡 Hubot 安装 将hubot-scripts安装到目的地 make install DEST='${ hubot_dir }/scripts会将所有脚本从hubot-scripts目录复制到您... TODO(需要重建docker镜像..) .eb 扩展名 去做 01_balanced_specific_a

    aws-saml-broker:通过 SAML 对用户进行身份验证并向他们授予临时 AWS 凭证的 Web 应用程序

    在 AWS IAM 控制台中,创建一个新用户,并下载他的 AWS 凭证。 单击新创建的用户,选择“附加用户策略”,选择“自定义策略”。 将其命名为broker-policy并将其设置为: {"Statement": [ { "Effect": "Allow", ...

Global site tag (gtag.js) - Google Analytics