SpringCloud笔记七:微服务下Docker
文章目录
- SpringCloud笔记七:微服务下Docker
- Docker介绍和使用场景
- Centos7安装Docker
- Docker仓库,镜像,容器核心知识讲解
- Docker在云服务器上的实际应用
- 使用Docker部署Nginx服务器
- 构建自己的镜像仓库
Docker介绍和使用场景
- 什么是Docker
1、可以快速的部署和启动应用
2、实现虚拟化,完整资源隔离
3、一次编写,四处运行(有一个定的限制,比如Docker是基于Linux x64的,无法在32bit的linux/windows/unix环境下使用。)
- 为什么用
1、提供一次性的环境,假如需要安装mysql,则需要安装很多依赖库,版本等。如果使用Docker则通过镜像就可以直接启动运行。
2、快速动态扩容,使用docker部署了一个应用,可以制作成镜像,然后通过Docker快速启动。
3、组建微服务架构,可以在一个机器上模拟出微服务架构,启动多个应用
4、更好的资源隔离和共享。
总之:开箱即用,快速部署,可移植性强,环境部署。
- 总结什么是Docker
就是虚拟机的增强版,可以将一个大的服务器,分割成很多小的虚拟机,但是比虚拟机强,因为可以随意的给每个小的虚拟机调度系统资源,比如一个服务器有10个核,分了两个系统,docker可以随意给其中一个系统增加2个核。
基于go语言开发的,在LCX(linux中类似win中的虚拟机)基础上进行的封装。
Centos7安装Docker
- 查看linux系统版本信息
lsb_release -a
Docker仓库,镜像,容器核心知识讲解
- 镜像
Docker 镜像 -Docker images:
镜像就是容器运行时的只读模板,操作系统+软件运行环境+用户程序
Docker 容器 -Docker containers:
容器包含了某个应用运行所需要的全部环境。
Docker 仓库:-Docker registeries:
用来保存镜像,有公有和私有仓库,好比maven的中央仓库和本地私服。
官方镜像仓库:https://hub.docker.com/
是通过镜像创建的容器。
Docker在云服务器上的实际应用
- 常用命令
安装部署好Docker后,执行的命令都是docker开头 xxx是镜像的名字
搜索镜像:docker search xxx
列出当前系统存在的镜像:docker images
拉取镜像:docker pull xxx
xxx 是镜像的名字(格式:REPOSITORY:TAG)
REPOSITORY:表示镜像的仓库源,TAG:镜像的标签。
运行一个容器:
docker run -d --name “rabbit_mq” -p 5672:5672 -p 15672:15672 rabbitmq:management
docker run - 运行一个容器
-d 后台运行
-p 端口映射
rabbitmq:management (格式:REPOSITORY:TAG),如果不能指定tag,默认使用最新的。
--name 指定容器别名
列举当前运行的容器:docker ps
检查容器内部信息:docker inspect 容器名称
删除镜像:docker rmi IMAGE_NAME
强制移出镜像,不管是否有容器使用该镜像,增加 - f 参数
停止某个容器:docker stop 容器名称
启动某个容器:docker start 容器名称
移除某个容器:docker rm 容器名称(容器必须是停止状态)
启动docker :systemctl start docker
使用Docker部署Nginx服务器
- 获取镜像
docker search nginx
docker run 首先会从本地找镜像,如果有则直接启动,没有的话,从镜像仓库拉起,在启动。
- 列举和拉取
docker images
docker pull nginx
- 启动Nginx
docker run -d --name “nginx” -p 8088:80 nginx (或者是IMAGE_ID)
通过修改端口可以启动多个nginx
curl进行测试
curl “http://127.0.0.1:8088”
会返回前端页面代码
构建自己的镜像仓库
- 阿里云镜像仓库
- 私有镜像仓库
用于存放公司内部的镜像,不提供给外部使用。
springCloud 开发了一个支付系统–》做成一个镜像,(操作系统+软件运行环境+用户程序)
- 阿里云构建一个私有镜像仓库
在阿里云容器服务里面可以构建
- 本地安装docker
win10可以直接安装docker,win7需要安装docker toolbox
- 本地docker,服务器docker和镜像仓库的关系
1、本地应用通过docker打成镜像包,将镜像包上传到镜像仓库。
2、服务器端通过docker从镜像仓库里面拉取镜像包
3、服务器启动镜像包。
4、同理,服务器也可以打成包,放到镜像仓库里面,提供本地拉取。