windows 10使用docker运行spring boot

1.安装docker

2.设置docker

在windows下设置docker直接使用gui界面来设置就可以了
右键启动栏的docker小图标,点击settings>general

  • 设置启用localhost的2375端口来运行docker(如果不启用,则后面你试用运行时就会报2375端口无法访问的错误)
Expose daemon on tcp://localhost:2375 without TLS
  • 设置阿里云加速器
    阿里云加速器
    先用你的阿里云账号登入,在Docker Hub 镜像站点中找到镜像地址
    然后在settings>daemon中添加这个镜像(也可以换成你专属的地址)
https://m7c6b36f.mirror.aliyuncs.com

3.创建在docker中运行spring boot 项目

跟常规的方式创建spring boot一样,只是在maven中添加了一个docker的插件,可以使用maven来创建docker服务器

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!--使用此maven插件来执行mvn package docker:build-->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.13</version>
                <configuration>
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <docker.image.prefix>yurencloud</docker.image.prefix>
        <spring.boot.version>1.3.3.RELEASE</spring.boot.version>
    </properties>

并在spring boot项目的src/main/docker目录中创建Dockerfile文件

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD spring-boot-docker-1.0-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

4.创建docker服务器

docker会下载服务器镜像frolvlad/alpine-oraclejdk8:slim,并添加spring boot项目jar文件spring-boot-docker-1.0-SNAPSHOT.jar,并给jar文件取个别名app.jar,最后告诉docker服务器,启动时执行 java -Djava.security.egd=file:/dev/./urandom -jar /app.jar 这条命令
若出现无法连接localhost:2375端口,请看上面的2.设置docker

mvn package docker:build

服务器创建好后,执行下面命令,让docker启动服务器
docker 运行,端口, 本地8080和docker的8080相互映射,启动容器 yurencloud/spring-boot-docker

docker run -p 8080:8080 -t yurencloud/spring-boot-docker

然后你在自己的浏览器中就可以访问在docker中运行的spring boot

localhost:8080

5.总结

在docker和vagrant之间相比,docker的运行速度更快,每个镜像更小。但docker真要装起来,也能变得很大个。
docker能创建单独的容器,单独运行mysql,单独运行redis,那么如果我们本机不想安装mysql,或redis,可以在创建容器,然后通过docker使用这些服务,这个特性是vagrant无法相比的。
如果我们的某些服务,只能运行在linux中,无法运行在windows中,使用vagrant或者创建虚拟机完成的linux系统,再安装服务,那显然太过麻烦,庞大。而docker可以更好的适应这种情况。
但java开发阶段使用docker,我觉得不大适合,php到很适合。
不过到了部署到生产环境的时候。docker到能发挥很大的作用,无论是对于java web还是php web。
因为docker是创建一个一个容器,每个容器都有自己的运行环境,并且相互隔离。
当我们想创建一个nodejs环境,想创建一个php环境,想创建一个java环境,又想创建一个java搭配oracle的环境,又想搭配php和mysql的环境,此时,我们完全就可以用docker来创建一个一个容器,这样,我们就不必在自己的电脑中安装各种软件,配置各种变量,弄得乱七八糟,同时,docker启动又十分迅速!并且就算是同一个java环境,还可以分成java6容器,java8容器。
我感觉主要优势还是docker的轻量级,多容器。

我们([AVOS Cloud**](https://link.zhihu.com/?target=https%3A//cn.avoscloud.com/))是做 BaaS,场景非常适合使用 Docker,抛出来大家一起聊下。
在我们的平台上,一台 16 核 32G 内存的虚拟机上,需要跑 500+ 个用户的应用(每个应用的功能可以认为是一个网站 + 一系列的 RESTful API),有两个事情很重要:资源隔离:比如限制应用最大内存使用量,或者资源加载隔离等。
低消耗:虚拟化本身带来的损耗需要尽量的低。

我们不可能在一台机器上开 500 个虚拟机,虽然可以在资源隔离方面做的很好,但这种虚拟化本身带来的资源消耗太严重。另一个方面,我们可以考虑使用语言级别沙箱,虽然这种「虚拟化」本身的消耗可以低到忽略不计,但是资源隔离方面绝对是噩梦,比如你打算在一个 JVM 里隔离内存的使用。
而 Docker 很好的权衡了两者,即拥有不错的资源隔离能力,又有很低的虚拟化开销。
作者:无知链接:https://www.zhihu.com/question/22969309/answer/30865048来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,198评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,663评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,985评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,673评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,994评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,399评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,717评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,407评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,112评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,371评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,891评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,255评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,881评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,010评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,764评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,412评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,299评论 2 260

推荐阅读更多精彩内容