二十五、Docker (1)

news2024/11/16 12:36:21

🌻🌻 目录

  • 一、Docker的概述
    • 1.1 为什么要去学习Docker
    • 1.2 Docker 概述
    • 1.3 Docker的历史
    • 1.4 Docker 官网
    • 1.5 Docker能做什么
    • 1.6 DevOps(开发、运维)
  • 二、Docker安装启动(官网)
    • 2.1 Docker 架构
      • 2.1.1 镜像(image)
      • 2.1.2 容器(container)
      • 2.1.3 仓库(repository)
    • 2.2 Docker安装启动
  • 三、Docker安装启动(本地)
    • 3.1. 下载Docker-CE rpm安装包
    • 3.2 安装Docker
    • 3.3 启动与停止Docker
    • 3.4 验证Docker是否安装成功
  • 四、 配置阿里云镜像加速
  • 五、 Docker 底层原理
    • 5.1 Docker是怎么工作的
    • 5.2 Docker为什么比VM快

弱小和无知不是生存的障碍,傲慢才是。

在这里插入图片描述

一、Docker的概述

所有的技术都是因为出现了一些问题,我们需要去解决,才去学习!

1.1 为什么要去学习Docker

在没有出现Docker之前,我们的部署环境变得很麻烦,当换一台电脑或服务器都需要重新安装一些软件,插件,中间件,都要重新配置,有了Docker之后,就变得尤为简单,直接搬离Docker就可以了。

1.2 Docker 概述

Docker是一个开源的容器引擎,它可以帮助我们更快地交付应用。Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用Docker,可更快地打包、测试以及部署应用程序,并可减少从编写到部署运行代码的周期。

在这里插入图片描述

在这里插入图片描述

1.3 Docker的历史

  1. 2010 年,几个搞IT的年轻人,就在美国成立了一家公司 dotCloud;
  2. 做一些 pass的云计算服务! linux有关的容器技术;
  3. 他们将自己的技术(容器化技术)命名为Docker!
  4. Docker刚刚诞生的时候,没有引起行业的注意!dotCloud,这时候dotCloud就很难活下去了!
  5. 所以他们就采取了开源,差不多也就是2013年
  6. 这时候Docker被越来越多的人发现了,并且知道了Docker的优点,这时候Docker就开始火了,进而就每个月都更新一个新的版本!
  7. 2014年4月9日,Docker1.0版本发布!
  8. 直到现在,Docker成为了开发运维人员的必备技能,所以我们必须要掌握它哦!!

1.4 Docker 官网

Docker是基于 Go语言开发的开源项目!

Docker官网

Docker文档地址

Docker 仓库地址

在这里插入图片描述

1.5 Docker能做什么

之前的虚拟机技术

在这里插入图片描述

虚拟机技术缺点:

  1. 资源占用十分多;
  2. 冗余步骤多;
  3. 启动很慢。

现在使用容器化技术

在这里插入图片描述
容器化技术不是模拟的一个完整的操作系统

比较Docker和虚拟机技术的不同

  • 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件;
  • 容器内的应用直接运行在宿主机的内核,容器是没有自己内核的,也没有虚拟我们的硬件,所以就轻便了;
  • 每个容器间是互相隔离的,每个容器内都有一个属于自己的文件系统,互不影响。

1.6 DevOps(开发、运维)

应用更快速的的交付和部署

  • 传统:一堆帮助文档,安装程序
  • Docker:打包镜像发布测试,一键运行

更快捷的升级和扩缩容

  • 使用了Docker之后,我们部署应用就和搭积木一样!
  • 项目打包为了一个镜像,扩展 服务器A !服务器B

更简单的系统运维

  • 在容器化之后,我们的开发,测试环境都是高度一致的。

更高效的计算资源利用

Docker是内核级别的虚拟化,可以在一个物理机尚可以运行很多的容器实例!服务器的性能可以被压榨到极致。

二、Docker安装启动(官网)

2.1 Docker 架构

在这里插入图片描述

2.1.1 镜像(image)

Docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像 >run>tomcat01容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)类似于一个装系统的光盘。

2.1.2 容器(container)

Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的。
启动,停止,删除,基本命令!
目前就可以把这个容器理解为就是一个简易的linux系统

2.1.3 仓库(repository)

仓库就是存放镜像的地方!
仓库分为公有仓库和私有仓库!
Docker Hub(默认是国外的)
阿里云……都有容器服务器(配置镜像加速!)

2.2 Docker安装启动

  1. 环境准备
  1. 需要会一点点的Linux的基础,前面都总结喽
  2. CentOS 7 前面安装步骤参考
  3. 我们使用Xshell连接远程服务器进行操作!(下面都可以的)

在这里插入图片描述

  1. 环境查看
uname -a

cat /etc/os-release

在这里插入图片描述

  1. 安装

参考文档

在这里插入图片描述

#1. 卸载旧的版本
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

在这里插入图片描述

在这里插入图片描述

# 2. 需要的安装包
yum install -y yum-utils

在这里插入图片描述

# 3. 设置镜像的仓库
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo   #默认是国外的
    
yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo   #推荐使用阿里云的(百度搜索 docker阿里云镜像地址即可)

在这里插入图片描述

# 4. 安装下面5之前先更新哈
 yum makecache fast

在这里插入图片描述

在这里插入图片描述

#5. 安装docker相关的内容  ce 为社区版  ee为企业版  一般使用社区版就行了

yum install docker-ce docker-ce-cli containerd.io 

在这里插入图片描述

如果出现下面直接 y 即可

在这里插入图片描述

在这里插入图片描述

# 6. 安装完启动 docker
systemctl start docker
#7.使用docker version查看是否安装成功
docker version

8. 测试  hello-world
 docker run hello-world

在这里插入图片描述

在这里插入图片描述

#9. 查看上面 hello-world 镜像是否下载,下载到哪

docker images

在这里插入图片描述

在这里插入图片描述

# 10. 卸载依赖
yum remove docker-ce docker-ce-cli containerd.io

# 11. 删除docker资源
rm -rf /var/lib/docker

#/var/lib/docker docker默认工作路径

三、Docker安装启动(本地)

3.1. 下载Docker-CE rpm安装包

注意下载版本要和操作系统版本对应。

本地获取 docker-ce-18.06.2.ce-3.el7.x86_64.rpm

在这里插入图片描述

3.2 安装Docker

执行命令:

yum install -y docker-ce-18.06.2.ce-3.el7.x86_64.rpm

注意:确保linux服务器处于联网状态。

在这里插入图片描述

3.3 启动与停止Docker

启动docker:

systemctl start docker

停止docker:

systemctl stop docker

重启docker:

systemctl restart docker

查看docker状态:

systemctl status docker

在这里插入图片描述

3.4 验证Docker是否安装成功

执行命令:

docker info

在这里插入图片描述

查看返回信息,能否查看到Docker相关信息
到此,Docker安装完毕!

四、 配置阿里云镜像加速

  1. 登录自己的阿里云

在这里插入图片描述

在这里插入图片描述
2. 配置使用

在这里插入图片描述

分为四步走:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://fln0ctgy.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

在这里插入图片描述

理解上面的 Hello-world的流程(在docker中是怎么运行的)

在这里插入图片描述

五、 Docker 底层原理

5.1 Docker是怎么工作的

  • Docker是一个Client - Server结构的系统,Docker的守护进程运行在主机上。通过Socket从客户端访问!
  • DockerServer 接收到Docker - Client的指令,就会执行这个命令!

在这里插入图片描述

5.2 Docker为什么比VM快

  1. Docker有着比虚拟机更少的抽象层。
  2. Docker利用的是宿主机的内核,vm需要的是 Guest OS.

在这里插入图片描述

  • 所以说,新建一个容器的时候,docker不需要想虚拟机一样重新加载一个操作系统内核,避免引导。虚拟机是加载Guest OS,分钟级别的,而docker是利用宿主机的操作系统,省略了这个复杂的过程,秒级!

学习了后面即将总结的所有命令,再回过来看这段理论,就会很清晰的!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/140530.html

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

相关文章

DICOM 图像传输:使用 LeadTools 实现 C-Store SCP 服务

文章目录开发环境创建 Qt Widgets 程序设计界面配置 LeadTools 路径编写代码使用 LDicomNet 实现 SCP 的步骤日志输出编写 SCP Server 类编写 SCP Client 类启动 LDicomNet 及启动监听编译程序运行程序发布与部署测试程序界面美化参考开发环境 LeadTools 17Qt 5.15.2 MSVC2019…

【Linux】进程间通信(万字详解) —— 上篇

&#x1f387;Linux&#xff1a; 博客主页&#xff1a;一起去看日落吗分享博主的在Linux中学习到的知识和遇到的问题博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a; 看似不起波澜的日复一日&#xff0c;一定会在某一天让你看见坚持…

谷粒学院——第九章、阿里云视频点播

阿里云视频点播 开通 地址&#xff1a; 上传测试 开通以后&#xff0c;点击控制台&#xff0c;然后选择音/视频&#xff1a; 注意&#xff1a;先点击启用存储地址再上传。 添加转码模版&#xff1a; 开发文档 官方地址&#xff1a;https://help.aliyun.com/p…

批量统计不同块的数量

CAD收集块的数量一般采用FI等命令&#xff0c;或者使用天正等软件&#xff0c;这些方法或多或少都存在某些问题。这时就可以编写插件满足不同场景的使用。已应用到实际工作中。 一、界面及其功能 采用c#制作cad插件&#xff0c;框选待统计范围&#xff0c;直接输出到表格中&…

数据库连接超时的处理

报错信息&#xff1a;Caused by: java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30000ms.at com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:695)at com.zaxxer.hikari.pool.H…

Java高手速成 | 数据库实训:图书馆管理系统建模

图书馆管理系统是常见的管理信息系统&#xff0c;考虑到系统的推广性&#xff0c;本系统采用SQL SERVER2000作为数据库。并且采用PowerDesigner进行数据建模&#xff0c;从而自动生成sql脚本。 01、数据库概念设计 1. 数据库表设计 管理员表admin&#xff1a;管理员编号&am…

