标签分类
当前位置:首页 > 程序设计电子书 > Docker电子书网盘下载
Docker开发指南 Docker开发指南
itmrchen

itmrchen 提供上传

资源
34
粉丝
14
喜欢
196
评论
5

    Docker开发指南 PDF 高清版

    Docker电子书
    • 发布时间:

    给大家带来的一篇关于Docker相关的电子书资源,介绍了关于Docker、开发、指南方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小9.35 MB,阿德里安·莫阿特编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.2,更多相关的学习资源可以参阅 程序设计电子书、等栏目。

  • Docker开发指南 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1Kp_VphMWyC0xBctfgxkH5g
  • 分享码:70g5
  • Docker开发指南

    内容介绍

    Docker器皿轻量和可移植的特点特别是在适用动态性和分布式系统的自然环境,它的盛行给软件开发流程产生了这场辛亥革命。这书对Docker开展了全方位解读,包含开发设计、生产制造以致维护保养的全部软件生命周期,并对至少将会出現的某些难题开展了讨论,如手机软件版本号差别、开发工具与环境的差别、系统优化难题,等等等等。

    目录

    • 前言  xi
    • 第一部分 背景与基础
    • 第1章 何谓容器,为何需要它  3
    • 1.1 容器与虚拟机的比较  4
    • 1.2 Docker与容器  5
    • 1.3 Docker的历史  7
    • 1.4 插件与基础设施  8
    • 1.5 64位Linux  9
    • 第2章 安装  10
    • 2.1 在Linux上安装 Docker  10
    • 2.1.1 将SELinux置于宽容模式下运行  11
    • 2.1.2 不使用sudo命令执行 Docker  11
    • 2.2 在 Mac OS及Windows上安装 Docker  12
    • 2.3 快速确认  13
    • 第3章 迈出第一步  15
    • 3.1 运行第一个镜像  15
    • 3.2 基本命令  16
    • 3.3 通过Dockerfile创建镜像  20
    • 3.4 使用寄存服务  22
    • 3.5 使用Redis官方镜像  24
    • 3.6 总结  27
    • 第4章 Docker基本概念  28
    • 4.1 Docker系统架构  28
    • 4.1.1 底层技术  29
    • 4.1.2 周边技术  30
    • 4.1.3 Docker托管  31
    • 4.2 镜像是如何生成的  32
    • 4.2.1 构建环境的上下文  32
    • 4.2.2 镜像层  33
    • 4.2.3 缓存  35
    • 4.2.4 基础镜像  35
    • 4.2.5 Dockerfile指令  37
    • 4.3 使容器与世界相连  39
    • 4.4 容器互联  40
    • 4.5 利用数据卷和数据容器管理数据  41
    • 4.5.1 共享数据  43
    • 4.5.2 数据容器  44
    • 4.6 Docker常用命令  45
    • 4.6.1 run命令  46
    • 4.6.2 容器管理  48
    • 4.6.3 Docker信息  50
    • 4.6.4 容器信息  50
    • 4.6.5 镜像管理  52
    • 4.6.6 使用寄存服务器  54
    • 4.7 总结  55
    • 第二部分 Docker与软件生命周期
    • 第5章 在开发中应用Docker  59
    • 5.1 说声“Hello World!”  59
    • 5.2 通过Compose实现自动化  67
    • 5.3 总结  69
    • 第6章 创建一个简单的Web应用  71
    • 6.1 创建一个基本网页  72
    • 6.2 利用现有镜像  73
    • 6.3 实现缓存功能  78
    • 6.4 微服务  81
    • 6.5 总结  81
    • 第7章 镜像分发  82
    • 7.1 镜像及镜像库的命名方式  82
    • 7.2 Docker Hub  83
    • 7.3 自动构建  85
    • 7.4 私有分发  86
    • 7.4.1 运行自己的寄存服务  86
    • 7.4.2 商业寄存服务  92
    • 7.5 缩减镜像大小  92
    • 7.6 镜像出处  94
    • 7.7 总结  94
    • 第8章 Docker持续集成与测试  95
    • 8.1 为identidock添加单元测试  95
    • 8.2 创建Jenkins容器  100
    • 8.3 推送镜像  106
    • 8.3.1 给镜像正确的标签  106
    • 8.3.2 准生产及生产环境  108
    • 8.3.3 镜像数量激增的问题  108
    • 8.3.4 使用Docker部署Jenkins slaves  109
    • 8.4 备份Jenkins数据  109
    • 8.5 持续集成的托管解决方案  109
    • 8.6 测试与微服务  110
    • 8.7 总结  111
    • 第9章 部署容器  113
    • 9.1 通过Docker Machine配置资源  114
    • 9.2 使用代理  117
    • 9.3 执行选项  122
    • 9.3.1 shell脚本  122
    • 9.3.2 使用进程管理器(或用systemd控制所有进程)  124
    • 9.3.3 使用配置管理工具  127
    • 9.4 主机配置  130
    • 9.4.1 选择操作系统  130
    • 9.4.2 选择存储驱动程序  130
    • 9.5 专门的托管方案  132
    • 9.5.1 Triton  132
    • 9.5.2 谷歌容器引擎  134
    • 9.5.3 亚马逊EC2容器服务  135
    • 9.5.4 Giant Swarm  136
    • 9.6 持久性数据和生产环境容器  138
    • 9.7 分享秘密信息  139
    • 9.7.1 在镜像中保存秘密信息  139
    • 9.7.2 通过环境变量传递密钥  139
    • 9.7.3 通过数据卷传递密钥  140
    • 9.7.4 使用键值存储  140
    • 9.8 网络连接  141
    • 9.9 生产环境的寄存服务  141
    • 9.10 持续部署/交付  141
    • 9.11 总结  142
    • 第10章 日志记录和监控  143
    • 10.1 日志记录  144
    • 10.1.1 Docker默认的日志记录  144
    • 10.1.2 日志汇总  145
    • 10.1.3 使用ELK 进行日志记录  146
    • 10.1.4 通过syslog实现日志管理  155
    • 10.1.5 从文件抓取日志  160
    • 10.2 监控和警报  161
    • 10.2.1 使用Docker工具进行监测  161
    • 10.2.2 cAdvisor  162
    • 10.2.3 集群解决方案  163
    • 10.3 商用的监听及日志记录解决方案  166
    • 10.4 总结  166
    • 第三部分 工具和技术
    • 第11章 联网和服务发现  169
    • 11.1 大使容器  170
    • 11.2 服务发现  173
    • 11.2.1 etcd  173
    • 11.2.2 SkyDNS  177
    • 11.2.3 Consul  181
    • 11.2.4 服务注册  185
    • 11.2.5 其他解决方案  186
    • 11.3 联网选项  187
    • 11.3.1 网桥模式  187
    • 11.3.2 主机模式  188
    • 11.3.3 容器模式  188
    • 11.3.4  未联网模式  188
    • 11.4 全新的Docker联网功能  188
    • 11.5 网络解决方案  190
    • 11.5.1 Overlay  191
    • 11.5.2 Weave  193
    • 11.5.3 Flannel  196
    • 11.5.4 Calico项目  201
    • 11.6 总结  205
    • 第12章 编排、集群和管理  207
    • 12.1 集群和编排工具  208
    • 12.1.1 Swarm  208
    • 12.1.2 fleet  214
    • 12.1.3 Kubernetes  219
    • 12.1.4 Mesos和Marathon  226
    • 12.2 容器管理平台  235
    • 12.2.1 Rancher  236
    • 12.2.2 Clocker  237
    • 12.2.3 Tutum  238
    • 12.3 总结  239
    • 第13章 容器安全与限制容器  241
    • 13.1 需要考虑的事项  242
    • 13.2 纵深防御  244
    • 13.3 如何保护identidock  245
    • 13.4 以主机隔离容器  246
    • 13.5 进行更新  246
    • 13.6 镜像出处  249
    • 13.6.1 Docker摘要  250
    • 13.6.2 Docker的内容信任机制  250
    • 13.6.3 可复制及可信任的Dockerfile  254
    • 13.7 安全建议  256
    • 13.7.1 设置用户  256
    • 13.7.2 限制容器联网  257
    • 13.7.3 删除setuid和setgid的二进制文件  258
    • 13.7.4 限制内存使用  259
    • 13.7.5 限制CPU 使用  260
    • 13.7.6 限制重新启动  261
    • 13.7.7 限制文件系统  261
    • 13.7.8 限制内核能力  262
    • 13.7.9 应用资源限制  263
    • 13.8 运行加固内核  264
    • 13.9 Linux安全模块  265
    • 13.9.1 SELinux  265
    • 13.9.2 AppArmor  268
    • 13.10 审核  268
    • 13.11 事件响应  269
    • 13.12 未来特性  269
    • 13.13 总结  270
    • 作者简介  271
    • 关于封面  271

    读书笔记

    Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数示例代码

    最终效果如下

    Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数示例代码

    大概就几个步骤

    1.安装 Docker CE 2.运行 Redis 镜像 3.Java 环境准备 4.项目准备 5.编写 Dockerfile 6.发布项目 7.测试服务

    环境准备

    • 系统:Ubuntu 17.04 x64
    • Docker 17.12.0-ce
    • IP:45.32.31.101

    一、安装 Docker CE

    国内不建议使用:“脚本进行安装”,会下载安装很慢,使用步骤 1 安装,看下面的链接:常规安装方式

    1.常规安装方式

    Ubuntu 17.04 x64 安装 Docker CE

    http://www.ymq.io/2018/01/11/Docker-Install-docker-ce

    2.脚本进行安装

    国内安装不建议使用脚本:

    安装Docker CE

    $ curl -fsSL get.docker.com -o get-docker.sh
    $ sudo sh get-docker.sh
    <output truncated>
    If you would like to use Docker as a non-root user, you should now consider
    adding your user to the "docker" group with something like:
     sudo usermod -aG docker your-user
    Remember that you will have to log out and back in for this to take effect!
    WARNING: Adding a user to the "docker" group will grant the ability to run
     containers which can be used to obtain root privileges on the
     docker host.
     Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
     for more information.

    验证Docker CE

    通过运行 hello-world 镜像 验证是否正确安装了 Docker CE

    $ sudo docker run hello-world
    root@souyunku:~# sudo docker images
    REPOSITORY TAG  IMAGE ID CREATED SIZE
    hello-world latest f2a91732366c 7 weeks ago 1.85kB

    二、运行 Redis 镜像

    1.运行镜像

    $ docker run --name redis-6379 -p 6379:6379 -d redis
    Unable to find image 'redis:latest' locally
    latest: Pulling from library/redis
    c4bb02b17bb4: Pull complete 
    58638acf67c5: Pull complete 
    f98d108cc38b: Pull complete 
    83be14fccb07: Pull complete 
    5d5f41793421: Pull complete 
    ed89ff0d9eb2: Pull complete 
    Digest: sha256:0e773022cd6572a5153e5013afced0f7191652d3cdf9b1c6785eb13f6b2974b1
    Status: Downloaded newer image for redis:latest
    2f1f20f672e386a61644e1c08232ea34bdfd6a0c244b55fa833fcfd6dd207288
    

    2.检查镜像

    查看镜像

    root@souyunku:~# docker images redis
    REPOSITORY TAG  IMAGE ID CREATED SIZE
    redis latest 1e70071f4af4 4 weeks ago 107MB

    查看镜像进程

    root@souyunku:~# docker ps
    CONTAINER ID IMAGE COMMAND  CREATED STATUS PORTS  NAMES
    2f1f20f672e3 redis "docker-entrypoint.s…" 14 seconds ago Up 14 seconds 0.0.0.0:6379->6379/tcp redis-6379

    查看容器进程

    root@souyunku:~# docker container ps
    CONTAINER ID IMAGE COMMAND  CREATED STATUS PORTS  NAMES
    2f1f20f672e3 redis "docker-entrypoint.s…" 7 minutes ago Up 7 minutes 0.0.0.0:6379->6379/tcp redis-6379

    3.测试Redis服务

    通过 redis-cli 连接 Redis 服务,测试存储数据

    root@souyunku:~# docker run -it --link redis-6379:redis --rm redis redis-cli -h redis -p 6379
    redis:6379> set count 1
    OK
    redis:6379> get count
    "1"
    redis:6379> exit
    root@souyunku:~#

    三、Java 环境准备

    注意:阅读以下步骤!!!

    1.Java 环境是为了,编译 Github Maven SpringBoot 示例项目,准备

    2.或者自己在本地编译好上传也行,那么以下 Java 环境,安装: Jdk , Maven , Git ,就可以不用配置

    1.安装 Jdk

    下载JDK 方式:1

    下载Linux环境下的jdk1.8,请去(官网)中下载jdk的安装文件

    http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

    下载JDK 方式:2

    我在百度云盘分下的链接: http://pan.baidu.com/s/1jIFZF9s 密码:u4n4

    下载JDK 方式:3

    使用wget下载,

    $ wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz

    注意,如果使用:下载JDK 方式:3

    那么以下步骤的, jdk1.8.0_144 替换成 jdk1.8.0_141

    开始安装

    上传在 /opt 目录

    解压

    $ cd /opt
    $ tar zxvf jdk-8u144-linux-x64.tar.gz
    $ mv jdk1.8.0_144/ /lib/jvm

    配置环境变量

    $ vi /etc/profile
    #jdk
    export JAVA_HOME=/lib/jvm
    export JRE_HOME=${JAVA_HOME}/jre 
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 
    export PATH=${JAVA_HOME}/bin:$PATH

    使环境变量生效

    $ source /etc/profile

    验证

    root@souyunku:~# java -version
    java version "1.8.0_141"
    Java(TM) SE Runtime Environment (build 1.8.0_141-b15)
    Java HotSpot(TM) 64-Bit Server VM (build 25.141-b15, mixed mode)

    2.安装 Maven

    $ apt-get install maven

    验证Maven

    root@souyunku:~# mvn -v
    Apache Maven 3.3.9
    Maven home: /usr/share/maven
    Java version: 1.8.0_141, vendor: Oracle Corporation
    Java home: /lib/jvm/jre
    Default locale: en_US, platform encoding: UTF-8
    OS name: "linux", version: "4.10.0-35-generic", arch: "amd64", family: "unix"

    3.安装 Git

    $ apt-get install git

    验证Maven

    root@souyunku:~# git --version
    git version 2.11.0

    四、项目准备

    1.编译项目

    1.自己在服务器Maven编译项目

    使用 git 克隆项目

    $ git clone https://github.com/souyunku/other-projects.git

    使用 maven 编译项目

    $ cd other-projects/docker-spring-boot-demo/

    2.修改项目

    修改 Redis 服务器地址 spring.redis.host=45.32.44.217 ,为本地 IP , 在运行 Redis 镜像时候 已经把 Redis 做成外网服务了 0.0.0.0:6379->6379/tcp

    $ vi src/main/resources/application.properties
    # Redis服务器地址
    spring.redis.host=45.32.44.217
    $ mvn package

    复制 target/ 目录下的 docker-spring-boot-demo-0.0.1-SNAPSHOT.jar 项目到 /opt 目录稍后会用到

    $ cp target/docker-spring-boot-demo-0.0.1-SNAPSHOT.jar /opt/

    2.自己在本地 Maven 编译项目,然后上传到 /opt 目录稍后会用到

    修改 application.properties 的 Redis 服务器地址

    other-projects/docker-spring-boot-demo/src/main/resources/application.properties
    # Redis服务器地址
    spring.redis.host=45.32.44.217

    五、编写 Dockerfile

    编写 Dockerfile 基于 java:8 镜像为基础

    $ cd /opt/
    $ touch Dockerfile
    $ vi Dockerfile

    编辑内容个如下

    # 基于哪个镜像
    FROM java:8
    # 将本地文件夹挂载到当前容器
    VOLUME /tmp
    # 拷贝文件到容器,也可以直接写成ADD docker-spring-boot-demo-0.0.1-SNAPSHOT.jar /souyunku-app.jar
    ADD docker-spring-boot-demo-0.0.1-SNAPSHOT.jar souyunku-app.jar
    RUN bash -c 'touch /souyunku-app.jar'
    # 开放80端口
    EXPOSE 80
    # 配置容器启动后执行的命令
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/souyunku-app.jar"]

    六、发布项目

    1.编译镜像

    $ cd /opt/
    $ docker build -t souyunku-app:v1 .

    看到如下信息,就证明你的 Dockerfile 写的没毛病,而且镜像也编译成功了

    Sending build context to Docker daemon 18.72MB
    Step 1/6 : FROM java:8
    8: Pulling from library/java
    5040bd298390: Pull complete 
    fce5728aad85: Pull complete 
    76610ec20bf5: Pull complete 
    60170fec2151: Pull complete 
    e98f73de8f0d: Pull complete 
    11f7af24ed9c: Pull complete 
    49e2d6393f32: Pull complete 
    bb9cdec9c7f3: Pull complete 
    Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d
    Status: Downloaded newer image for java:8
     ---> d23bdf5b1b1b
    Step 2/6 : VOLUME /tmp
     ---> Running in 0559a62b0cd5
    Removing intermediate container 0559a62b0cd5
     ---> b1f3846913a4
    Step 3/6 : ADD docker-spring-boot-demo-0.0.1-SNAPSHOT.jar souyunku-app.jar
     ---> 9f60dad5d2ac
    Step 4/6 : RUN bash -c 'touch /souyunku-app.jar'
     ---> Running in 39d5c09ab614
    Removing intermediate container 39d5c09ab614
     ---> 2b691adf7922
    Step 5/6 : EXPOSE 80
     ---> Running in 11a577437a23
    Removing intermediate container 11a577437a23
     ---> 78815d6fe6b2
    Step 6/6 : ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/souyunku-app.jar"]
     ---> Running in eca10fed3d02
    Removing intermediate container eca10fed3d02
     ---> 8ec4e85a0f05
    Successfully built 8ec4e85a0f05
    Successfully tagged souyunku-app:v1
    

    2.查看镜像

    root@souyunku:/opt# docker images souyunku-app
    REPOSITORY TAG  IMAGE ID CREATED SIZE
    souyunku-app v1  8ec4e85a0f05 2 minutes ago 681MB

    3.运行镜像

    后台守护进程运行,然后把容器端口映射到,外网端口 80

    root@souyunku:/opt# docker run --name MySpringBoot -d -p 80:80 souyunku-app:v1
    e68d438603619e363883d4eae65d3918e1c3e00f867731207bccf06f5690dc64

    4.查看进程

    查看容器进程,可以看到 redis 在 6379 端口, MySpringBoot 项目在 80 端口

    root@souyunku:/opt# docker container ps
    CONTAINER ID IMAGE COMMAND  CREATED STATUS PORTS  NAMES
    e68d43860361 souyunku-app:v1 "java -Djava.securit…" About a minute ago Up About a minute 0.0.0.0:80->80/tcp MySpringBoot
    0f9646171edd redis "docker-entrypoint.s…" 39 minutes ago Up 39 minutes 0.0.0.0:6379->6379/tcp redis-6379

    七、测试服务

    浏览器访问: http://127.0.0.1/ ,当然我没有输入 127.0.0.1 我是在服务器上直接做的,用的公网IP

    Docker Compose

    Docker Compose 是 Docker 官方编排( Orchestration )项目之一,负责快速在集群中部署分布式应用。

    一个使用 Docker 容器的应用,通常由多个容器组成。使用 Docker Compose ,不再需要使用 shell 脚本来启动容器。在配置文件中,所有的容器通过 services 来定义,然后使用 docker-compose 脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器。

    总结

    以上所述是小编给大家介绍的Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对码农之家网站的支持!

    上一篇:Python并行编程参考手册  下一篇:Tableau商业分析一点通

    展开 +

    收起 -

    码小辫二维码
     ←点击下载即可登录

    Docker相关电子书
    学习笔记
    网友NO.534371

    Spring Boot与Docker部署实践

    首先需要开启docker远程访问功能,以便可以进行远程操作。 CentOS 6 修改/etc/default/docker文件,重启后生效(service docker restart)。 DOCKER_OPTS="-H=unix:///var/run/docker.sock -H=0.0.0.0:2375" CentOS 7 打开/usr/lib/systemd/system/docker.service文件,修改ExecStart这行。 复制代码 代码如下: ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 重启后生效 systemctl daemon-reload systemctl restart docker.service 测试是否生效 curl http://127.0.0.1:2375/info 新建Maven工程 pom.xml配置如下: project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" modelVersion4.0.0/modelVersion groupIdtest.springboot.docker/groupId artifactIddocker-springboot/artifactId version0.0.1-SNAPSHOT/version parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version1.5.3.RELEASE/version /parent properties java.version1.8/java.version /properties dependencies dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-test/artifactId scopetest/scope /dependency /dependencies build plugins plugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId /plugin plugin groupI……

    网友NO.867449

    mysql 5.7 docker 主从复制架构搭建教程

    分享mysql 5.7 docker 主从复制架构搭建教程,供大家参考,具体内容如下 环境版本: MySQL : 5.7.13 Docker : 1.11.2 CentOS : 7.1 1.先在两个物理机上分别安装两个MySQL. 命令如下 复制代码 代码如下: docker pull mysql:5.7.13 docker run --name anuo-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=qaz.00JK -d mysql:5.7.13 2.在主库上创建一个复制账户 复制代码 代码如下: GRANT REPLICATION SLAVE ON *.* TO 'rep1'@'192.168.2.103' IDENTIFIED BY 'qaz.00JK'; 复制账户为: rep1 指定从库的IP必须为: 192.168.2.103 复制密码为: qaz.00JK 3.修改主库的配置文件 (麻烦,应该有更方便的修改方式) 3.1先从docker拷贝配置文件到主机/root 目录: docker cp anuo-mysql:/etc/mysql/my.cnf /root 3.2在主机打开 my.cnf , 在 [mysqld] 节点最后加上 log-bin=mysql-bin server-id=1 3.3 再把此文件上传到docker mysql 里面覆盖 docker cp /root/my.cnf anuo-mysql:/etc/mysql/my.cnf 3.4 重启 mysql 的docker , 让配置生效 docker restart anuo-mysql 4. 修改从库的配置文件 跟第三步一样, 唯一不同是 server-id=2 5. 开始备份, 在主库执行以下命令, 让主库所有表置于只读不能写的状态, 这样达到主从库数据一致性 FLUSH TABLES WITH READ LOCK; 6. 将主库的数据库备份在从库还原 用navicat for mysql 很方便操作 7. 从库还原后, 释放主库的读锁, 这样主库恢复写权限 unlock tables; 8.配置从库连接主库, 在从库上执行 CHANGE……

    网友NO.177233

    SpringBoot与docker的结合的示例

    最近一段时间,容器化成为了一种趋势。一台服务器可以虚拟成多个容器,同时提供服务,共享硬件资源,节约成本,容器化的翘楚就是Docker,我司的所有微服务的发布都已经容器化。spring boot 也紧跟潮流,加入了Docker的maven插件,可以通过执行命令来制作镜像。 本节的主要内容不是讲代码,而是讲这个Docker插件。废话不多说,上pom plugin groupIdcom.spotify/groupId artifactIddocker-maven-plugin/artifactId version0.4.12/version configuration !-- 注意imageName一定要是符合正则[a-z0-9-_.]的,否则构建不会成功 -- !-- 详见:https://github.com/spotify/docker-maven-plugin Invalid repository name ... only [a-z0-9-_.] are allowed-- imageNamespring-boot-docker-start/imageName !--相当于from java,本地有使用本地的镜像,没有的话从远程仓库拉取-- baseImagejava/baseImage exposes !--暴露容器内的8080端口-- expose8080/expose /exposes !--进入点,执行的命令-- entryPoint["java", "-jar", "/${project.build.finalName}.jar"]/entryPoint resources resource targetPath//targetPath directory${project.build.directory}/directory include${project.build.finalName}.jar/include /resource /resources /configuration /plugin imageName就是镜像的名称。baseImage是基础镜像,本地有使用本地的镜像,没有的话从远程仓库拉取,暴露容器内的8080端口,执行java -jar 命令,启动微服务。我们知道使用Docker需……

    网友NO.391302

    Spring Boot应用Docker化的步骤详解

    概述 Spring Boot简化了Spring应用的开发过程,遵循约定优先配置的原则提供了各类开箱即用(out-of-the-box)的框架配置。另一方面,Spring Boot还具备将代码直接构建为可执行jar包的能力,这个jar包是一个可以独立运行的部署单元。基于以上特性,现在普遍认为Spring Boot提供了一种快速构造微服务(Micro-Service)的能力。 当下web服务端开发中最火的名词中绝对有微服务的一席之地,其也成为当下互联网后端服务架构演进历程中最闪亮的技术之一。微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台,使部署、管理和服务功能交付变得更加简单。既然服务被分割和微小化了,我们很容易想到如果将其和docker结合,让docker承载着一个个的微服务运行,如此一来将会让服务间耦合度降低,部署简洁,同时系统的架构也更加清晰,便于长期演进,基于此想法有了这篇文章的入门实践! 创建基于maven的spring bt项目 pom.xml中加依赖: parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version2.0.0.RELEASE/version/parentdependencies dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency dependency groupIdorg.springframework.boot……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明