制作redis镜像(实操)

1. 准备工作

下载redis的源码包

wget https://download.redis.io/releases/redis-6.2.1.tar.gz

准备一份redis.conf文件,不准备也可以源码编译完成会有默认的

2. 书写Dockerfile

touch Dockerfile
vi Dockerfile
FROM centos
RUN ["echo", "start"]
# 编译redis工具
RUN yum install -y gcc gcc-c++ net-tools make
# 切换工作目录(容器目录)
WORKDIR /usr/local/redis
# 复制并解压redis源码包
ADD redis-6.2.1.tar.gz .
WORKDIR /usr/local/redis/redis-6.2.1/src
RUN make && make install
WORKDIR /usr/local/redis/redis-6.2.1
# 复制本地配置到redis中
ADD redis.conf ./demo.conf
WORKDIR /usr/local/redis/redis-6.2.1/src
CMD ["./redis-server", "../demo.conf"]

3. build命令制作镜像

运行docker build -t demo/redis:1.0 . (最后是.的Dockerfile在当前目录,可以-f指定Dockerfile位置)

查看镜像是否已经制作完成

4. 创建运行容器

docker run -d -p 6379:6379 镜像ID

5. 测试

进入容器

[root@localhost src]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
8e13a5330ce5        6c000f22dfc6        "./redis-server ....."   11 minutes ago      Up About a minute   0.0.0.0:6379->6379/tcp   eager_mayer
[root@localhost src]# docker exec -it 8e13a5330ce5 /bin/bash
[root@8e13a5330ce5 src]# ./redis-cli -p 6379
127.0.0.1:6379> get test
"test"
127.0.0.1:6379> del test
(integer) 1
127.0.0.1:6379> get test
(nil)
127.0.0.1:6379>

在docker外部访问,需要修改redis配置

进入日志内部,编辑demo.conf

#bind 127.0.0.1 -::1注释掉,bind的意思是指定访问ip,不在bind列表里面的ip是不能方位redis

protected-mode no 关闭redis的保护模式

# requirepass foobared这里是设置密码默认是关闭,可以自行打开并设置密码

我已经在主机上安装了redis,使用redis-cli连接docker的redis容器

到此redis的镜像制作完成白🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉

经验分享 程序员 微信小程序 职场和发展