将 link docker 容器与网络混合
mix link docker containers with network
我有以下设置:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eab42051ca26 web-www:20180804 "node run.js" 8 minutes ago Up 8 minutes 3000/tcp web-www
63ec48e93a77 jwilder/nginx-proxy:latest "/app/docker-entrypo…" 9 hours ago Up 9 hours 0.0.0.0:80->80/tcp nginx-proxy-server
463ffd55260b fiorix/freegeoip "/go/bin/freegeoip" 9 hours ago Up 9 hours 8080/tcp freegeoip
bdc702c370ec euvat "/usr/local/bin/euva…" 9 hours ago Up 9 hours 3000/tcp euvat
40c07de732fa redis:4.0.10 "docker-entrypoint.s…" 9 hours ago Up 9 hours 6379/tcp redis-www
76831834f59d mongo:4.0 "docker-entrypoint.s…" 9 hours ago Up 9 hours 27017/tcp mongo-www
我的 web-www node.js 应用通过
连接到 Redis 和 mongo
NETWORK ID NAME DRIVER SCOPE
74d8f38aca38 bridge bridge local
1c894a7fa176 host host local
ca02c5ccac55 network-www bridge local
7226d9cc5360 none null local
我的 run.sh 文件是这样的:
OLDAPP="$(docker ps --all --quiet --filter=name="$APP")"
if [ -n "$OLDAPP" ]; then
docker stop $OLDAPP && docker rm $OLDAPP
fi
docker run --name web-www \
--network network-www \
--link euvat:euvat \
--link freegeoip:freegeoip \
--env VIRTUAL_HOST=araweelo.local \
--env-file /env/web-www.env \
web-www:20180804.182446
所以,现在我正在开始一个新的开发堆栈 dev-www
例如,所以我将创建 network-dev
,启动 redis-dev
和 mongo-dev
但想分享euvat
和 freegeoip
容器与 web-www
容器。
这是执行此操作的正确方法还是有替代方法?
非常感谢任何建议。
Docker links are deprecated 可能很快就会被删除。
最好提前创建网络、容器并将容器加入网络
docker network create network-www
docker run --name web-www \
--env VIRTUAL_HOST=araweelo.local \
--env-file /env/web-www.env \
web-www:20180804.182446
docker network connect network-www web-www
docker network connect network-www euvat
docker network connect network-www freegeoip
以上命令将创建一个 network-www
用户定义的桥接网络并将 euvat
、web-www
和 freegeoip
容器连接到该网络。
根据需要 Replace/add 个容器。编写一个在单个命令中启动容器的组合文件可能是一个更好的主意
我有以下设置:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eab42051ca26 web-www:20180804 "node run.js" 8 minutes ago Up 8 minutes 3000/tcp web-www
63ec48e93a77 jwilder/nginx-proxy:latest "/app/docker-entrypo…" 9 hours ago Up 9 hours 0.0.0.0:80->80/tcp nginx-proxy-server
463ffd55260b fiorix/freegeoip "/go/bin/freegeoip" 9 hours ago Up 9 hours 8080/tcp freegeoip
bdc702c370ec euvat "/usr/local/bin/euva…" 9 hours ago Up 9 hours 3000/tcp euvat
40c07de732fa redis:4.0.10 "docker-entrypoint.s…" 9 hours ago Up 9 hours 6379/tcp redis-www
76831834f59d mongo:4.0 "docker-entrypoint.s…" 9 hours ago Up 9 hours 27017/tcp mongo-www
我的 web-www node.js 应用通过
连接到 Redis 和 mongoNETWORK ID NAME DRIVER SCOPE
74d8f38aca38 bridge bridge local
1c894a7fa176 host host local
ca02c5ccac55 network-www bridge local
7226d9cc5360 none null local
我的 run.sh 文件是这样的:
OLDAPP="$(docker ps --all --quiet --filter=name="$APP")"
if [ -n "$OLDAPP" ]; then
docker stop $OLDAPP && docker rm $OLDAPP
fi
docker run --name web-www \
--network network-www \
--link euvat:euvat \
--link freegeoip:freegeoip \
--env VIRTUAL_HOST=araweelo.local \
--env-file /env/web-www.env \
web-www:20180804.182446
所以,现在我正在开始一个新的开发堆栈 dev-www
例如,所以我将创建 network-dev
,启动 redis-dev
和 mongo-dev
但想分享euvat
和 freegeoip
容器与 web-www
容器。
这是执行此操作的正确方法还是有替代方法?
非常感谢任何建议。
Docker links are deprecated 可能很快就会被删除。
最好提前创建网络、容器并将容器加入网络
docker network create network-www
docker run --name web-www \
--env VIRTUAL_HOST=araweelo.local \
--env-file /env/web-www.env \
web-www:20180804.182446
docker network connect network-www web-www
docker network connect network-www euvat
docker network connect network-www freegeoip
以上命令将创建一个 network-www
用户定义的桥接网络并将 euvat
、web-www
和 freegeoip
容器连接到该网络。
Replace/add 个容器。编写一个在单个命令中启动容器的组合文件可能是一个更好的主意