讨论/技术交流/进来刷每日一题,顺便吐槽一下今天下午用docker的一点小挫折/
进来刷每日一题,顺便吐槽一下今天下午用docker的一点小挫折

瞎弄了一两个小时,netstat, postgre config file,最后觉得还是docker容器隔离性的问题,搜出了这个在stack overflow 1800 多个赞的问题: From inside of a Docker container, how do I connect to the localhost of the machine?

赞的是问题哦,第一个答案有2500个赞 ~ (以前没见过这么多点赞的问题)

docker run --network "host"

用法应该类似我这种把数据库和应用部署在一台机器上,用docker-compose 的话 dump 数据库 会比较麻烦

共 2 个回复

没用过 docker run 命令裸跑,用 docker-compose 的话,在 yml 里面加个 - network_mode: "host" 就好,也差不多。

1

今天正好看完,The kubernetes book 第八章 kubernetes storage,对docker volume的用法之前觉得docker-compose就是开发时把源代码mount进container,只跟着docker的文档做了一个getting start, 对docker了解有限,就感觉是建立在虚拟机更高一层的一个小虚拟机,或者说一个执行环境,dockerfile 也是那个意思从一台linux虚拟机开始添加文件执行命令等。昨天那个问题的上下文是,我开发时把数据存在了本机的postgre上,然后要把数据转移到服务器,先本地dump数据库到一个sql文件,再用ssh传到远程服务器。如果用docker-compose的话需要把dump文件映射到postgre容器里面去重建,后来一想应该也可以用psql 在容器外面进行连接操作,不过本地windows上操作和在linux上有点不一样,服务器本地连接不上容器里面的postgre,而且要用psql需要下载postgre数据库,anyway,就简单化,数据库直接运行在linux上,webserver用docker,kubernetes集群个人小应用就不考虑了,也不可能自己在一堆虚拟机上去建立一个集群。有点跑题了,主要是想问一下kubernetes这种把extenal storage 映射到pod container里面的实际应用,因为一般像web mircservice是无状态的,用kubernetes建立数据库集群是个好主意么?是不是直接运行在虚拟机上就可以了。对于kubernetes的应用了解很缺乏,听过这样一个说法,kubernetes相当于一个分布式操作系统的调度部分,pod里面可以是一台虚拟机,也可以是一个web服务器。好像是在一本书里面看到的,不搬书名了,就是看了那本书我才看kubernetes的想了解一下分布式系统。