制作CentOS Docker基础镜像

Supermin是一个用来创建迷你虚拟环境的工具;
chroot命令可以使用一个完全安全隔离的环境,并且所有的操作都是基于新的根目录来操作,用户根本访问不到原来的系统根目录。

下面来制作CentOS的mini Docker基础镜像:

  1. 最小化安装Centos操作系统,可用虚拟机安装。
  2. 使用supermin5创建小的虚拟环境:
    YUM安装supermin5:
    yum install supermin5* -y
  3. 准备mini环境的工具:
    mkdir /opt/minios && cd /opt/minios
    supermin5 -v --prepare bash coreutils iputils iproute net-tools telnet -o /opt/minios/minios.d

提供常用工具:bash ssh tail ping ip netstat lsof vim tar wget git yum 等命令
bash 提供 /alias/bash/bashbug/bashbug-64/bg/cd/command/fc/fg/getopts/jobs/read/sh/umask/unalias/wait
iputils 提供 /ping/tracepath
iproute 提供 /arpd/bridge/cbq/ctstat/devlink/genl、ifcfg、ifstat/ip/lnstat、nstat、rdma、routef、routel、rtacct、rtmon、rtpr、rtstat/ss/tc

  1. 创建迷你环境
    supermin5 -v --build --format chroot /opt/minios/minios.d -o /opt/minios/image.d
  • 如果要上网执行下面命令
    echo '''nameserver 114.114.114.114
    nameserver 8.8.8.8''' > /opt/minios/image.d/etc/resolv.conf
  • 如果要使用yum安装软件包
    echo 6 > /opt/minios/image.d/etc/yum/vars/releasever
    echo 7 > /opt/minios/image.d/etc/yum/vars/releasever

cd image.d/ && chroot .
使用chroot切换根目录之后就创建一个完全隔离的环境,方便用户在完全隔离的环境下进行开发。
在使用 chroot 之后,系统的目录结构将以指定的目录作为 “/”,以下操作均是在新的根目录下执行了。

bash-4.2# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
bash-4.2# python --version
Python 2.7.5
bash-4.2# exit

  1. 创建CentOS系统基础镜像:

cd /opt/minios/image.d && tar --numeric-owner -cvf /opt/minios/minios.tar .
或:
tar --numeric-owner -cvf /opt/minios/minios.tar -C /opt/minios/image.d/ .

将打包的文件系统导入Docker本地:

cat /opt/minios/minios.tar | docker import - minios:v1

查看Docker的本地镜像仓库:

docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
minios v1 676510670fa0 24 minutes ago 268MB

  1. 运行容器:

docker run -idt --name minios minios:v1 /bin/bash
docker exec -it minios /bin/bash
bash-4.2# ip a
bash-4.2# exit

你可能感兴趣的:(制作CentOS Docker基础镜像)