实战:Docker容器虚拟化技术 (使用DockerFile构建镜像并搭建 swarm+compose集群)5


要求:

  • 使用DockerFile构建镜像并搭建 swarm+compose集群

  • 在Swarm 集群中(至少两个节点)使用 compose 文件 (docker-compose.yml) 来配置、启动多个服务 包括: Mysql、Redis以及应用程序MyProject.jar


实现流程分析

  1. 创建springboot程序MyProject,打成jar包:MyProject.jar
  2. 使用dockerfile 将MyProject.jar构建成镜像dabing/MyProject:1.0
  3. 搭建Swarm 集群
  4. 在Swarm 集群中使用 compose 文件 (docker-compose-myproject.yml) 来配置、启动多个服务
    包括: Mysql、Redis以及应用程序MyProject

一、创建springboot程序并打成jar包:MyProject.jar


二、使用dockerfile 将MyProject.jar构建成镜像dabing/MyProject:1.0

  1. 将MyProject.jar拷贝到管理节点和工作节点上

  2. 管理节点和工作节点上 编写dockerfile-myproject文件

     # This Dockerfile uses the centos imageFROM centos:7.6.1810# 指定容器内部使用语言ENV LANG="en_US.UTF-8"ENV LC_ALL="en_US.UTF-8"# 指定JDK环境ENV JAVA_HOME="/apps/jdk"ENV PATH=${JAVA_HOME}/bin:$PATH# 使用亚洲/上海时区RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime# 创建工作目录RUN mkdir -p /apps /data/apps# 安装JDKADD ./jdk-8u251-linux-x64.tar.gz /apps/RUN ln -s /apps/jdk1.8.0_251 /apps/jdkADD ./UnlimitedJCEPolicyJDK8/US_export_policy.jar /apps/jdk/jre/lib/security/ADD ./UnlimitedJCEPolicyJDK8/local_policy.jar /apps/jdk/jre/lib/security/# 拷贝Hot.jar并运行COPY MyProject.jar MyProject.jarEXPOSE 8080ENTRYPOINT ["java","-jar","MyProject.jar"]
    
  3. 在管理节点和工作节点上 使用dockerfile 将MyProject.jar构建成镜像dabing/MyProject:1.0

  4. 查看生成的镜像


三、搭建Swarm 集群


具体参考swarm集群搭建:Docker容器虚拟化技术—Docker运维管理(Swarm集群管理)3


四、在Swarm 集群中使用 compose 文件 (docker-compose-myproject.yml) 来配置、启动多个服务 包括: Mysql、Redis以及应用程序MyProject

  1. 在manager节点使用 compose 文件 (docker-compose-myproject.yml) 来配置 (包括: Mysql、Redis以及应用程序MyProject)

     version: "3.0"services:mysql:image: mysql:5.7.30ports:- 3306:3306command:--default-authentication-plugin=mysql_native_password--character-set-server=utf8mb4--collation-server=utf8mb4_general_ci--explicit_defaults_for_timestamp=true--lower_case_table_names=1--default-time-zone=+8:00environment:MYSQL_ROOT_PASSWORD: "root"volumes:- "/docker/mysql/db:/var/lib/mysql"deploy:mode: replicatedreplicas: 2redis:image: redis:5.0.9environment:- TZ=Asia/beijingports:- 6379:6379volumes:- /docker/redis/data:/datadeploy:mode: replicatedreplicas: 2myproject: image: dabing/myproject:1.0ports:- 8888:8888environment: TZ: Asia/Shanghaideploy:mode: replicatedreplicas: 2
    
  2. 构建服务

  3. 启动服务

  4. 查看服务

  5. 验证

