SpringBoot2.X在Docker中的部署(一)——Docker入门

SpringBoot2.X在Docker中的部署(一)——Docker入门

  • 1.前言
  • 2.开发环境
  • 3.Docker基本概念
  • 4.Docker和VM的区别
  • 5.Docker安装
  • 6.Docker基本命令
  • 7.Docker镜像源设置

1.前言

  最近出于学习需求,需要搭建集群环境,然后使用Nginx作为反向代理服务器实现负载均衡。由于时间紧,VM安装调试非常麻烦,再加之mac笔记本跑VM内存不是很够,故而萌生了使用Docker镜像来快速搭建一套集群环境的念头。
  在搭建集群过程中可谓是一步一坑,好在通过不断尝试以及查看博客,成功搭建并运行。但是在此过程中发现网上的资料众说纷纭,而且各种抄袭(不知道博主试没试过)。故而将自己的成功经验和查询的 有效资料(博客大佬经验) 做一个整理,供自己之后回顾以及参考。同时也提供给各位入坑萌新学习使用,使大家少走弯路。

2.开发环境

老规矩,先上我使用的环境

软件 版本
Mac 10.15.3
IDEA 2019.03
Maven 3.6.1
Docker 19.03.8(稳定版)
JDK 1.8

注:重要的事情说三遍,JDK版本是1.8,JDK版本是1.8,JDK版本是1.8!!!
  因为这关乎到后面是否可以成功部署!!!

3.Docker基本概念

  本着凡事看官网的理念,我这里就把官网的概念复制过来,以保证文章阅读的完整性。
  Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
  Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
  容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
  Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。

Docker 包括三个基本概念:
  镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  仓库(Repository):仓库可看着一个代码控制中心,用来保存镜像。
  Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
  Docker 容器通过 Docker 镜像来创建。
  总结一句话来说,Docker就是一个开销极低的沙箱,可以用于部署应用。

4.Docker和VM的区别

Docker VM
开销 运行开销小 运行开销较大
便捷性 安装下载便捷,可移植性高 不便于移植
大小 镜像占用小 系统占用硬盘空间大
运行 运行在Docker容器引擎上 直接运行在物理硬件上

  详细内容我就不在这里赘述,有需要详细了解的同学可以点击以下链接传送:
  Docker与VM虚拟机的区别

5.Docker安装

  在Mac系统上下载Docker有两种方式,一种是官网直接下载,另一种是通过命令行安装。
下面附上链接:
1.官网stable版本Docker下载
2.命令行安装传送门

6.Docker基本命令

这里我按照基本的使用来写,要是想了解更多命令,请点击下方传送门!!!

操作 命令 作用 示例
搜索 docker search 镜像名称 查询对应镜像以及版本 docker search nginx
拉取 docker pull 镜像名称:标签 拉取指定版本的镜像,这个标签就是指版本 docker pull nginx:latest
启动 docker run -d -p 本机端口号:镜像应用端口号 --name 启动实例名 镜像名 后台对镜像创建实例并启动 docker run -d -p 80:8080 --name nginx-web nginx
进入 docker exec -it 镜像名称 /bin/bash 进入创建的镜像实例的linux命令行界面 docker exec -it nginx-web /bin/bash

想要了解更多命令,请移步至Docker常用命令或Docker常用命令博客。

7.Docker镜像源设置

  若使用Docker自带镜像源,下载进度条跑的比还慢~,所以要使用国内的镜像源。但是使用国内镜像源也有点小坑,这个在之后叙述。

注:镜像源设置是个大坑,我网上找了好久,19.03版本中根本没有找到所谓的daemon设置。最后在知乎上才找到设置方法。

  1. 进入当前用户目录
cd /Users/你自己的用户名
  1. 显示当前目录下文件夹
ls -alh

应该是可以看到这个目录
SpringBoot2.X在Docker中的部署(一)——Docker入门_第1张图片

  1. 进入 .docker目录
cd .docker
  1. 修改daemon.json文件
vi daemon.json
  1. 向文件中追加下列JSON字符串
"registry-mirrors":["https://registry.docker-cn.com",
					"http://hub-mirror.c.163.com",
					"https://docker.mirrors.ustc.edu.cn"
					]

最终内容:
在这里插入图片描述

  1. 保存并退出,重启Docker

PS:系列文章补充
SpringBoot2.X在Docker中的部署(一)——Docker入门
SpringBoot2.X在Docker中的部署(二)——SpringBoot2.X项目创建
SpringBoot2.X在Docker中的部署(三)——SpringBoot项目在Tomcat镜像中的部署

你可能感兴趣的:(常用脱坑指南)