1、安装并配置CentOS 8.1
1)CentOS 8.0 图形化安装
2)CentOS 8.0 基本配置
说明:以最小化方式安装CentOS 8.1,如下图所示:

2、安装Docker
3、卸载不必要的软件包
为了缩小文件系统的体积,需要删除一些不必要的软件包。
[root@server ~]# yum remove iwl* *firmware* --exclude=kernel-firmware
4、清除yum缓存
清楚yum缓存,进一步缩小文件系统的体积。
[root@server ~]# yum clean all
[root@server ~]# rm -rfv /var/cache/yum
5、打包CentOS 8.1镜像
使用tar进行打包,排除一些不必要的目录。
[root@server ~]# tar --numeric-owner --exclude=/proc --exclude=/sys --exclude=/mnt --exclude=/tmp --exclude=/var/cache --exclude=/usr/share/{foomatic,backgrounds,perl5,fonts,cups,qt4,groff,kde4,icons,pixmaps,emacs,gnome-background-properties,sounds,gnome,games,desktop-directories} --exclude=/var/log -zcvf /mnt/CentOS-8.1-BaseImage.tar.gz /
[root@server ~]# ls -l /mnt
total 519836
-rw-r--r--. 1 root root 532309180 Apr 14 10:48 CentOS-8.1-BaseImage.tar.gz
6、导入到Docker镜像
[root@server ~]# cat /mnt/CentOS-8.1-BaseImage.tar.gz | docker import - centos8.1-tar
sha256:1e416cde6204fa32cea1af5b9ade2a65ede910fae50e4daab00f279c1a33c1da
[root@server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos8.1-tar latest 1e416cde6204 37 seconds ago 1.32GB
注:导入Docker的镜像名称必须是全小写字母,不支持大写字母,如果包含大写字母,会提示invalid reference format: repository name must be lowercase
。
7、运行Docker容器
[root@server ~]# docker run -it centos8.1-tar /bin/bash
[root@52054147ac39 /]# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 8.0G 3.2G 4.9G 39% /
tmpfs 64M 0 64M 0% /dev
tmpfs 995M 0 995M 0% /sys/fs/cgroup
shm 64M 0 64M 0% /dev/shm
/dev/mapper/cl-root 8.0G 3.2G 4.9G 39% /etc/hosts
tmpfs 995M 0 995M 0% /proc/asound
tmpfs 995M 0 995M 0% /proc/acpi
tmpfs 995M 0 995M 0% /proc/scsi
tmpfs 995M 0 995M 0% /sys/firmware
[root@52054147ac39 /]# more /etc/centos-release
CentOS Linux release 8.1.1911 (Core)
8、删除已运行的容器
[root@server ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d893b9914184 centos8.1-tar "/bin/bash" About a minute ago Exited (0) 56 seconds ago bold_tharp
[root@server ~]# docker rm d893b9914184
d893b9914184
[root@server ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9、删除已导入的镜像
[root@server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos8.1-tar latest c1e3e1bf7b1e 3 minutes ago 1.42GB
[root@server ~]# docker rmi c1e3e1bf7b1e
Untagged: centos8.1-tar:latest
Deleted: sha256:c1e3e1bf7b1e70a5075cdc0dab27e0e00e53c2aaf47e21b99315e4824b4a3862
Deleted: sha256:a52e205d3c2a1fca4f2f2c5dc6b9171901fe00ecdb82190ee90378013286d409
[root@server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
注:删除镜像之前,必须先删除该镜像已运行过的容器,否则会提示Error response from daemon: conflict: unable to delete 1e416cde6204 (must be forced) - image is being used by stopped container 52054147ac39
。
网友评论