docker容器互联 (.net core容器,mysql容器)

时间:2023-03-09 05:45:54
docker容器互联 (.net core容器,mysql容器)

背景

有两个容器一个运行的.net core的项目 另一个运行的mysql的数据 并且这两个容器在同一个机子上(或者局域网),那么理论上.net core的项目去访问mysql是可以走内网的

但是容器是互相隔离的,所以要互相访问那么就要利用docker的network方式去连接

1.创建bridge

 docker network create -d bridge mybridge

查看bridge

docker inspect user_api01

2.确认数据库在运行,使用bridge去run .net core项目的镜像

docker run -d -p : --net mybridge --name user_api01 -v=/netcore/appsettings_dir/UserAPI/appsettings.json:/app/appsettings.json shitong/user_api:pord

解释参数(不要复制这个 如有需要复制上面的)

docker run
-d //后台运行
-p : //映射物理端口
--net mybridge //指定bridge也就是第一步创建的mybridge --name user_api01 -v=/netcore/appsettings_dir/UserAPI/appsettings.json:/app/appsettings.json shitong/user_api:pord //-v是挂载目录 linux的路径:容器内部的路径

为了容灾 我使用了-v去挂载配置文件 如果你也要采用这种方式那么请在执行命令之前建好文件夹和appsettings.json文件(需要写好配置)

3.桥接互联

docker network connect mysql01

这样就可以把mysql01这个容器连接进 mybridge这个bridge中

需要注意

docker容器互联 (.net core容器,mysql容器)

appsettings.json中的Server的值需要和要链接的容器的name一致