实战:Docker容器虚拟化技术(使用DockerFile构建镜像并搭建 swarm+compose集群)5相关推荐

  1. Docker容器虚拟化技术---Docker高级实战(DockerFile)2

    Docker容器虚拟化技术-Docker高级实战(DockerFile) DockerFile是一个文本格式的配置文件,用户可以使用DockerFile来快速创建自定义的镜像. 1. DockerFi ...

  2. docker容器虚拟化技术_Docker,虚拟机和容器的全面介绍

    docker容器虚拟化技术 by shota jolbordi 通过Shota Jolbordi Docker has been a buzzword for tech people for the ...

  3. Docker容器虚拟化技术---Docker运维管理(Docker Compose)4

    Docker容器虚拟化技术-Docker运维管理(Docker Compose)4 Docker Compose 通过前面的讲解我们知道使用一个Dockerfile模板文件,可以很方便地定义一个单独的 ...

  4. Docker容器虚拟化技术---Docker运维管理(Swarm集群管理)3

    Docker容器虚拟化技术-Docker运维管理(Swarm集群管理)3 Swarm集群管理 docker swarm是docker官方提供的一套容器编排系统,是Docker公司推出的官方容器集群平台 ...

  5. Docker——容器虚拟化技术

    目录 一.Docker介绍 诞生背景 Docker介绍 虚拟机技术与容器虚拟化技术 虚拟机技术 容器虚拟化技术 官方网站 二.Docker安装 安装Docker Docker管理命令 Docker底层 ...

  6. Docker容器虚拟化技术---Docker安装和操作1

    一.Docker安装 Docker在主流的操作系统和云平台上都可以使用,包括Linux操作 系统(如Ubuntu.Debian.CentOS.Redhat等).MacOS操作系统和 Windows操作 ...

  7. Docker学习之六:基于Dockerfile构建镜像

    镜像制作 一般镜像的制作,通常需要修改镜像的配置文件,比如nginx的配置文件,可以通过以下的方式: 将配置文件做成存储卷,从宿主机编辑好之后,启动容器时应用程序加载配置文件的路径并和宿主机的目录建立 ...

  8. 基于docker容器下mongodb 4.0.0 的Replica Sets+Sharded Cluster集群

    目标 使用三台物理机做数据库集群 任意一台宕机之后不会影响线上的业务运转 不会有任何的数据丢失 方案 采用的是Replica Sets+Sharded Cluster的集群 具有高可用,故障转移,分布 ...

  9. docker容器下mongodb 4.0.0 的Replica Sets+Sharded Cluster集群

    https://segmentfault.com/a/1190000023144572

最新文章

  1. 配置思路ensp_配置OSPF的Stub区域示例
  2. 《漫画算法2》源码整理-8 链表中倒数第K个节点元素
  3. 电视盒子root_电视盒子 免root 去广告换桌面,20分钟还原干净清爽的桌面
  4. python制作简单网页_python 跑服务器,访问自己制作的简单页面
  5. 简述ospf的工作原理_现代数字存储示波器的工作原理简述
  6. as3 primitives
  7. 根据select的选项不同跳转到不同的页面
  8. python 操作access数据库
  9. 毕业半年,帅地人生的第一个一百万
  10. vs code 国内镜像源
  11. Qt系列文章之(十三)表格窗体
  12. SATA硬盘的数据和电源接口定义
  13. 上海老百姓的胆量 VS 大牌店营业员的势利
  14. python操作pdf——pdfplumber/PyPDF2
  15. Android Q适配攻略(四)(后台Activity启动限制)
  16. 圆半径r = 1.5,圆柱高h = 3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积
  17. 如何测试基于Unity3D引擎的游戏
  18. 大学计算机专业绩点在3.5算好,绩点3.5算什么水平 绩点3.5算高吗
  19. bzoj3436小K的农场
  20. Python中数组转换成字符串

热门文章

  1. System Center 2016 Data Protection Manager 部署手册
  2. D3.js以及通用JS(JavaScript)读取并解析server端JSON的注意事项
  3. Lua基础---lua字符串库函数详解,实例及正则表达式
  4. python版trace命令显示归属地
  5. URL访问 和命名规范
  6. PHP 制作通讯录(六)
  7. 需做勿畏拖 效能更轻松
  8. windows中端口号被占用的解决方法
  9. Java学习之路-RMI学习
  10. Fragment过度动画分析一