美文网首页
【DOCKER】WIN10发布SPRINGBOOT项目(三)

【DOCKER】WIN10发布SPRINGBOOT项目(三)

作者: 地主家有30头牛 | 来源:发表于2021-11-14 18:12 被阅读0次

    使用DOCKER NETWORK连接容器

    原本想使用--link来连接springboot容器和mysql容器,但是配置以后一直不成功,查了一下link已经被弃用(不知道是不是不成功的原因),推荐使用network。

    1。新建一个net work

    docker network create dockernet
    #dockernet是你的命名
    

    2。改造springboot项目,增加一个对数据库(mysql+mybatis)的检索操作。(具体的不展开了,只记录说明主题相关的部分)

    ➤HelloController.java
    添加以下方法,如果检索成功,会返回一个品牌名字。

    @RequestMapping(value="/brand")
        public String brand() {
            Long id = 1L;
            PmsBrand brand = pmsBrandService.getBrand(id);
            return brand.getName();
        }
    

    先在本地测试,确认以上方法可以正确检索出内容。

    ➤application.properties
    为了实现docker上的,容器间的通信,要把项目配置文件里,数据库的URL配置做一点小修改.
    修改前:localhost
    修改后:mysql(这是我之后要加入到docker network的mysql容器的名字,可以理解成域名,即使容器重启IP,只要这个名字不变仍然可以连接)

    修改前:
    spring.datasource.url=jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    
    修改后:
    spring.datasource.url=jdbc:mysql://mysql:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    

    3。重新打包docker-test,启动的同时加入到dockernet里。
    (打包等步骤参考:https://www.jianshu.com/p/e37b9aaade83
    在命令里加上 参数:--network docker网络名 --network-alias 容器域名

    docker run  -d --name docker-test --network dockernet --network-alias docker-test -p 9999:9110 -t springboot/docker-test
    

    4。重新发布mysql容器,并加入到dockernet里。

    docker run  -d --name mysql --network dockernet --network-alias mysql  -p 3306:3306 -t mysql5.7
    

    5。查看dockernet网络信息
    命令:docker network inspect docker网络名
    可以看到docker-test和mysql两个容器已经加入dockernet网络

    C:\WINDOWS\system32>docker network inspect dockernet
    [
        {
            "Name": "dockernet",
            "Id": "8de96a4aac582d175a9a996b188678712157bd80b91582f24fa8f8321f9e41f2",
            "Created": "2021-11-15T16:15:48.3827776+08:00",
            "Scope": "local",
            "Driver": "nat",
            "EnableIPv6": false,
            "IPAM": {
                "Driver": "windows",
                "Options": {},
                "Config": [
                    {
                        "Subnet": "172.28.48.0/20",
                        "Gateway": "172.28.48.1"
                    }
                ]
            },
            "Internal": false,
            "Attachable": false,
            "Ingress": false,
            "ConfigFrom": {
                "Network": ""
            },
            "ConfigOnly": false,
            "Containers": {
                "2cbc32edc214dcccbe0f23717ff5345f7f4aea19246646c47b7dcfc43a9e4e7b": {
                    "Name": "docker-test",
                    "EndpointID": "1d6e713937f4b8c865162375bc58c505431156b6e8b8e8453e300729c1acf30c",
                    "MacAddress": "00:15:5d:13:c0:b2",
                    "IPv4Address": "172.28.48.68/16",
                    "IPv6Address": ""
                },
                "44311d441a1d8f72e14d8f123937b6c341563219897143adbc1c933b48cd5a1f": {
                    "Name": "mysql",
                    "EndpointID": "b8a43c428b22124bff6d28cea67a341dda783ccca0d727b59da4254bbe657bad",
                    "MacAddress": "00:15:5d:13:ce:65",
                    "IPv4Address": "172.28.61.68/16",
                    "IPv6Address": ""
                }
            },
            "Options": {
                "com.docker.network.windowsshim.hnsid": "325F4C4B-EB9A-43DF-879C-D7E7888DD462"
            },
            "Labels": {}
        }
    ]
    
    C:\WINDOWS\system32>
    

    6。见证奇迹的时刻到了,使用docker端口访问docker-test,成功。


    图片.png

    相关文章

      网友评论

          本文标题:【DOCKER】WIN10发布SPRINGBOOT项目(三)

          本文链接:https://www.haomeiwen.com/subject/hfpqtrtx.html