Linux安装Docker详细教程

news2024/11/17 4:29:15

文章目录

    • Docker架构
    • 环境说明
    • 安装步骤
    • 阿里云镜像加速
    • Docker底层原理

Docker架构

在这里插入图片描述

镜像(image):
Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。 就好似 Java 中的 类和对象,类就是镜像,容器就是对象

容器(container):
Docker 利用容器(Container)独立运行的一个或一组应用。容器是用镜像创建的运行实例。
它可以被启动、开始、停止、删除。每个容器都是相互隔离的,保证安全的平台。
可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)
和运行在其中的应用程序。
容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。

仓库(repository):

仓库(Repository)是集中存放镜像文件的场所。
仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放着多个仓
库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
最大的公开仓库是 Docker Hub(https://hub.docker.com/),存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云 、网易云 等

需要正确的理解仓储/镜像/容器这几个概念 :

Docker 本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个
可交付的运行环境,这个打包好的运行环境就似乎 image镜像文件。只有通过这个镜像文件才能生
成 Docker 容器。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。
同一个 image 文件,可以生成多个同时运行的容器实例。
image 文件生成的容器实例,本身也是一个文件,称为镜像文件。
一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,
也就是我们的容器至于仓库,就是放了一堆镜像的地方,我们可以把镜像发布到仓库中,需要的时候从仓库中拉下来就可以了。

环境说明

我们使用的是 CentOS 7 (64-bit)
目前,CentOS 仅发行版本中的内核支持 Docker。
Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。

查看自己的内核:

uname -r #打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)

结果如下

3.10.0-1062.12.1.el7.x86_64

查看版本信息:

cat /etc/os-release

结果如下

NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

安装步骤

官网安装参考手册:https://docs.docker.com/engine/install/centos/
确定你是CentOS7及以上版本,我们已经做过了
yum安装gcc相关环境(需要确保 虚拟机可以上外网 )

yum -y install gcc
yum -y install gcc-c++

卸载旧版本

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

安装需要的软件包

yum install -y yum-utils 

设置镜像仓库

# 错误
yum-config-manager --add-repo
https://download.docker.com/linux/centos/docker-ce.repo
## 报错
[Errno 14] curl#35 - TCP connection reset by peer
[Errno 12] curl#35 - Timeout
# 正确推荐使用国内的
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-
ce/linux/centos/docker-ce.repo

更新yum软件包索引

yum makecache fast

安装 Docker CE

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

启动 Docker

systemctl start docker

测试命令

docker version
docker run hello-world
docker images

卸载

systemctl stop docker
yum -y remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker

阿里云镜像加速

介绍:https://www.aliyun.com/product/acr

  • 注册一个属于自己的阿里云账户(可复用淘宝账号)
  • 进入管理控制台设置密码,开通
  • 查看镜像加速器自己的

在这里插入图片描述

配置镜像加速

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

测试启动HelloWorld

docker run hello-world

docker run干了什么

在这里插入图片描述

Docker底层原理

Docker是怎么工作的

Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上, 然后通过Socket连接从客户
端访问,守护进程从客户端接受命令并管理运行在主机上的容器。 容器,是一个运行时环境,就是我们前面说到的集装箱。

在这里插入图片描述

为什么Docker比较 VM 快

docker有着比虚拟机更少的抽象层。由亍docker不需要Hypervisor实现硬件资源虚拟化,运行在
docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在
效率上有明显优势。
docker利用的是宿主机的内核,而不需要Guest OS。因此,当新建一个容器时,docker不需要和虚拟机
一样重新加载一个操作系统内核。仍而避免引寻、加载操作系统内核返个比较费时费资源的过程,当新建
一个虚拟机时,虚拟机软件需要加载Guest OS,返个新建过程是分钟级别的。而docker由于直接利用宿主
机的操作系统,则省略了返个过程,因此新建一个docker容器只需要几秒钟。

在这里插入图片描述
虚拟机与docker容器比较
在这里插入图片描述

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

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

相关文章

Day857.高性能限流器Guava RateLimiter -Java 并发编程实战

高性能限流器Guava RateLimiter Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于高性能限流器Guava RateLimiter的内容。 Guava RateLimiter 是如何解决高并发场景下的限流问题的。 Guava 是 Google 开源的 Java 类库&#xff0c;提供了一个工具类 RateLimiter。先…

2022智能制造世界与中国十大科技进展内容小结

2022智能制造世界与中国十大科技进展内容小结1. 全断面隧道掘进装备行业工业互联网平台2. 大型复杂构件机器人原位高效高质量铣削加工技术及装备3. 西门子SNC—原生数字化工厂4. 亚马逊 数字孪生服务IoT TwinMaker5. Nvidia 新一代智能移动机器人仿真平台6. 北京奔驰的基于大数…

Excel特殊符号及用法

一、公式中常用符号 &#xff1a; 表示一个单元格区域&#xff0c;如A1:B10 - * / 加减乘除运算符> 大于号> 大于等于号< 小于号< 小于等于号<> 不等于号&#xff0c;如IF(A1<>"销售部",,)^数字 乘方运算&#xff0c;如…

第二章Mybatis进阶操作学习

文章目录特殊SQL的执行模糊查询批量操作动态设置表名添加功能获取自增的主键自定义映射resultMap处理字段和属性的映射关系在SQL语句中使用别名使用核心配置文件中的驼峰对应方法使用resultMap自定义映射处理一对一映射处理级联方式处理association标签分步查询分步查询的优点&…

【网安神器篇】——Sqlmap详解

作者名&#xff1a;白昼安全主页面链接&#xff1a;主页传送门创作初心&#xff1a;舞台再大&#xff0c;你不上台&#xff0c;永远是观众&#xff0c;没人会关心你努不努力&#xff0c;摔的痛不痛&#xff0c;他们只会看你最后站在什么位置&#xff0c;然后羡慕或鄙夷座右铭&a…

C语言 自定义类型 之 【联合体(共用体)】

文章目录前言联合体(UNION)类型的定义联合体的特点联合体大小的计算联合体使用的典型例题 — 判断机器的大小端写在最后前言 联合体&#xff08;union&#xff09;在C语言中是不常用的&#xff0c;不过存在就必然有其有用之处&#xff0c;这里不深入探讨联合体用在何处有什么用…

R语言实现牛顿插值

文章目录4 差商与牛顿插值差商牛顿插值4 差商与牛顿插值 差商 如果采取间隔不等的采样&#xff0c;差商会变得稍显复杂&#xff0c;对于x0,x1,…,xnx_0,x_1,\ldots,x_nx0​,x1​,…,xn​&#xff0c;若与y0,y1,…,yny_0,y_1,\ldots,y_ny0​,y1​,…,yn​通过映射fff一一对应&…

ASEMI整流桥KBP310电路设计注意事项

编辑-Z 型号&#xff1a;KBP310 最大重复峰值反向电压&#xff08;VRRM&#xff09;&#xff1a;1000V 最大平均正向整流输出电流&#xff08;IF&#xff09;&#xff1a;3.0A 峰值正向浪涌电流&#xff08;IFSM&#xff09;&#xff1a;60A 每个元件的典型热阻&#xff0…

MySQL LOAD VS DM8 dmfldr

MySQL LOAD VS DM8 dmfldr 背景 某业务系统从MySQL迁移至达梦后&#xff0c;有导入业务文件的功能使用MySQL的LOAD方式将csv文件导入到指定的表中。迁移到达梦后&#xff0c;该功能需要进行对应的调整&#xff08;因为达梦没有LOAD功能&#xff09;&#xff0c;但达梦提供了dm…

【自定义类型】-结构体,枚举,联合

&#x1f387;作者&#xff1a;小树苗渴望变成参天大树 &#x1f496;作者宣言&#xff1a;认真写好每一篇博客 &#x1f9e8;作者gitee:link 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作 者 点 点 关 注 吧&#xff01; &#x1f38a;自定义类型&#x1f389;前言&a…

osg fbo(二),将颜色缓冲区图片铺在全屏

其实&#xff0c;需要两个摄像机&#xff0c;一个是采样摄像机&#xff0c;一个是最终显示的摄像机。 osg fbo(一&#xff09;中&#xff0c;passRoot直接加的面片&#xff0c;现在通过最终显示摄像机来代替&#xff0c;passRoot加上这两个摄像机即可。 //passRoot->addCh…

jmeter编写压测脚本规范

一、压测时长 压测时长&#xff0c;一般为10分钟或者15分钟。 设置时长&#xff1a; 勾选 永远--持续时间&#xff08;秒&#xff09; 二、脚本编写规范 脚本越简单越好&#xff0c;多余的监听会影响jmeter的性能&#xff0c;继而影响到压测结果。 一个基础的脚本&#xf…

Web前端axios从入门

1 axios是什么 前端最流行的 ajax请求库&#xff0c; https://gitcode.net/mirrors/axios/axios?utm_sourcecsdn_github_accelerator 基于promise的异步ajax请求库浏览器端/node端都可以使用支持请求/响应拦截器支持请求取消请求/响应数据转换批量发送多个请求 2 json-serv…

论文解读OTA: Optimal Transport Assignment for Object Detection

CSDN优秀解读&#xff1a;https://blog.csdn.net/jiaoyangwm/article/details/126638775 2021 https://arxiv.org/pdf/2103.14259.pdf 关键解读 在目标检测中标签分配的最新进展主要寻求为每个GT对象独立定义正/负训练样本。在本文中&#xff0c;我们创新性地从全局的角度重…

SpringCloudAlibaba商城实战项目(day01)

前言 闲来无事在B站找了一个项目&#xff0c;是谷粒商城的项目&#xff0c;于是乎照着在敲这个项目&#xff0c;特此记录一下。会持续更新到这个项目敲完。这个记录偏向小白向&#xff0c;确保你照着敲也可以完成所有项目的搭建。 一、简介 1.1、项目架构图 1.2、服务列表 …

CAN Bus cable simulation

REF&#xff1a;CAN总线标准接口与布线规范 https://zhuanlan.zhihu.com/p/34333969高速CAN总线物理层对线束的要求 https://www.suncve.com/the-requirement-of-physical-layer-of-can-bus-for-wiring-harness/利用LTSPICE 做仿真&#xff0c; 选用的是 ADI的 CAN transceiver…

RabbitMQ快速入门之进阶

RabbitMQ快速入门之进阶 进阶RabbitMQ快速入门之进阶1、confirm 模式的设置2、return 退回模式的处理3、消费者 Ack&#xff0c;手动确认4、消费端限流 (流量削缝)5、TTL存活时间过期时间6、死信队列DLX7、延迟队列 &#xff08;TTL DLX&#xff09;1、confirm 模式的设置 *c…

VSCode使用Clangd

前言 在使用微软的C/C插件时&#xff0c;遇到较大项目时&#xff0c;代码提示速度非常的慢&#xff0c;这时可以使用clangd 1、系统安装clangd 版本选择&#xff1a;Linux github仓库: https://github.com/clangd/clangd/releases 解压下载好的安装包&#xff1a; unzip cla…

Python实现小米蓝牙温湿度计2 Home Assistant 自定义组件源码

小米 米家蓝牙温湿度计2 这是一个Home Assistant自定义组件&#xff0c;用于 Home Assistant 通过 蓝牙适配器 直接集成 小米 米家蓝牙温湿度计 (LYWSDCGQ/01ZM) 和 米家蓝牙温湿度计2 (LYWSD03MMC)。 v0.2.0-dev版本以后&#xff0c;已经支持自动发现功能&#xff0c;不需要…

Leetcode:501. 二叉搜索树中的众数(C++)

目录 问题描述&#xff1a; 实现代码与解析&#xff1a; 通用写法&#xff08;递归&#xff09;&#xff1a; 原理思路&#xff1a; 依据二叉搜索树特性写法&#xff08;递归&#xff09;&#xff1a; 原理思路&#xff1a; 迭代&#xff1a; 原理思路&#xff1a; 问题…