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)
点击查看代码
[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 .
点击查看代码
[root@localhost redis]# docker images;
REPOSITORY TAG IMAGE ID CREATED SIZE
redis v1 42a64ab82e0a 23 hours ago 13.3MB

浙公网安备 33010602011771号