docker介绍与详细安装

news2024/11/18 18:29:19

1 docker 介绍

1.1 虚拟化

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

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

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


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

在这里插入图片描述

1.2 docker

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

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

docker 容器管理 
	-docker swarm
	-k8s

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

1.3 docker和其他虚拟机比较

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

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

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



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

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

在这里插入图片描述

1.4 docker架构

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

在这里插入图片描述

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

3 docker镜像操作

3.1 镜像和容器

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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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.coloradmin.cn/o/1896697.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关键帧功能怎么使用 关键帧控制视频特效怎么用 会声会影视频剪辑软件教程

一篇文章,轻松掌握关键帧的用法,小白也能将关键帧玩得出神入化。在专业级的视频剪辑软件中,滤镜、转场、调色、遮罩等功能都离不开关键帧。可以毫不夸张地说,学会了关键帧的用法,就等于掌握了视频特效的基本逻辑 一、…

Qualcomm QCA206x EasyMesh For Ubuntu

1. 引言 关于EasyMesh概念我们这里就不再过多的赘述,此篇文档的目的是,让广大初学者,有一个很方便的平台进行EasyMesh的学习和测试。 2. X86 Ubuntu平台 2.1 硬件环境准备 备注:QCA206x WiFi module推荐使用移远的FC64E/FC66E。…

详解yolov5的网络结构

转载自文章 网络结构图(简易版和详细版) 此图是博主的老师,杜老师的图 网络框架介绍 前言: YOLOv5是一种基于轻量级卷积神经网络(CNN)的目标检测算法,整体可以分为三个部分, ba…

大数据平台之CDC (Chanage Data Capture) 方案

Change Data Capture (CDC) 是一种用于跟踪和捕获数据库中数据变更的技术,它可以在数据发生变化时实时地将这些变更捕获并传递到下游系统。以下是一些常用的开源 CDC 方案: 1. Flink CDC Flink CDC 是基于 Apache Flink 的一个扩展,它通过集…

.NET下的开源OCR项目:解锁图片文字识别的新篇章

在数字化时代,从图片中高效准确地提取文字信息已成为众多应用场景的迫切需求。OCR(Optical Character Recognition,光学字符识别)技术正是满足这一需求的关键技术。对于.NET开发者而言,幸运的是,存在多个开…

Wireshark网络抓包工具入门指南

目录 引言 安装抓包工具 抓包基础概念 抓包步骤 流程 抓包工具头的分析 14.3 以太网的完整帧格式 粘包与拆包现象解析及解决方案 发生原因 解决方案 14.3.1以太网头 14.3.2 IP头 14.3.3 UDP头 14.3.4 TCP头 引言 Wireshark是一款功能强大的开源网络协议分析器&am…

2024企业加密软件丨为什么企业需要防泄密

企业为什么需要防泄密? 企业的数据中包含了许多核心机密,如研发成果、商业计划、客户资料等。这些信息的泄露可能使竞争对手获得不正当的优势,给企业带来严重损失。 数据泄露事件往往会对企业的声誉造成负面影响,降低客户信任度…

数字化装备场转型,RFID军标桌面发卡器再现创新风暴

在过去,人们主要依靠条形码扫描枪、简单手工抄录等方式来记录数据。部队数字化装备场的出现,对普通发卡器有更高层次的需求:广州一芯未来在传统发卡器基础上,研发出一款利用无线射频信号与RFID军标标签进行通信的设备——RFID军标…

三线表学习记录

参考链接 1,必须使用三线表?全线表如何改为三线表? 这个帖子写的不错。 2,https://www.zhihu.com/question/609126613/answer/3368122091 我设置了三线表格式,可以直接套用。 这块学习先到此为止,7月4号…

新闻发布及管理系统-计算机毕业设计源码21929

新闻发布及管理系统的设计与实现 摘 要 新闻发布及管理系统的设计与实现,是当下信息社会发展的重要一环。随着互联网的普及和新闻媒体的数字化转型,一个高效、稳定且功能全面的新闻发布与管理平台显得尤为重要。SpringBoot框架以其简洁、快速和易于集成的…

什么是声明式编程?发展趋势怎么样的?

一、什么是声明式编程? 声明式编程(Declarative programming)是一种编程范式,与命令式编程相对立。它主要描述目标的性质,让计算机明白目标,而非具体的执行流程。在声明式编程中,开发者只需声明…

程序员,去哪个城市工作更幸福?

深漂、沪漂、京漂、杭漂……又是一年毕业季,作为CS专业or新手程序员会选择什么城市工作呢?希望这篇文章给各位一些参考。 根据拉勾招聘大数据研究院的数据显示,超六成程序员集中在一线城市,其中北京19%,深圳16%&#x…

程序员自由创业周记#37:程序员创业的几个方向

程序员自由创业周记#37:程序员创业的几个方向 报志愿 这几天亲戚一外甥报志愿,让我推荐,我基于自己的认知觉得还是计算机相关是第一优选,即便现在各大互联网公司都过得不怎么好,裁员的消息此起彼伏,很多计…

UE5 01-给子弹一个跟角色一致的向前的方向的冲量

默认Pawn 负责角色位置, 默认PlayerController 负责记录角色相机旋转

微信全民经纪人活动怎么搭建

在这个信息爆炸的时代,如何借助微信这一拥有数亿用户的社交平台,让每一个普通人都成为我们产品的“经纪人”,共同推动品牌的发展,成为了我们面临的重大课题。今天,我们将为您揭开一场以“全民经纪人”为主题的活动盛宴…

开发一套java语言的智能导诊需要什么技术?java+ springboot+ mysql+ IDEA互联网智能3D导诊系统源码

开发一套java语言的智能导诊需要什么技术?java springboot mysql IDEA互联网智能3D导诊系统源码 医院导诊系统是一种基于互联网和3D人体的智能化服务系统,旨在为患者提供精准、便捷的医院就诊咨询服务。该系统整合了医院的各种医疗服务资;智慧…

google::protobuf命名空间下常用的C++ API----message.h

#include <google/protobuf/message.h> namespace google::protobuf 假设您有一个消息定义为: message Foo {optional string text 1;repeated int32 numbers 2; } 然后&#xff0c;如果你使用 protocol编译器从上面的定义生成一个类&#xff0c;你可以这样使用它: …

跳妹儿学编程之ScratchJr(7):动作积木篇—爸爸去散步

引言 在之前的文章中&#xff0c;我们共同踏出了使用ScratchJr编程的第一步。现在&#xff0c;我们对ScratchJr已经有了初步的认识。今天&#xff0c;我们将正式启程&#xff0c;深入探索ScratchJr的编程世界。我们将逐一学习并实践每一种类型的指令&#xff08;积木块&#x…

基于uniapp(Vue3)自定义开发云闪付小程序

云闪付小程没有类似微信或支付宝小程序那样自己的框架&#xff0c;本质是开发一个H5&#xff0c;部署到自己的服务器上&#xff0c;然后在云闪付小程序平台配置首页链接。开发的H5要保证能使用官方的SDK和组件库。 项目基础配置 将以下代码配置入package.json "uni-app…

Navicat Premium16 解锁版安装教程,亲测可用!

前言 “Navicat”是一套可创建多个连接的数据库管理工具&#xff0c;用以方便管理 MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB 和/或 MongoDB 等不同类型的数据库&#xff0c;并支持管理某些云数据库。Navicat 的功能足以符合专业开发人员的所有需求&#xff0c…