docker介绍与详细安装

news/2024/7/8 6:12:15 标签: docker, 容器, 运维

docker__0">1 docker 介绍

1.1 虚拟化

 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。

在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件  对资源充分利用

虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等。


# kvm,VMware,openstack,docker,k8s
	-kvm,vmware:虚拟化软件
    -openstack,阿里飞天:虚拟化软件管理web项目 -- python
    
    -docker容器-k8s:容器管理编排

在这里插入图片描述

docker_30">1.2 docker

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 加了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在上进行维护。

容器化技术,区分于虚拟机,又类虚拟机,兼具虚拟机隔离的优点,又有速度快的优点
容器资源隔离,网络隔离
把容器当成一个虚拟机即可

docker 容器管理 
	-docker swarm
	-k8s

Docker 的基础是 Linux 容器(LXC)等技术

docker_48">1.3 docker和其他虚拟机比较

# docker 不需要虚拟化出 操作系统这一层---》更轻量级--占空间更小---》还能实现隔离

# 虚拟机技术的缺点:
    1.资源占用太多
    2.冗余步骤多
    3.启动很慢

# 容器化技术
1.服务器资源利用率高
2.比较轻量化
3.打包镜像测试,一键运行



比较Docker和虚拟机技术不同:
​ 1.传统虚拟机,虚出一套硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
​ 2.容器内的应用之间运行在 宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件,所以久轻便了
​ 3.每个容器间是互相隔离的,每个容器内都有属于自己的文件系统,互不影响
​ 4.安全性,docker的安全性更弱,
​ 5.与虚拟机相比,docker隔离性更弱,docker属于进程之间的隔离,虚拟机可实现系统级别隔离

​ 7docker创建时秒级的,docker的快速迭代性,无论是开发、测试、部署都可以节约大量时间

在这里插入图片描述

docker_82">1.4 docker架构

# cs 架构---》客户端服务端
	- c 端:用户操作,输入命令
    - s端:接收用户命令,执行
    -c、s通信,使用http协议,遵循restful规范
    	-mysql:tcp---》自定义的  
        -redis:tcp---》自定义的  
        
        
  # 架构
	1 client:客户端,输入命令
    2 服务端:
    	containers:容器
        images:镜像--》从注册中心下来下来的
        
    3 register:注册中心
    	-放了很多镜像--》redis,nginx,mysql

在这里插入图片描述

docker_113">2 docker安装和配置

# 1 linux   win 安装
# 2 win:https://www.docker.com/products/docker-desktop/  下载 docker-desktop
	-一路下一步安装
    
    
# 3 centos 7.9 安装

# https://www.vmware.com/content/vmware/vmware-published-sites/cn/products/workstation-pro/workstation-pro-evaluation.html.html.html
	-视频,软件:vmware ,镜像文件
    
    
# 4 创建一个centos 7.9的虚拟机,在这个基础上讲docker

# 5 如果之前装过,卸载
# yum remove docker docker-common  docker-selinux docker-engine
# rm -rf /var/lib/docker
yum update  # 更新yum仓库

# 6 安装
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y


# 7 查看安装的版本
docker --version

# 8 目前我们只装了 docker-ce,
	-只有:c  和 s端
    -没有docker-compose
    -没有图形化解码
    -docker-destop的区别
    
    
# 9 启动docker
systemctl status docker
systemctl start docker


# 10 镜像--》从远程下载下来的---》hub.docker.com -->仓库下的
	-有非常多镜:可以搜索,搜到以后,镜像有不同版本
    -目前:访问不到了,拉去不下来
    -配置:国内镜像站:阿里云
    -https://cr.console.aliyun.com/cn-shanghai/instances/mirrors
    sudo mkdir -p /etc/docker # 如果有,就不需要创建了
    vi /etc/docker/daemon.json 
    # 加入
    {
      "registry-mirrors": ["https://x1566319.mirror.aliyuncs.com"]
    }
    # 按 esc
    # 输入  :wq  敲回车


    # 保存退出
    systemctl daemon-reload   # 重新加载docker配置
    systemctl restart docker  # 重启docker

image-20240619163429791

先创建在克隆

image-20240619163017427

docker_183">3 docker镜像操作

3.1 镜像和容器

# 镜像:images
	-一堆文件---》目前咱们从register---》下载---》放在宿主机(centos 7.9机器)
    -类比:虚拟上装系统
    	- 操作系统文件 xx.iso--->装在虚拟机上
        - 镜像你当成 xx.iso 操作系统文件
        -把iso装在不同虚拟机中---》启动---》多台有操作系统的机器
# 容器:container
	-镜像运行---》运行成容器
    -类比:
    	-容器当成一个正在运行的操作系统
    -一个镜像,可以运行成多个容器
    
    
    
# python面向对象
	类:镜像
    对象:实例化得到多个对象,每个对象间独立的
    
    
    
# 以后一个容器,你们当成 :一个操作系统+软件--》正在运行  

docker-day01.assets%2Fimage-20240619121951764.png&pos_id=img-hN784r8y-1720107628367" alt="外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传" />

3.2 镜像操作

image-20240619210437900

# 0 搜索镜像
	-去网站搜:https://hub.docker.com/ 
	-使用命令行搜:docker search mysql
    
