在容器里安装新软件后,必须commit后,再run来添加端口么,这要麻烦死了啊:(
认证0级讲师
如果run时用 -p 映射端口还是麻烦的话,可以写在Dockerfile
-p
可以把run命令写成shell文件,以后直接执行这个文件就是了。不需要每次写。
可能你的用法不是非常正确
一个容器一般来说应该只运行一个服务的, 在这样的场合下, 往一个容器里面安装新软件再commit就显得很奇怪
你可以创建一个基础镜像, 其它的都在这个基础镜像上build出来
然后, docker-compose和dockerfile本质上就是可以让你方便管理容器和镜像的 (多同一个dockerfile的多次build是会被缓存成为镜像的), 所以你可以在你的基础镜像上多写几个dockerfile, 每个dockerfile只装一个你需要用到的服务
截图是我的docker-compose.yml, 运行起来就是非常明确的一个服务一个container
如果run时用
-p
映射端口还是麻烦的话,可以写在Dockerfile可以把run命令写成shell文件,以后直接执行这个文件就是了。不需要每次写。
可能你的用法不是非常正确
一个容器一般来说应该只运行一个服务的, 在这样的场合下, 往一个容器里面安装新软件再commit就显得很奇怪
你可以创建一个基础镜像, 其它的都在这个基础镜像上build出来
然后, docker-compose和dockerfile本质上就是可以让你方便管理容器和镜像的 (多同一个dockerfile的多次build是会被缓存成为镜像的), 所以你可以在你的基础镜像上多写几个dockerfile, 每个dockerfile只装一个你需要用到的服务
截图是我的docker-compose.yml, 运行起来就是非常明确的一个服务一个container