84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
在容器里安装新软件后,必须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