前言
之前遇到有个项目丢失了war包,只有镜像和容器文件,但是现在需要变更数据库地址重新部署。更奇葩的是数据库配置不是在配置文件中,而是在一个Jar包中,需要把这个Jar包解压,然后修改解压后的某一个文件,然后重新打包上传,这就引入了这次的需求。
解决方案
第一想法是在容器里开SSH服务,然后SSH进去,但是立马被自己否了,因为镜像只Expose了单端口,即应用访问的端口。如果需要其他端口服务,需要重新制作镜像并Expose其他端口,例如SSH就需要Expose22端口,相对比较麻烦。所以就找到以下这种比较傻但是有效的方式:
启动容器时候挂载容器里的一个空目录到本地一个目录,然后docker exec进入容器将需要下载的文件复制到容器里的那个空目录,退出容器,done!
简单方便!