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 run -d \
--name=pylist \
-p 12133:8080 \
-e MONGO_URI=mongodb://root:xxx@mongodb:27017 \
ServerSelectionTimeoutError("mongodb:27017: [Errno -2] Name or service not known, Timeout: 30s
容器之间互相怎么访问的?
1
siknet 2022-01-15 17:19:30 +08:00
多挂个宿主目录啊,AB 都访问这个目录
|
2
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 的服务 还有很多方法 |
3
fangwenxue OP @ye4tar 容器已经启动了,怎么添加网络
|
4
sunny352787 2022-01-15 18:26:19 +08:00
容器名叫 mongo 为啥访问地址写的 mongodb ?
|
5
fangwenxue OP @sunny352787 mongo 是镜像明。容器名是 mongodb
|
6
sunny352787 2022-01-15 19:29:31 +08:00
@fangwenxue 哦,看错了,那这个就是网络问题了,或者像二楼那样重新设置网络,或者用 docker-compose 重新组成一个集群,如果不想关容器的话,由于你已经对外映射了端口那么可以直接访问宿主机的 IP:27017 这样连接 mongo
|
7
ETiV 2022-01-15 19:32:04 +08:00
docker run --help
... --link list Add link to another container ... |
8
lingex 2022-01-15 21:01:26 +08:00
1.两个容器都使用 --net=host
2.另一个容器 --link=mongo 其中 2 这个方式有一些局限: 如果 mongo 容器没在运行,另一个容器也启动不了; 并且如果 mongo 重建了,原先 link 它的容器也会失效 用#2 的方式比较好。 |
9
jfdnet 2022-01-15 21:05:15 +08:00
可以用 --link 其他容器,如果某个容器对其他容器有依赖。
|
10
xzysaber 2022-01-16 09:46:00 +08:00
没有 link 。
|
11
5200721 2022-01-16 13:41:56 +08:00 via Android
docker network create xxx 然后容器启动的时候指定新建的网络 ,容器间就可以通过 name 访问了,如果已经启动的容器可以通过 docker network connect/disconnect 重新连接新网络
|
12
gam2046 2022-01-16 15:06:16 +08:00
需要访问其他容器的容器在创建时添加 link 或 depend 参数,然后容器内可直接通过容器名进行访问。
如果相互依赖的容器比较多,推荐使用 docker-compose 进行管理。 |
13
LLaMA2 2022-01-22 10:16:17 +08:00
@fangwenxue
docker container update —network brg-net --network-alias home_1 <容器名> |