SpringCloud之Docker(SpringCloud七)

目录

1. 初识Docker

1.1 Docker为什么出现?

1.2 怎么解决

1.3 与虚拟机区别

1.4 Docker架构

2. Docker基本操作

2.1 镜像操作

2.2 容器操作

2.3 数据卷

3. DockerFile自定义镜像

3.1 镜像结构

3.2 DockerFile语法

3.3 项目构建

4. Docker-Compose

4.1 初识DockerCompose

4.2 部署微服务集群

4.3 Docker镜像仓库


1. 初识Docker

1.1 Docker为什么出现?

微服务部署难

  • 依赖复杂,存在兼容性问题。
  • 开发、测试、生产环境差异。

1.2 怎么解决

1.2.1 解决兼容性问题

  • 将应用的函数库,依赖,配置与应用一起打包。
  • 采用沙箱,放到隔离容器运行。

1.2.2 解决环境差异

将用户程序所需要用到的系统函数库一起打包,运行到不同操作系统时,基于打包的函数库,借助Linux内核来运行,不在依赖于环境函数库。

1.3 与虚拟机区别

虚拟机:在操作系统中模拟硬件设备,然后运行另一个操作系统。

Docker:仅仅是封装的函数库。

1.4 Docker架构

1.4.1 镜像

Docker应用程序及其所需要的函数库,依赖,环境,配置等文件一起打包,称为镜像。

1.4.2 容器

镜像中的应用程序运行后形成的进程就是容器。一个镜像可以有多个容器。

1.4.3 架构

CS架构,两部分组成:

  • 客户端(Client):通过命令或RestApi向服务的发送命令。
  • 服务端(Server):Docker守护进程,处理Docker指令,管理镜像,容器等。

2. Docker基本操作

2.1 镜像操作

镜像名称:名称:版本 | [repository] : [tag]

镜像命令:Docker --help

2.2 容器操作

  • docker run:创建并运行一个容器,处于运行状态
  • docker pause:让一个运行的容器暂停
  • docker unpause:让一个容器从暂停状态恢复运行
  • docker stop:停止一个运行的容器
  • docker start:让一个停止的容器再次运行
  • docker rm:删除一个容器

2.2.1 创建并运行nginx容器的命令:

docker run --name containerName -p 80:80 -d nginx

命令解读:

  • docker run :创建并运行一个容器
  • --name : 给容器起一个名字,比如叫做mn
  • -p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
  • -d:后台运行容器
  • nginx:镜像名称,例如nginx

2.2.2 进入容器

进入我们刚刚创建的nginx容器的命令为:

docker exec -it mn bash

命令解读:

  • docker exec :进入容器内部,执行一个命令
  • -it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
  • mn :要进入的容器的名称
  • bash:进入容器后执行的命令,bash是一个linux终端交互命令

2.3 数据卷

数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。

相当于引用,将文件写道宿主机文件中,当容器需要用到时给他一个地址去那儿读。

2.3.1 数据卷命令

数据卷操作的基本语法如下:

docker volume [COMMAND]

docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:

  • create 创建一个volume
  • inspect 显示一个或多个volume的信息
  • ls 列出所有的volume
  • prune 删除未使用的volume
  • rm 删除一个或多个指定的volume

2.3.2 挂载数据卷

我们在创建容器时,可以通过 -v 参数来挂载一个数据卷到某个容器内目录,命令格式如下:

docker run \

 --name mn \

 -v html:/root/html \

 -p 8080:80

nginx \

这里的-v就是挂载数据卷的命令:

  • -v html:/root/htm :把html数据卷挂载到容器内的/root/html这个目录中

3. DockerFile自定义镜像

3.1 镜像结构

分层:

简单来说,镜像就是在系统函数库、运行环境基础上,添加应用程序文件、配置文件、依赖文件等组合,然后编写好启动脚本打包在一起形成的文件。我们要构建镜像,其实就是实现上述打包的过程。

3.2 DockerFile语法

Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。

3.3 项目构建

用到在学。

4. Docker-Compose

4.1 初识DockerCompose

Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。格式如下:

version: "3.8"
 services:
  mysql:
    image: mysql:5.7.25
    environment:
     MYSQL_ROOT_PASSWORD: 123 
    volumes:
     - "/tmp/mysql/data:/var/lib/mysql"
     - "/tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf"
  web:
    build: .
    ports:
     - "8090:8090"

上面的Compose文件就描述一个项目,其中包含两个容器:

  • mysql:一个基于mysql:5.7.25镜像构建的容器,并且挂载了两个目录
  • web:一个基于docker build临时构建的镜像容器,映射端口时8090

其实DockerCompose文件可以看做是将多个docker run命令写到一个文件,只是语法稍有差异。

4.2 部署微服务集群

4.3 Docker镜像仓库

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NEUMaple

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值