0
点赞
收藏
分享

微信扫一扫

Redis优异的性能是如何实现的?

天悦哥 2023-12-29 阅读 31

目录


友情提醒:

先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。有用记得关注

第一章、快速了解Docker

1.1)先了解虚拟化和虚拟机

虚拟化是一种资源管理技术,应用场景:

①虚拟机通过虚拟化技术可以创建虚拟机。指通过软件模拟的运行在一个完全隔离环境中的完整计算机系统。一台物理服务器虚拟化成多个虚拟机,每个虚拟机都可以运行一个操作系统和应用,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量,每个虚拟机都独占一定的硬件资源,无法实现资源的动态调整。

②云服务器也使用了虚拟化技术,将物理服务器的计算资源虚拟化成多个独立的虚拟资源。每个云服务器实例都可以运行一个操作系统和应用,云服务器采用弹性可伸缩的计算资源,用户可以根据需求调整CPU、内存和存储等资源这是虚拟机做不到的。

③Docker也运用了虚拟化技术:属于虚拟化技术中的操作系统层轻量级虚拟化技术。Docker是应用容器引擎让开发者可以打包他们的应用及依赖环境到一个可移植的容器中,然后可以将这个容器快速部署开发、测试或生产环境中。
因此,虚拟化技术是一个更广泛的概念,而Docker是虚拟化技术中的一个具体实现。

docke和虚拟机相比的优势
1、资源消耗:Docker容器需要的资源更少,共享宿主机的操作系统,只需极少资源。

2、启动速度:Docker容器启动速度更快,通常在数毫秒内即可完成。

3、隔离性:Docker隔离性比虚拟机低但资源利用更加高效了,通过容器技术提供了一定程度的隔离,但仍共享同一个操作系统。

4、可移植性:Docker容器可移植性更高,开发人员可以轻松地在本地和生产环境之间迁移应用程序。

5、管理复杂性:Docker通过简化容器管理,降低了复杂性。

1.2)Docker是什么

先了解三个概念:
①Docker镜像:
镜像是Docker运行容器的前提,使用镜像来构建容器,Docker镜像是一种轻量级的、可执行的独立软件包,包含了运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件等等必需的资源。镜像使得应用程序的部署和管理变得更加简单、高效和可靠。

我们可以自己Dockerfile构建镜像,构建完成后,可以通过Docker push命令将其推送到Docker仓库中。其他用户则可以通过Docker pull命令从仓库中拉取镜像。

②Docker仓库:
仓库是存放镜像的场所,Docker提供了注册服务器(Registry)来管理仓库,一个注册服务器上可以存在多个仓库,而每个仓库下可以有多个镜像。
仓库分为公有仓库和私有仓库:

公有仓库:公开给用户使用的,用户可以在其中上传和下载镜像,比如Docker Hub;

私有仓库:私有仓库则是用户自行搭建的,仅供自己或指定用户使用。

③Docker容器:
应用程序及其依赖项被打包成一个镜像,使用镜像来构建容器,容器是镜像的具体实例,容器与镜像的关系类似于面向对象编程中的对象与类。让应用程序及其依赖项运行在一个隔离的环境中,被称为容器。这个隔离的环境类似于一个轻量级的沙箱,每个容器都有自己的文件系统、进程、网络等,与宿主机是隔离的。

④Docker客户端
Docker是客户端-服务器(C/S)架构程序。Docker客户端只需要向Docker服务器或者守护进程发出请求,服务器或者守护进程将完成所有工作并返回结果。Docker提供了一个命令行工具Docker以及一整套RESTful API。你可以在同一台宿主机上运行Docker守护进程和客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程。

1.3)疑问的提出

这里是我学习过程中产生的几个疑问:
①Docker运行在哪里?
我为啥要使用Docker????
②Docker如何安装?
③如何运行容器
④Docker的常用命令和含义是什么?
⑤Docker容器运行起来了,怎么访问这些容器
⑥我如果打包了也给项目,可以直接在Docker中运行吗?

好,那么好,现在开始带着疑问学习,等学完看看这些疑问解决了没,如果解决了就把这段删了

第二章、安装Docker

2.1)为什么使用Docker

最大的优势是快速部署,迁移简单,管理方便。
举例来说:
比如我写了一个博客系统,为了让这个系统正常运行需要各种各样的外部条件支持,
比如:JDK环境,数据库,外部软件、中间件等等各种开源软件,还要再配置相应配置文件。这些只是安装一次就已经很烦了。如果要多次安装,不仅繁琐复杂而且容易出错。

但是有了Docker,只需要根据部署步骤编写一份Dockerfile文件,构建并发布镜像,以后只需要使用镜像就可以再任意操作系统直接部署运行。其他还有一些优势如启动快,消耗资源少等。

2.2)安装Docker

①Docker在哪里安装?
Docker是安装在操作系统上的

1、在Windows系统,Docker安装目录通常在C:\Program Files\Docker
2、在CentOS系统,Docker安装目录为/usr/libexec/Docker
3、在Ubuntu系统,Docker安装目录为/usr/bin/Docker
4、在Mac系统,Docker安装目录通常在/usr/local/bin/

