实战: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. 教您用CT数据和桌面3D打印机打印自己的器官模型
  2. Consul入门01 - 安装Consul
  3. 赋值后页面不渲染_第七节:框架搭建之页面静态化的剖析
  4. HDU 3938 Portal
  5. 在linux上安装jdk(转载)
  6. kubevirt在360的探索之路(k8s接管虚拟化)
  7. CentOS 安装Sqlite3
  8. VS调试异常代码 HRESULT:0x80070057 (E_INVALIDARG)解决方法
  9. Distance Dependent Infinite Latent Feature Model 阅读笔记1
  10. 单片机实验(流水灯)(c语言程序),51单片机c语言_单片机流水灯c语言程序_单片机c语言入门...
  11. 使用RandomString设置随机经纬度-jmeter
  12. 【论文翻译】Deep Learning
  13. 工业品B2B平台5大要诀,降低企业采购成本捷径
  14. 如何进行SEO站内优化,让你的网站更易被搜索引擎收录
  15. word论文页眉的横线怎么删除去掉
  16. Ring 4012PLM 打印机驱动
  17. 一个适合在校生宝藏编程学习网站
  18. 长期主义:做你余生中最重要的事
  19. nrm : 无法加载文件 C:\Users\TANG\AppData\Roaming\npm\nrm.ps1,因为在此系统上禁止运行脚本
  20. 【PaddleNLP学习】PaddleNLP笔记

热门文章

  1. MyBatis源码之:MapperMethod
  2. 知方可补不足~用xsl来修饰xml
  3. linux C 编译时手动链接遇到的问题(未解决)
  4. win7 lnk 图标丢失——图片缓存问题
  5. 中文分词算法工具hanlp源码解析
  6. iOS知识点个人归纳总结--Runtime
  7. 网络设计分层设计的原理
  8. 每日源码分析 - Lodash(remove.js)
  9. vue1和vue2获取dom元素的方法 及 nextTick() 、$nextTick()
  10. HDU 5914 Triangle 数学找规律