需求
在镜像运行的时候,有可能会不同的容器对应的参数不一样,比如数据库连接字符串或者其他一些配置。
解决办法
1借助第三方数据程序
比如数据库,redis等。
将配置信息存储在数据库中,程序初始化的时候读取数据库中的配置信息,这样通过修改数据库的内容就可以了。
或者将数据写入数据库,也可以在宿主中查看。
2 借助 Volume
https://docs.docker.com/engine/reference/builder/#volume (官方的介绍)
文件挂载。这样可以将容器内的内容输出到宿主,也可以通过修改宿主对应的文件影响容器内的配置文件
配置方式可以参考 https://blog.csdn.net/iml6yu/article/details/116734409
dockerfile中配置
VOLUME ["/app/conf","/app/Logs"]
运行方式
命令方式运行
docker run -v C:\shimada\SY-VIS-2101\src\SY_VIS_2101\service\Shimada.CarlingService\bin\conf:/app/conf -v C:\shimada\SY-VIS-2101\src\SY_VIS_2101\service\Shimada.CarlingService\bin\Logs:/app/Logs --name debug3 -d carlingservice:0.0.5.5
重点: -v参数一定要紧跟着run 如果在run和-v中间添加了其他参数会导致执行失败。
desktop版本的docker在添加挂载的时候会有确认提示框,提示是否分享目录。(也可以提前在Setting中配置好File Sharing)