# 1 获取镜像,拉去镜像---》从register下载到本地--》阿里云镜像站--》加速拉取
	docker pull mysql:5.7 # 下载mysql 5.7镜像
	docker pull redis:latest # 下载redis最新的镜像
    docker pull nginx:latest  # 下载 nginx最新的镜像
    docker pull centos:centos7  # 下载 nginx最新的镜像
    
# 2 查看镜像
	docker images

# 3 删除镜像
	docker rmi redis:latest

创建虚拟机基本配置

Unbantu

安装unbantu22.04.4版本

image-20240702185109629

image-20240702185132990

image-20240702185144414

image-20240702185158356

image-20240702185220374

image-20240702185232631

image-20240702185242742

  • 这里需要用桥接网络

image-20240702185322560

image-20240702185334042

image-20240702185342919

image-20240702185352778

image-20240702185401760

image-20240702185410783

image-20240702185419784

然后进入需要安装ssh跟关闭防火墙才能进行ssh远程连接

# 查看防火墙状态
sudo ufw status

#检查 SSH 服务状态:

sudo service ssh status
#如果 SSH 服务未安装,您可以通过以下命令安装它:

sudo apt-get update  # 更新软件包列表
sudo apt-get install openssh-server
#启动 SSH 服务:

sudo service ssh start
#停止 SSH 服务:

sudo service ssh stop
#重启 SSH 服务:

sudo service ssh restart
#查看 SSH 服务的状态:

sudo service ssh status
#允许 SSH 服务通过防火墙(如果您使用的是 UFW 作为防火墙):

sudo ufw allow ssh
#如果您希望 SSH 在系统启动时自动启动,可以使用以下命令来启用它:

sudo update-rc.d ssh defaults

CentOS7.9

image-20240619163959004

image-20240619164119083

image-20240619164300423

image-20240619164438298

image-20240619164504497

image-20240619164540654

image-20240619164607112

image-20240619164625921

image-20240619164651635

image-20240619164735557

image-20240619164802260

  • 选择安装系统

image-20240622132350734

  • 要下载镜像源

image-20240619174057245

image-20240622132038822

image-20240622132055474

image-20240622132105778

image-20240622131925922

  • 设置“root密码”->“完成”,等待安装

image-20240622132122507

  • 安装完成“重启”,启动后输入账号和密码

image-20240622132557268


http://www.niftyadmin.cn/n/5536646.html

相关文章

Perl 语言开发(五):循环语句

目录 1. 循环语句概述 2. while 循环 2.1 基本语法 2.2 示例 2.3 无限循环 3. until 循环 3.1 基本语法 3.2 示例 3.3 无限循环 4. for 循环 4.1 基本语法 4.2 示例 4.3 嵌套循环 5. foreach 循环 5.1 基本语法 5.2 示例 5.3 遍历哈希 6. 循环控制语句 6.1 …

【unity实战】使用unity的新输入系统InputSystem+有限状态机设计一个玩家状态机控制——实现玩家的待机 移动 闪避 连击 受击 死亡状态切换

最终效果 文章目录 最终效果前言人物素材新输入系统InputSystem的配置动画配置代码文件路径状态机脚本创建玩家不同的状态脚本玩家控制动画优化(补充)闪避手动优化受伤和死亡同理 源码完结 前言 前面我们已经写过了使用有限状态机制作一个敌人AI&#x…

kubernetes service 服务

1 service作用 使用kubernetes集群运行工作负载时,由于Pod经常处于用后即焚状态,Pod经常被重新生成,因此Pod对应的IP地址也会经常变化,导致无法直接访问Pod提供的服务,Kubernetes中使用了Service来解决这一问题&#…

SHELL脚本学习(十三)初识 gawk 编辑器

概述 gawk提供了一种编程语言,而不仅仅是编辑器命令。 在gawk语言中,可以实现如下操作: 定义变量保存数据使用算数和字符串运算符处理数据使用结构化编程概念 为数据处理添加处理逻辑提取文件中的数据并将其重新排列组合,最后生…

Flume集群部署(手把手部署图文详细版)

前景概要: Kafka消息订阅系统在大数据业务中有着重要运用,尤其在实时业务中,kafka是必不可少的组件之一。 Flume是大数据组件中重要的数据采集工具,我们常利用Flume采集各种数据源的数据供其他组件分析使用。例如在实时业务中&…

Flutter本地数据持久化的几种方式

目录 前言 一、shared_preferences 1.添加依赖 2.保存数据 3.读取数据 4.移除数据 5.Shared_preferences的优缺点 6.完整的示例代码 二、path_provider 1.导入path_provider 2.创建文件读写的目录 3.向文件中写入数据 4.从文件中读取数据 5.完整的示例代码 三、…

opencv 图像的缩放(放大,缩小),翻转与旋转

目录 opencv 图像的缩放(放大,缩小),翻转,旋转1、图像的缩放,旋转过程中为什么需要插值:2、常见的插值算法包括:3、图像的缩放,翻转,旋转:(1)图像…

R 绘图 - 饼图

R 绘图 - 饼图 饼图是一种常用的数据可视化工具,用于展示数据集中各个类别的相对比例。在R语言中,饼图可以通过多种方式绘制,其中最常用的是pie()函数。本文将详细介绍如何在R中创建和定制饼图,包括基本饼图的绘制、添加标签、调…