[JavaEE] volatile与wait和notify

专栏简介: JavaEE从入门到进阶 题目来源: leetcode,牛客,剑指offer. 创作目标: 记录学习JavaEE学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录 一.volatile 关键字. 1.volatile 能保证内存可见性…

12个爆款 Java 开源项目

1JavaGuidehttps://github.com/Snailclimb/JavaGuide Star 10503【Java学习面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。2symphonyhttps://github.com/b3log/symphony Star 6664一款用 Java 实现的现代化社区&#xff08;论坛/BBS/社交网络/博客&#xff09;平台…

17-Golang中的包

Golang中的包基本介绍包的三大作用相关说明包的注意事项和细节说明基本介绍 1.在实际的开发中&#xff0c;我们往往需要在不同的文件中&#xff0c;去调用其他文件的定义的幻术&#xff0c;比如main.go中&#xff0c;去使用utils.go文件中的函数2.包的本质就是创建不同的文件夹…

vue简单的数据传输

很久没有水文了&#xff0c;最近又得了新冠才好&#xff0c;学习也没什么进度&#xff0c;先复习下之前的组件的数据传输吧&#xff01; props传值 这个很简单就是在组件标签上转递数据&#xff0c;值得注意的是如果不使用v-bind:&#xff08;&#xff1a;&#xff09;,转递的…

任务二:Web隐藏信息获取

任务二:Web隐藏信息获取 任务环境说明: 服务器场景名:web20200604服务器场景用户名:未知通过本地PC中渗透测试平台Kali使用Nmap扫描目标靶机HTTP服务子目录,将扫描子目录命令所需参数及第四条扫描结果关键目录以&符号拼接,作为Flag提交(例:-p 22&/root/); …

【信息学CSP-J近16年历年真题64题】真题练习与解析 第11题之纪念品

纪念品 描述 小伟突然获得一种超能力,他知道未来 T 天 N 种纪念品每天的价格。某个纪念品 的价格是指购买一个该纪念品所需的金币数量,以及卖出一个该纪念品换回的金币数量。 每天,小伟可以进行以下两种交易无限次: 任选一个纪念品,若手上有足够金币,以当日价格购买该…

Android---DrawerLayout + NavigationView

现在 Android Studio 已经直接提供左滑菜单功能&#xff0c;只需要在创建新项目时选择 Navigation Drawer Activity 就可以直接创建一个有左滑菜单功能的 APP。 目录 DrawerLayout NavigationView android:src 与 app:srcCompat fitsSystemWindows DrawerLayout …

数据报告重要的是业务看得懂

一、前言上篇文章我们从指标库的角度梳理了指标是如何计算出来的&#xff0c;确保业务人员有数可寻&#xff0c;但对于业务人员而言&#xff0c;并不是所有的指标都看得懂&#xff0c;也不是所有的指标都需要理解&#xff0c;笔者见过太多不知所云的数据报告&#xff0c;各种模…

Maven高级-分模块拆分

Maven高级 分模块开发与设计 聚合 继承 属性 版本管理 资源配置 多环境开发配置 跳过测试 私服 分模块开发与设计 拷贝原始项目中对应的相关内容到ssm_pojo模块中 ​ 实体类&#xff08;User&#xff09; ​ 配置文件&#xff08;无&#xff09; User.java package com.i…

S32K144-S32DS 导入/编译/烧录 遇到的问题

找到你开发套件软件安装包的路径&#xff0c;里面有四个例子&#xff0c;任选一个&#xff1b;不要忘记复制到工作区 问题一&#xff1a;修改电机库的路径 问题二&#xff1a;freemaster路径问题 编译还是报错&#xff0c;好像还必须安装FreeMaster 安装之后&#xff0c;还是这…

电子招标采购系统源码:构建高效智能数字化采购

过去几十年&#xff0c;公用事业行业发生了重大变化。能源需求的转变导致企业利润率的波动&#xff0c;但不是运营成本的波动。 许多公用事业公司通过后勤部门流程自动化来削减成本&#xff0c;比如招采流程自动化。 在招采活动中&#xff0c;人工招采会产生盲点。由于公共事业…

【MySQL】MySQL视图原理与实战(MySQL专栏启动)

&#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;专注于研究 Java/Liunx内核/C及汇编/计算机底层原理/源码&#xff0c;就职于大型金融公司后端高级工程师&#xff0c;擅长交易领域的高安全/可用/并发/性能的架构设计与演进、系统优化与稳定性建设。 &#x1f4…

ArcGIS基础实验操作100例--实验51CAD转要素类

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 高级编辑篇--实验51 CAD转要素类 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;1&#…

多线程之线程安全问题

1.线程安全示例 class Count{int a 0;public void add(){a;} } public class ThreadDemo8 {public static void main(String[] args) {Count count new Count();Thread t1 new Thread(()->{for (int i 0; i < 5_0000; i) {count.add();}});Thread t2 new Thread(()…