Docker 实现容器相互联系
日期:2021-03-28
浏览:
89 评论:0
核心提示:Docker 实现容器相互联系写作背景:由于自己在玩耍 Docker 时,无法分清宿主机端口与容器端口之间的关系,以致于连接失败;最后也是花费大把时间来学习才能搞懂,于是就写下该篇内容记录一下自己的成长连接关键:相互连接的容器,需要在相同的网络下。如 docker-compose.yml设置相同的networks值容器之间的访问,使用容器自己的端口个人经历:宿主机通过laradock安装gitlab与jenkins容器。宿主机通过http://localhost:8989正常访问gi
Docker 实现容器相互联系
写作背景:
- 由于自己在玩耍 Docker 时,无法分清宿主机端口与容器端口之间的关系,以致于连接失败;最后也是花费大把时间来学习才能搞懂,于是就写下该篇内容记录一下自己的成长
连接关键:
- 相互连接的容器,需要在相同的网络下。如
docker-compose.yml
设置相同的networks
值
- 容器之间的访问,使用容器自己的端口
个人经历:
- 宿主机通过
laradock
安装gitlab
与jenkins
容器。宿主机通过http://localhost:8989
正常访问gitlab
的web
页面,通过http://localhost:8090
正常访问jenkins
的web
页面
- 我想在
jenkins
里面访问gitlab
的页面,然后将http://localhost:8989
中的localhost
切换成127.0.0.1
、容器IP
、容器名,但是都连接都是失败了
- 然后经过NN个小时查阅资料与测试,最终发现容器间的相互访问,是在同一网络的基础上,然后通过容器自身开放的端口来访问的,与映射无关。
- 于是,在
docker-compose.yml
配置文件中设置gitlab
与jenkins
容器的networks
值为相同值,如均设置为backend
networks:
- backend
- 最后在
jenkins
里面通过http://gitlab
即可访问。URL
中的gitlab
会解析成gitlab
容器的IP
。这里没有使用8989
端口,是因为gitlab
的web
页面在容器的80
端口
本文转载自:网络
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486