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

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

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

怎么办?

阅读 5k
3 个回答

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

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

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

用这个已有的 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镜像了
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题