菜鸟学习 docker ,最后成功部署在阿里云,实现spring cloud服务注册发现

首先在菜鸟网站学习了 linux的基本操作命令,地址:http://www.runoob.com/linux/linux-tutorial.html

然后在菜鸟网上学习docker 的一些基本知识:http://www.runoob.com/docker/docker-tutorial.html

好,现在回到本地,我用的ide 是 idea 2018.1.6,然后项目是 gradle4.8.1构建的,

作为一个面向百度的自学java菜鸟,首先也是百度,搜出来的几乎都是讲maven的,,,,不过还是搜到几篇将gradle 整合docker的,虽然学到了一些东西,但是没最终完成镜像和容器的创建,地址:https://blog.csdn.net/baidu_22254181/article/details/80789068

 

buildscript {
    ext {
        springBootVersion = '2.0.3.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
      //  classpath("se.transmode.gradle:gradle-docker:1.2")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
//apply plugin: 'docker'

group = 'com.mytx'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

//jar {
//    baseName = "mytx-zuul"
//    version = '0.1.0'
//}
//
//docker {
//    baseImage = "openjdk"
//    maintainer = "srwl"
//}

//task dockerBuilder(type: Docker) {
//    applicationName = jar.baseName
//    tagVersion = version
//    volume('/tmp')
//    //addFile("${jar.baseName}-${version}.jar", "app.jar")
//    //entryPoint(["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", 'app.jar'])
//    dockerfile = file('docker/Dockerfile')
//    exposePort(8080)
//    doFirst {
//        copy {
//            from jar
//            into stageDir
//        }
//    }
//}



repositories {
    mavenCentral()
}


ext {
    springCloudVersion = 'Finchley.RELEASE'
}

我按照帖子上的方法,走完一遍,自动生成了docker/ dockerFile,但是在在生成镜像的时候报错,找不到jar 包,然后我把修改了dockerFile里面的内容

FROM java:8  //自动生成的文件,在这儿是 openjdk 样,这样是有问题的,后面再说
MAINTAINER srwl
VOLUME ["/tmp"]
ADD build/libs/mytx-zuul-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
EXPOSE 8001
dockerFile 算编辑完了,存放的路径,无所谓,你自己能找到就行,我就放的根目录,

然后是安装 插件

至此,插件安装完成 ,接下来设置 插件

链接成功会有 Connection successful 字样!!!!!,这儿都提到 阿里云镜像 ,就贴上几张图片

关于命名什么的,我也不知道一般是怎么命名的,eureka 是后面用来存spring cloud 中eureka 的,我就这样命名了,这个大家喜欢怎么弄就怎么弄,无关紧要。

下面说下安装 docker 客户端,我是win10 系统,先进bios 设置虚拟化,这点我就不贴图,不想重启电脑。

先下载,百度网盘地址:https://pan.baidu.com/s/164ilb336gaIniRZZ-kr6KQ

或者你也可以去官网下载,墙太高,在官网我没能下载下来,下载后,就是安装,启动,,估计会提示你去bios 设置 cpu 虚拟化,,,

至此,docker 客户端安装完成。

现在回到 idea 中来,

设置完了,接下来 开始生产镜像

上图中打错了字, 应该是   点击开始 

至此,镜像生成完毕,接下来利用 一开始在插件中设置的阿里云镜像地址,开始push 镜像,

push 完成后,去阿里云镜像服务,查看我们上传的镜像,,,

至此,生成eyreka镜像,并推送至阿里云镜像服务,完成。

按照相同的步骤,再上传一个user 镜像到。。。。

记下来,使用 Xshell 远程链接工具,链接我们的 阿里云服务器,然后 pull 镜像 到我们的服务器里面,

然后是  enter ,会让你输入 password ,

继续 enter ,镜像就会下载到服务器里面,拉取的镜像registry一长串,我对镜像名字镜像 修改(感觉并不是修改,只是根据镜像id,多生产了一个出来),接下来,看图说话,

上图,红色小框里面的,第一个字段的值,有没有太长,我觉得太长了,不改掉它,根本睡不着觉,,,

继续 删除,,,

 

至此。pull 镜像到服务器,并修改名字,完成,接下来,根据 my-love,生成容器,并启动

 

启动容器完毕,接下来,看看容器的日志,

我拉下去,看了的,没报错...

至此,从在本地创建镜像,push镜像到阿里云镜像服务,再从我们自己的服务器登录阿里云镜像服务,pull 镜像到服务器,用镜像生成容器,启动容器,完成。

下面说一下注册 发现。

作为一个在家学习java的自学者,遇到问题,首先想到是网上搜索,,因为身边也没人可问,,,,

网上搜spring cloud docker 部署,注册发现。 看了些帖子,有让 去掉

defaultZone:  http://***.***.***.***:8000/eureka/

的,也有让用 在run容器的时候用 --link。。 反正我没跑通

后来,我把地址换成  服务器的内网地址,就像在本地用 localhost ,一样,就跑通了

服务注册实现了,按上面的流程,继续把gateway 服务部署好,

测试gateway 的请求转发,发现问题来了,,,看图

之前在网上搜的时候,就看到 说用-link ,然后搜-link,又说这个快过时了,会被废弃,,由network 替代,连猜带蒙的,搞好了,见下图

不截图了,直接复制粘贴,下面的代码是 显示 这个network 里面的成员

[root@iz2ze9l5uj7pk9xc8meve3z ~]# docker network inspect 4c2ce9af22bb
[
    {
        "Name": "eureka-net",
        "Id": "4c2ce9af22bb8a3fc6e8ee7821071444f4dec4d2a667491e0aad86bf23726149",
        "Created": "2018-11-19T15:44:34.560682803+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.19.0.0/16",
                    "Gateway": "172.19.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "23cce3ba14756d3c5daf3fff3b320120413acef4af0ec383e416eeb2ea59dfdd": {
                "Name": "gateway-server",
                "EndpointID": "a9122e1f39c3ca4a83053b203141bdc51ef483e67aa4d3bda6ea659ea5cd9714",
                "MacAddress": "02:42:ac:13:00:03",
                "IPv4Address": "172.19.0.3/16",
                "IPv6Address": ""
            },
            "2543d02f7c3ca86b4218721662a4ebacd681fe2dd0f7a4fcd7b302b404d9afbe": {   # 看id,这个个就是我们刚才添加进去
                "Name": "user-server-1.3",                                                                                    #的容器   
                "EndpointID": "d6072860914a4d1b6e0db8c5c9773d872f53c962bac4e997086cd2c64cb59d36",
                "MacAddress": "02:42:ac:13:00:02",
                "IPv4Address": "172.19.0.2/16",
                "IPv6Address": ""
            },
            "a24f1c67e5e640665a826f586ff951b8bf2ef18bd694e2118941c5c560ec9142": {
                "Name": "live-server",
                "EndpointID": "0d67747a4c86dd693b15f5b4e004372307db7550a0bc6e1b3bfebb9ba9f32ea3",
                "MacAddress": "02:42:ac:13:00:04",
                "IPv4Address": "172.19.0.4/16",
                "IPv6Address": ""
            },
            "cfbca55607114f2a287cabdafa293f5e0561dbe49f8aaca66d15b347c1f3ae49": {
                "Name": "search-server",
                "EndpointID": "d34053c7c8c61c4f84f769dce3e888ec718d8dd9a333b8f618913bd6e126aaee",
                "MacAddress": "02:42:ac:13:00:05",
                "IPv4Address": "172.19.0.5/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

 

至此,服务注册发现,网关转发请求。完成。

经过了这些步骤,今天才发现有个叫 Compose 的东西,可以在一个配置文件里面,把上面的步骤走完,,oh ...no

 

 

关于 图片中的各种命名,可能都不怎么规范的,我也不知道规范的是什么样的....

从前天开始学docker,到现在,可能其中也有不科学,有误的地方,如果你看到了,还请指正下哦

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值