docker 容器互相访问问题

2022-01-15 17:16:54 +08:00
 fangwenxue
docker ps 

c1c0fd7328d4   mongo                       "docker-entrypoint.s…"   About an hour ago   Up About an hour   0.0.0.0:27017->27017/tcp, :::27017->27017/tcp   mongodb

另外一个 docker 访问 mongodb 的时候

docker run -d \
	--name=pylist \
	-p 12133:8080 \
	-e MONGO_URI=mongodb://root:xxx@mongodb:27017 \
2034 次点击
所在节点    问与答
13 条回复
siknet
2022-01-15 17:19:30 +08:00
多挂个宿主目录啊,AB 都访问这个目录
LLaMA2
2022-01-15 17:27:30 +08:00
docker network create brg-net
docker run -it --name <容器名> —network brg-net --network-alias home_1 <镜像名>
docker run -it --name <容器名> —network brg-net --network-alias school_1 <镜像名>

如此这般,在 home_1 的环境中可以使用 school_1 的名字访问 school_1 的服务

还有很多方法
fangwenxue
2022-01-15 18:24:21 +08:00
@ye4tar 容器已经启动了,怎么添加网络
sunny352787
2022-01-15 18:26:19 +08:00
容器名叫 mongo 为啥访问地址写的 mongodb ?
fangwenxue
2022-01-15 18:33:39 +08:00
@sunny352787 mongo 是镜像明。容器名是 mongodb
sunny352787
2022-01-15 19:29:31 +08:00
@fangwenxue 哦,看错了,那这个就是网络问题了,或者像二楼那样重新设置网络,或者用 docker-compose 重新组成一个集群,如果不想关容器的话,由于你已经对外映射了端口那么可以直接访问宿主机的 IP:27017 这样连接 mongo
ETiV
2022-01-15 19:32:04 +08:00
docker run --help
...
--link list Add link to another container
...
lingex
2022-01-15 21:01:26 +08:00
1.两个容器都使用 --net=host
2.另一个容器 --link=mongo

其中 2 这个方式有一些局限: 如果 mongo 容器没在运行,另一个容器也启动不了;
并且如果 mongo 重建了,原先 link 它的容器也会失效

用#2 的方式比较好。
jfdnet
2022-01-15 21:05:15 +08:00
可以用 --link 其他容器,如果某个容器对其他容器有依赖。
xzysaber
2022-01-16 09:46:00 +08:00
没有 link 。
5200721
2022-01-16 13:41:56 +08:00
docker network create xxx 然后容器启动的时候指定新建的网络 ,容器间就可以通过 name 访问了,如果已经启动的容器可以通过 docker network connect/disconnect 重新连接新网络
gam2046
2022-01-16 15:06:16 +08:00
需要访问其他容器的容器在创建时添加 link 或 depend 参数,然后容器内可直接通过容器名进行访问。

如果相互依赖的容器比较多,推荐使用 docker-compose 进行管理。
LLaMA2
2022-01-22 10:16:17 +08:00
@fangwenxue
docker container update —network brg-net --network-alias home_1 <容器名>

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/828454

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX