如何利用dockerfile构建一个reids镜像错误 请教大牛帮忙解决 yum怎么不识别呀?

步骤 1 下载 别人搭建好的 redis镜像 <pre> docker pull index.alauda.cn/library/redis </pre> 2 自己在centos环境上构建一个dockerfile ,因为我想在上面提供其他功能 ssh gdb 我想自己可以attach 进去 gdb 一个进程 <pre> # 公共镜像版本 #reids docker pull index.alauda.cn/library/redis来源 FROM redis # 镜像的作者 MAINTAINER wang_cyi <wang_cyi@outlook.com> #RUN yum update -y #01 c++开发环境 RUN yum -y install gcc gcc-c++ autoconf zlib zlib-devel glibc glibc-devel glib2 glib2-devel l curl curl-devel RUN yum -y install gdb git net-tools tcpdump strace valgrind #02 安装openssh-server RUN yum install -y openssh-server sudo RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config # 添加测试用户admin,密码admin,并且将此用户添加到sudoers里 RUN useradd admin RUN echo "admin:admin" | chpasswd RUN echo "admin ALL=(ALL) ALL" >> /etc/sudoers </pre> <strong>问题出现了</strong> 在执行 # ./build.sh Sending build context to Docker daemon 4.096 kB Step 0 : FROM redis ---> e65f97c3eeb6 Step 1 : MAINTAINER wang_cyi <wang_cyi@outlook.com> ---> Using cache ---> d57e0176fc0c Step 2 : RUN yum -y install gcc gcc-c++ autoconf zlib zlib-devel glibc glibc-devel glib2 glib2-devel l curl curl-devel ---> Running in 492db71e7d34 **/bin/sh: 1: yum: not found The command '/bin/sh -c yum -y install gcc gcc-c++ autoconf zlib zlib-devel glibc glibc-devel glib2 glib2-devel l curl curl-devel' returned a non-zero code: 127** <strong>yum存在 说明redis环境 不是centos 这个怎么办?</strong> redis来源: https://hub.alauda.cn/repos/library/redis<strong>加粗文字</strong>
已邀请:

oilbeater - 北大学渣@灵雀云

赞同来自: 王传义

redis 使用的 base image 是 debian 的,你可以用 apt-get 来安装相关软件,或者利用一个 centos 的base image 来构建你自己的镜像。 此外 FROM 的时候最好直接 FROM index.alauda.cn/library/redis 这样会快一些。否则不带任何域名信息 build 时会去 dockerhub 进行校验,网络出问题会很慢

metavige_tw

赞同来自: 王传义

官方的 redis 鏡像本身不是 based CentOS,所以不會有 yum 安裝在上面 就算你的 docker engine Host 是在 CentOS 上,你在 docker container 裡面執行也不能執行 yum 這是 docker 的基本觀念,請先了解 如果你想用 index.alauda.cn/library/redis 這個 Base Image 你的 Dockerfile 就應該寫 FROM index.alauda.cn/library/redis 而不是 FROM redis 先確認你本地端用 docker images 看到的 image name 是什麼在用
1 FROM index.alauda.cn/library/redis 我已经下载到本地了就不需要了 from优先从本地获取吧! 这个跟build 有关系吗? 2 我虚拟机上是centos系统 我用redis 使用的 base image 是 重新构建dockerfile 然后用centos命令肯定不行 现在改为 centos镜像了
【已经解决】我查看index.alauda.cn/library/redis 是不是自己编译的 而是抄袭别人的 根本不自从centos 查看官方的 dockerfile 然后在上面修改

要回复问题请先登录注册