Centos7.9 构建Redis最小Docker镜像

前提环境:
系统类型:CentOS Linux release 7.9.2009
环境:
已经安装好docker环境
已经在本地手动安装好Redis软件
参考:
安装docker环境:https://www.cnblogs.com/leidegaga/p/15549376.html
源码编译安装Redis: https://www.cnblogs.com/leidegaga/p/15551911.html

环境准备好后,开始Redis最小镜像制作。
1、使用ldd命令查看Redis服务依赖的库,把依赖的库收集起来。

点击查看代码
[root@localhost /]# ldd /usr/local/bin/redis-server
	linux-vdso.so.1 =>  (0x00007ffeca95b000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f925772c000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f9257528000)
	librt.so.1 => /lib64/librt.so.1 (0x00007f9257320000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f9257104000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f9256d36000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f9257a2e000)
根据redis依赖的库所在目录,创建一个目录:lib64(如果有两个目录就创建两个),把相应的库拷贝到新创建的对应目录中。
点击查看代码
[root@localhost lib64]# pwd
/files/redis/lib64
[root@localhost lib64]# ll
total 3584
-rwxr-xr-x. 1 root root  163312 Nov 13 16:49 ld-linux-x86-64.so.2
-rwxr-xr-x. 1 root root 2156592 Nov 13 17:15 libc.so.6
-rwxr-xr-x. 1 root root   19248 Nov 13 17:13 libdl.so.2
-rwxr-xr-x. 1 root root 1136944 Nov 13 17:16 libm.so.6
-rwxr-xr-x. 1 root root  142144 Nov 13 17:15 libpthread.so.0
-rwxr-xr-x. 1 root root   43712 Nov 13 17:14 librt.so.1

2、找到Redis-Server所在的启动命令所在的目录,在新建的lib64的同级目录下,创建出Redis-Server启动命令的目录。
mkdir -p usr/local/bin/
把Redis-Server启动命令拷贝到新的目录中
cp /usr/local/bin/redis-server usr/local/bin/

把新创建的lib64和usr目录打包成文件

点击查看代码
tar -zcvf rootfs.tar.gz usr/* lib64/*
[root@localhost redis]# ll rootfs.tar.gz 
-rw-r--r--. 1 root root 4951575 Nov 13 17:20 rootfs.tar.gz

3、找到redis配置文件,放到lib64同级目录下。
配置文件名称:redis.conf ,本地redis如果时源码编译安装的可以在源码包中找到配置文件。

4、编写Dockerfile文件

点击查看代码
FROM scratch
ADD rootfs.tar.gz /
COPY redis.conf /etc/redis/redis.conf
EXPOSE 6379
CMD ["redis-server"]

官方说明:scratch镜像是一个空的镜像,可以用于构建busybox等超小镜像,可以说是真正的从零开始构建属于自己的镜像。

5、查看所有的文件所在位置:

点击查看代码
[root@localhost redis]# tree
.
├── Dockerfile
├── lib64
│   ├── ld-linux-x86-64.so.2
│   ├── libc.so.6
│   ├── libdl.so.2
│   ├── libm.so.6
│   ├── libpthread.so.0
│   └── librt.so.1
├── redis.conf
├── rootfs.tar.gz
└── usr
    └── local
        └── bin
            └── redis-server

4 directories, 10 files

6、构建镜像
进入到Dockerfile 的同级目录下:

点击查看代码
docker build -t redis:v1 -f Dockerfile .
使用docker images;命令查看自己刚刚构建的镜像。
点击查看代码
[root@localhost redis]# docker images;
REPOSITORY                  TAG              IMAGE ID       CREATED        SIZE
redis                       v1               42a64ab82e0a   23 hours ago   13.3MB
posted @ 2021-11-14 16:17  leidegaga  阅读(473)  评论(0)    收藏  举报