docker之webapi与mysql容器互联

假设我们要运行两个镜像,一个为mysql镜像,一个为webapi镜像,webapi中要连接mysql数据库操作,连接字符串如下所示,其中db就是我们的mysql数据库的主机名,可以通过多种方式实现api和db之间的连接

{
 "ConnectionStrings": {
    "MysqlUser": "server=db;port=3306;database=beta_user;userid=root;password=password123" 
  } 
}
  • 启动mysql镜像
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password123 -e MYSQL_ROOT_HOST=% -v d:/mysql/config/my.cnf:/etc/my.cnf --name mysql01
mysql/mysql-server
  • 启动wepapi镜像
docker run -d -p 8801:80 --name=mysql01 myapi
  • 检查api和mysql是否联通
docker exec -it myapi bash
ping db
  • 使用docker netcork 将容器连接到一起
docker network ls
docker network create -d bridge mybridge
  • 重命名方式连接容器
docker rename mysql01 db
docker network connect mybridge db
docker network connect mybridge myapi
  • 用别名的方式把容器连接到network中
docker network connect --alias db mybridge mysql01
  • 在容器启动时指定network
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password123 -e MYSQL_ROOT_HOST=% -v d:/mysql/config/my.cnf:/etc/my.cnf --name db  --network=mybridge
mysql/mysql-server

docker run -d -p 8801:80 --network=mybridge --name myapi  myapi

你可能感兴趣的:(docker之webapi与mysql容器互联)