DockerFile制作镜像(Dockerfile Creates an Image)

[复制链接]
发表于 2025-3-30 10:43:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
DockerFile制作镜像

hub.docker.com 搜索到的 Redis官方镜像,提示我们可以创建自己的 DockerFile 来添加 redis.conf 文件:


于是,我准备举行首次 DockerFile 的制作尝试。
一、准备工作

1.1 下载 redis.conf

我的方案是从 GitHub 上下载 redis.conf。我选择了 5.0.14 版本,各位可以选择自己必要的版本。
1.2 修改配置

1.2.1 解释掉bind 127.0.0.1

  1. # bind 127.0.0.1
复制代码
关于 bind 127.0.0.1,Redis的bind的误区 讲得挺好的:

  • bind <ip> 是绑定本机的IP地址,(准确的是:本机的网卡对应的IP地址,每一个网卡都有一个IP地址)
  • 127.0.0.1 是一个回环地址(Local Loopback),也就是只有当地才气访问到这个回环地址,而其他的盘算机也只能访问他们自己的回环地址。
假如配置 bind 127.0.0.1,那就只有本机可以访问,而其他盘算机不能访问。因此,我们在 redis.conf 中解释掉这一行
1.2.2 修改daemonize no


  1. daemonize no
复制代码
daemonize 表现是否以保卫进程运行,在构建 Docker 镜像中假如设置为 daemonize yes,会导致启动后立刻自动关闭,用 docker ps 命令查询不到进程,
且用 docker logs 容器id/容器名称 查询日记时,也没有报错,而是以下内容:

  1. 1:C 17 Jan 2022 11:29:12.523 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
  2. 1:C 17 Jan 2022 11:29:12.524 # Redis version=5.0.14, bits=64, commit=00000000, modified=0, pid=1, just started
  3. 1:C 17 Jan 2022 11:29:12.524 # Configuration loaded
复制代码
1.2.3 增长暗码验证

打开 requirepass 和 masterauth 的解释:
  1. requirepass abc123
  2. masterauth abc123
复制代码
开启 requirepass 要求客户端在处理任何其他命令之前发出 AUTH ;
开启 masterauth ,假如主机受暗码保护(开启了 requirepass 配置指令),则可以在启动复制同步过程之前通知复制副本举行身份验证,否则主机将拒绝复制副本哀求。

二、构建Dockerfile

2.1 文件布局

  1. geekziyu-redis
  2. ├── Dockerfile
  3. └── redis.conf
复制代码
  geekziyu-redis 是我 Windows 电脑的文件夹: D:\DockerContainer\geekziyu-redis
  2.2 Dockerfile

留意,文件名为 Dockerfile:D 要大写,f 要小写,且不带文件后缀。
  1. FROM redis:5.0.14
  2. MAINTAINER [email protected]
  3. COPY redis.conf /usr/local/etc/redis/redis.conf
  4. EXPOSE 6379
  5. CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
复制代码
DockerFile Reference
2.3 build

  1. docker build -t geekziyu/redis:latest .
复制代码
留意末了这个 . ,省略它会报错。
之后,用
  1. docker images
复制代码
检查镜像,发现多出 geekziyu/redis

2.4 run

运行镜像,启动进程:
  1. docker run -it --name ziyuredis -p 6379:6379 -d geekziyu/redis:latest
复制代码
假如不加上 -p 6379:6379 ,那么宿主机是访问不了的。
三、验证

打开 Bash :
  1. docker exec -it ziyuredis /bin/bash
复制代码
接着运行 redis-cli,并验证暗码:
  1. root@ae284054ebc8:/# redis-cli
  2. 127.0.0.1:6379> auth abc123
复制代码

至此,我们就利用 Dockerfile 简朴的构建了一个Redis镜像并用此镜像运行了一个进程。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表