操作系统可以安装在哪里?

1、自己实体电脑上,安装win10操作系统
2、虚拟机上,安装LinuxCentOS操作系统
3、云服务器上,安装Linux操作系统

所以先在自己电脑安装虚拟机,接着在虚拟机安装Linux操作系统
这一步写在这篇文章了:VMware虚拟机官网下载安装,虚拟机中安装Linux系统CentOS7(图文详解)

②在Linux操作系统里安装Docker
1、先卸载干净之前安装Docker残余的文件,如果以前没有安装过可以忽略,卸载命令:

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

提示没有需要卸载的包
在这里插入图片描述
2、安装需要的一些系统工具包,这个工具包它提供了yum-config-manager实用程序,通过这个程序我们可以设置镜像仓库。命令:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

在这里插入图片描述
安装完成
在这里插入图片描述
3、设置稳定的仓库,国外的比较慢然后还容易断开,一般我们都选择阿里的地址。命令:

sudo yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

应该是成功了
在这里插入图片描述
4、更新 yum 缓存:命令:

sudo yum makecache fast

这一步不知道干啥的,我照做了

5、安装Docker引擎( Docker Engine-Community),containerd,Docker Compose三个东西。命令:

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

在这里插入图片描述
让下载文件,输入y,选择是
在这里插入图片描述
提示接受 GPG 密钥,选是。选y
在这里插入图片描述
安装完成了
在这里插入图片描述

2.3)启动/停止/重启Docker

启动/停止/重启Docker命令:
启动docker:systemctl start docker
停止docker:systemctl stop docker
重启docker:systemctl restart docker
查看docker状态:systemctl status docker
开机机启动:systemctl enable docker

启动后输入以下命令,确定是否能够运行 hello-world 镜像

运行hello-world镜像,命令:
sudo docker run hello-world

运行成功得到下面的反馈,说明Docker Engine-Community 安装成功。
在这里插入图片描述

查看安装版本命令:
$ docker version
# 或者
$ docker info

Docker用户组存在,但里头不包含用户,所以我们每次都要sudo命令来运行Docker命令,不想每次开头都加入sudu,可以把用户加入 Docker 用户组。

sudo usermod -aG docker $USER

现在我们可以直接docker开头了

docker run hello-world

2.4)配置加速器

输入以下命令编辑文件,如果该文件不存在就手动创建

vi /etc/docker/daemon.json

在文件中输入以下配置后保存退出

{
  "registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"]
 }

如图:
在这里插入图片描述
使配置文件生效,命令:

systemctl daemon-reload

重启docker

systemctl restart docker

第三章、操作Docker

3.1)镜像相关的基本命令

列出镜像,命令:
docker images

在这里插入图片描述
这里只有一个hello-world镜像,字段解释如下:

REPOSITORY:镜像所在的仓库名称
TAG:镜像标签
IMAGE ID:镜像唯一ID
CREATED:镜像的创建日期(不是获取该镜像的日期)
SIZE:镜像大小
搜索网络中的镜像,命令:
#docker search 镜像名称
#例如:
docker search redis
从Docker Hub下载镜像命令:

下载个zookeeper试试

docker pull zookeeper

因为之前配置过加速器,所以很快就下好了
在这里插入图片描述

根据IMAGE ID删除指定镜像,命令:
#docker rmi 镜像ID
#例如
docker rmi d2c94e258dcb

报错:镜像正被停止的容器使用

Error response from daemon: conflict: unable to delete d2c94e258dcb (must be forced) - image is being used by stopped container 584d85e88b4b

所以我们得把容器删了,请看下一章节

3.2)容器相关的基本命令

运行镜像创建容器

分为两种交互式和守护式。交互式了解就好因为一退出容器,容器就关了

交互式创建:
		docker run -it --name=mycentos1 centos /bin/bash
-i:表示运行容器 
-t:表示容器启动后会进入其命令行
--name: 给容器命名
centos:镜像名称
/bin/bash  docker后台必须运行一个进程,否则容器就会退出,在这里表示启动容器后启
动bash.bash是 Bourne-Again SHell 的缩写,shell是命令解释器的意思shell中可以直接调用Linux命令
守护式创建容器,命令
docker run -di --name=mycentos2 centos
进入守护式容器,命令
docker exec -it mycentos2 /bin/bash
退出容器,命令
exit
启动容器命令
docker start mycentos2
停止容器命令
docker stop mycentos2
查看容器,命令:
查看正在运行容器:docker ps
查看所有容器:docker ps –a
查看最后运行的容器:docker ps -l
查看停止的容器:docker ps -f status=exited
删除容器,命令

不过尽量别把所有容器删了

删除指定容器:docker rm 容器id
删除所有容器:docker rm `docker ps -a -q`

3.3)

第四章、

4.1)

4.2)

4.3)

举报

相关推荐

Flutter 是如何实现的 ?

0 条评论