SpringCloud笔记总结5

Docker

1.初始Docker

Docker是一个快速交付应用、运行应用的技术:

  • 可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统

  • 运行时利用沙箱机制形成隔离容器,各个应用互不干扰

  • 启动、移除都可以通过一行命令完成,方便快捷
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

2.Docker与虚拟机的差别

Docker和虚拟机的差异:

  • docker是一个系统进程;虚拟机是在操作系统中的操作系统

  • docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般
    在这里插入图片描述在这里插入图片描述

3.Docker架构

3.1镜像和容器

镜像:Docker将应用程序以及所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
容器:镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。
在这里插入图片描述

3.2DockerHub

DockerHub:DockerHub是一个Docker镜像的托管平台,这样的平台称为Docker Registry。
在这里插入图片描述

3.3Docker架构

Docker是一个CS架构,由两部分组成:

  • 服务端(server):Docker守护进程,负责Docker指令,镜像管理,容器等。
  • 客户端(client) : 通过命令或RestAPI向Docker服务端发送指。可以在本地或远程服务端发送指令。
    在这里插入图片描述在这里插入图片描述

4.Docker安装-CentOS环境

4.1安装CentOS

5.Docker基本操作

5.1镜像操作-镜像相关命令

  • 镜像名称一般有两部分组成:[repository]:[tag]
  • 在没有指定tag时,默认是latest,代表最新版本的镜像
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

5.2容器操作-容器相关命令

在这里插入图片描述在这里插入图片描述在这里插入图片描述查看容器状态:

  • docker ps
  • 添加-a参数查看所有状态的容器

删除容器:

  • docker rm

  • 不能删除运行中的容器,除非添加 -f 参数

进入容器:

  • 命令是docker exec -it [容器名] [要执行的命令]

  • exec命令可以进入容器修改文件,但是在容器内修改文件是不推荐的

在这里插入图片描述在这里插入图片描述

5.3数据卷

容器与数据耦合的问题
在这里插入图片描述数据卷:是一个虚拟目录,指向宿主机文件系统中的某个目录。
在这里插入图片描述在这里插入图片描述在这里插入图片描述数据卷的作用:

  • 将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全

数据卷操作:

  • docker volume create
  • docker volume ls
  • docker volume inspect
  • docker volume rm
  • docker volume prune

5.4数据卷挂载

数据卷挂载方式:

  • -v volumeName: /targetContainerPath

  • 如果容器运行时volume不存在,会自动被创建出来
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

6.Dockerfile自定义镜像

1.Dockerfile的本质是一个文件,通过指令描述镜像的构建过程

2.Dockerfile的第一行必须是FROM,从一个基础镜像来构建

3.基础镜像可以是基本操作系统,如Ubuntu。也可以是其他人制作好的镜像,例如:java:8-alpine

6.1镜像结构

镜像:将应用程序及其需要的系统函数库、环境、配置、依赖打包而成
在这里插入图片描述在这里插入图片描述

6.2Dockerfile语法

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

# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量,JDK的安装目录
ENV JAVA_DIR=/usr/local

# 拷贝jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar

# 安装JDK
RUN cd $JAVA_DIR \
 && tar -xf ./jdk8.tar.gz \
 && mv ./jdk1.8.0_144 ./java8

# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin

# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

在这里插入图片描述更新详细语法说明,请参考官网文档: https://docs.docker.com/engine/reference/builder

6.3构建java项

在这里插入图片描述在这里插入图片描述

# 指定基础镜像
FROM java:8-alpine
# 拷贝java项目的包
COPY ./docker-demo.jar /tmp/app.jar
# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

7.DockerCompose

7.1初始DockerCompose

DockerCompose:可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器!
Compose文件:是一个文本文件,通过指令定义集群中的每个容器如何运行。
在这里插入图片描述DockerCompose的详细语法参考官网:https://docs.docker.com/compose/compose-file/

7.2 部署微服务集群

在这里插入图片描述

8.Docker镜像仓库

镜像仓库( Docker Registry )有公共的和私有的两种形式:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值