docker容器建立后是在本容器中新建数据库还是在其他容器中另外建一个数据库,或者是在宿主机中建?
2个回答
展开全部
docker搭建了lnmp环境后,如果需要访问安装在宿主机上的数据库或中间件,是不能直接使用127.0.0.1这个ip的,这个ip在容器中指向容器自己,那么应该怎么去访问宿主机呢:
例如你的docker环境的虚拟IP是192.168.99.100,那么宿主机同样会托管一个和192.168.99.100同网段的虚拟IP,并且会是主IP:192.168.99.1,那么就简单了,在容器中访问192.168.99.1这个地址就等于访问宿主机,问题解决
注意,通过192.168.99.1访问宿主机,等于换了一个ip,如果数据库或中间件限制了本机访问或者做了ip段限制,要记得添加192.168.99.1到白名单
本回答由网友推荐
例如你的docker环境的虚拟IP是192.168.99.100,那么宿主机同样会托管一个和192.168.99.100同网段的虚拟IP,并且会是主IP:192.168.99.1,那么就简单了,在容器中访问192.168.99.1这个地址就等于访问宿主机,问题解决
注意,通过192.168.99.1访问宿主机,等于换了一个ip,如果数据库或中间件限制了本机访问或者做了ip段限制,要记得添加192.168.99.1到白名单
本回答由网友推荐
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
docker的意义就在于“隔离运行环境”,这样才便于快速开发、部署。使用docker可以“原封不动”地从Dev到Ops,这也是docker的魅力所在。所以你的数据库docker应当是在自己内部建立数据库,这样可以方便地把它迁移动任何地方。
当然这并不影响你在其他容器中建立数据库,或在宿主机建立,并和容器通讯,但是在没有充足理由的情况下,不推荐这么做,否则你就要问问自己,我使用docker的目的是什么。
当然这并不影响你在其他容器中建立数据库,或在宿主机建立,并和容器通讯,但是在没有充足理由的情况下,不推荐这么做,否则你就要问问自己,我使用docker的目的是什么。
追问
一个容器内部配置上运行所需要的所有东西吗?比如mysql redis mq 等等。。。那样生成的镜像会不会很庞大,如果不是镜像太大,这样很舒服,配好一次,哪哪都能运行,我刚学习不久,对这些还不是很懂
追答
你的理解有问题,每个容器都应该是一个“最小运行单位”,这样你就可以在主机上运行成千上万个容器而互不影响,一个现在项目当然会包括很多层,比如你的数据库、服务层、UI层等等,每个具体的功能可以(也应该)在一个容器里运行,它们之间通过某种方式去通讯,比如流行的API Gateway等等,这样你的体系就是松耦合的,很容易开发、变更、部署。
建议你好好学习一下CI/CD方面的知识,会对docker为什么产生,怎样应用才是它的目的有进一步的理解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询