有一个已有的image,如何预安装vim?

譬如网上下的mysql,canal等docker image
如何预安装vim,这样每次重启的时候不用进容器里手动去装vim
想到的方案

1 修改Dockerfile,但是这个image是已有的,怎么修改?
2 docker-compose.yml里用command安装,这样如果已有的image里Dockerfile里的CMD会被覆盖,有风险

怎么办?

阅读 505
评论
    3 个回答

    以你原本的镜像为基础再做一个镜像,Dockerfile 大致是:

    FROM <baseimage>
    USER root
    RUN apt-get update && apt-get install -y vim

    如果基础镜像包管理工具是别的比如 yum 流程也是一样的。

    评论 赞赏
      fefe
      • 8.2k

      用这个已有的 image 做基础镜像,再自己做一个新镜像就可以了。

      评论 赞赏

        如果有dockerfile可以修改自行build。
        如果没有的话也是可以的:

        1. docker run -it --name test image_name /sh
        2. 然后命令安装需要的软件vim等
        3. exit退出容器
        4. 此时docker ps -a 是可以看到刚才的容器test的,里面已经有了安装的软件
        5. 将容器打包为镜像 docker commit test myimage:v1
        6. 然后就可以尽情使用myimage:v1镜像了
        评论 赞赏
          撰写回答

          登录后参与交流、获取后续更新提醒