Docker ( 一 ) 基本概念及安装

news2024/11/16 12:04:33

1.Docker是什么?

Docker 是一个开源的应用容器引擎, 可以简化理解实现应用与运行环境分离.

Docker 其中包括,镜像、容器、仓库等概念,目的就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的产品(可以是 web 应用或者数据库应用)及其环境能够做到“一次封装,到处运行”。

Docker实际上就相当于一个封闭的沙盒或者是集装箱,它可以把不同的应用全都放在它的集装箱里面,并且以后有需要的时候,可以直接把集装箱搬到其他平台或者服务器上,可以跨平台,跨服务器,实现应用程序跨平台间的无缝衔接. 实现容器虚拟化技术,随用随搬

一句话,Docker解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。

是dotCloud公司开源的一个基于LXC的高级容器引擎,源码托管在Github上,基于 Go 语言 并遵从 Apache2.0 协议开源。

GitHub地址:https://github.com/moby/moby

docker官网:https://www.docker.com
docker中文库:https://www.docker.org.cn/

2017年初,docker公司将原先的docker开源项目改名为moby。
moby是集成了原先的docker项目,是社区维护的开源项目,谁都可以在moby的基础打造自己的容器产品。
docker-ce 是docker公司维护的开源项目,是一个基于moby项目的免费容器产品。
docker-ee 是docker公司维护的闭源产品,是docker公司的商业昌平。

2.Docker架构基本概念

Docker 包括三个基本概念:

2.1.镜像(Image)

就相当于是一个 root 文件系统。除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)

比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。

Docker镜像是用来启动容器的,也用来创建新的容器,类似于虚拟机的快照。

镜像不包含任何动态数据,其内容在构建之后也不会被改变,在Docker里可以创建镜像,也可以从第三方的网站上下载别人已经做好的镜像来使用

2.2.容器(Container)

运行程序员开发的应用程序的

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。一个Docker镜像可以实例化出来多个容器,而每一个容器之间是独立运行的,没有任何依赖
Docker镜像是不能运行的,是静态的,而Docker容器是运行的,是动态的,可以将Docker容器想像成一个简化版的操作系统和一些核心基础的应用。每个容器运行一个独立的应用程序。

2.3.仓库(Repository)

仓库可看成一个代码控制中心,用来保存镜像。

Docker仓库提供一个注册服务器,用于存储多个仓库,而仓库是用来存储镜像位置的

我们自已创建了一个镜像之后,可以使用push命令将镜像文件上传到仓库中,后期如果在其它服务器上需要使用镜像,就可以从仓库上下载过来并使用

总结: 说白了镜像就等于一个centos系统的安装程序,一个镜像只是一个只读环境而已,这个镜像提供的是基础的运行环境,而你在Centos7系统中安装的应用,比如Redis,Mysql这些应用就相当于一个容器,这些容器都是单独可运行的,仓库的概念就相当于在Centos7系统中下载的所有应用都被收集到同一个仓库里了,比如Maven仓库

3.安装Docker

3.0.yum 准备

3.0.1.升级 yum

更新安装源, 系统太旧了, 可能安装的版本也比较低, 可以更新一下安装源后再查看可安装版本

# 清理 yum 缓存
yum clean all

# yum makecache就是把服务器的包信息下载到本地电脑缓存起来
# 配合yum -C search xxx使用
# 不用上网检索就能查找软件信息
yum makecache

# 升级 yum
yum update -y

3.0.2.安装工具包

安装 yum-utils 软件包(提供yum-config-manager 实用程序)并设置稳定的存储库。

yum install -y yum-utils

devicemapper驱动依赖的

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

3.1.卸载旧版本

3.1.1.查看安装过docker

yum list installed | grep docker

在这里插入图片描述

3.1.2.卸载旧版本docker

# 卸载docker
yum remove docker*		
# 或者
yum remove docker \
            docker-client \
            docker-client-latest \
            docker-common \
            docker-latest \
            docker-latest-logrotate \
            docker-logrotate \
            docker-engine

删除镜像/容器等, /var/lib/docker/应该修改成具体的位置

rm -rf /var/lib/docker/	

3.2.安装docker

3.2.1.设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3.2.2.列出可安装的docker版本

yum list docker-ce --showduplicates | sort -r		# 从高到低排序

在这里插入图片描述

3.2.3.安装docker

yum -y install docker-ce	# 安装最新版本的docker
或者
yum -y install docker-ce-20.10.9	#安装指定版本

docker-ce - Docker 守护进程,这是完成所有管理工作的部分,在 Linux 上需要另外两个

docker-ce-cli - 用于控制守护进程的 CLI 工具,如果您想控制远程 Docker 守护进程,可以自行安装它们

containerd.io - 与 OS API 接口的守护进程(在本例中为 LXC - Linux Containers),本质上将 Docker 与 OS 分离,还为非 Docker 容器管理器提供容器服务

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

3.2.4.验证安装是否成功

docker version #查看版本

在这里插入图片描述

3.3.启动并设置开机启动

systemctl start docker		# 启动
systemctl enable docker		# 设置开机启动
systemctl status docker		# 查看docker启动状态

4.Docker 镜像加速

4.1.设置镜像

这个步骤不是必须, 国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:

  • 科大镜像:https://docker.mirrors.ustc.edu.cn/
  • 网易:https://hub-mirror.c.163.com/
  • 阿里云:https://<你的ID>.mirror.aliyuncs.com
  • 七牛云加速器:https://reg-mirror.qiniu.com

当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址

下面以阿里云的镜像加速为例讲解

阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
在这里插入图片描述

执行上图中红圈中的命令即可.

命令的意思就是在/etc/docker目录内

创建一个名字未daemon.json的文件,

并写入{“registry-mirrors”:[“https://xxxx.mirror.aliyuncs.com”]},

最后两句命令是重新启动服务

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

4.2.查看操作结果

docker info		#查看docker信息

查看docker信息,

Docker Root Dir : docker仓库的地址。

在最后三行能看到镜像加速器配置是否成功

 ID: ZBWC:6M5U:NQXD:RMYF:IMU7:AAHV:MWIS:STZE:5QD5:HII2:FU7K:VWQW
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Registry Mirrors:
  https://你的ID.mirror.aliyuncs.com/
 Live Restore Enabled: false

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

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

相关文章

Android 进阶——性能优化之电量优化全攻略及实战小结(一)

文章大纲引言一、偷懒至上的原则二、低电耗模式1、低电耗模式概述2、低电耗模式限制3、适配适应低电耗模式三、应用待机模式对其他用例的支持引言 电池续航时间是移动用户体验中最重要的一个方面。没电的设备完全无法使用。因此&#xff0c;对于应用来说&#xff0c;尽可能地考…

数据库拆分4--sharding-jdbc-spring-boot-starter自动装配启动过程

学习一下springboot是如何整合sharding-jdbc的。 添加依赖以后 <dependency><groupId>org.apache.shardingsphere</groupId><artifactId>sharding-jdbc-spring-boot-starter</artifactId><version>4.1.1</version> </dependency…

Java8之JMX与MBean

参考文章&#xff1a; 《JMX超详细解读》 《JMX》 写在开头&#xff1a;本文为学习后的总结&#xff0c;可能有不到位的地方&#xff0c;错误的地方&#xff0c;欢迎各位指正。 在学习tomcat源码架构的时候了解到其中使用了JMX来实现一些管理工作&#xff0c;于是便整理了这篇…

Linux systemd-run unit封装CGroup资源进行任务运行

Linux systemd-run 封装资源使用 序 之前我们讲了关于 systemctl 对各种服务或者说是 unit 进行了讲解&#xff0c;也讲了怎么创建一个 unit&#xff0c;进行相关配置或者依赖设置等等。在使用 systemctl status xxx 时&#xff0c;我们可以发现对应的资源使用情况&#xff0…

JSTL标签库 | 深入解析JSTL标签库

目录 一&#xff1a;深入解析JSTL标签库 1、什么是JSTL标签库 2、使用JSTL标签库的步骤 3、JSTL标签的原理 4、jstl中的核心标签库core当中常用的标签 一&#xff1a;深入解析JSTL标签库 1、什么是JSTL标签库 ①Java Standard Tag Lib&#xff08;Java标准的标签库&am…

电脑文件不小心删除了怎么恢复 ? 删除的文件如何恢复文件?

如果误删电脑文件后&#xff0c;如何恢复文件&#xff1f; 电脑删除文件是很经常的事&#xff0c;为了电脑运行更快我们经常都会清理&#xff0c;但是有时候也会出现不小心删除重要文件的情况。如何恢复删除的文件&#xff1f;本文总结的2种常用方法可以帮助到你。 方法1、注册…

惠普CP1025 因转印离合器导致打印不全大片空白的问题

问题症状 自检只打印出一部分, 后面大部分都是空白. 如果是碳盒缺粉, 应该是均匀地浅或者空白, 如果是成像鼓的问题, 应该是从上到下成条状的不均匀, 这样显示一节后空白的情况是没见过, 上网查有类似的问题 惠普CP1025彩色激光打印机打印图像前半部有字后半部白纸惠普1025打印…

Java框架:Spring框架

文章目录一、Spring概念二、Spring特征三、Spring基本架构3.1Spring体系结构3.2Core Container(核心容器)3.3Data Access/Integration(数据访问/集成)3.4Web(MVC/Remoting)3.5Test(测试)3.6AOP(面向切面编程)四、Spring主要jar包五、Spring用到的设计模式一、Spring概念 什么是…

vue学习笔记(三)-组件化编程基础

概念 传统方式与组件化对比 存在问题 1.依赖关系混乱 2.代码复用率不高 模块与组件、模块化与组件化的关系 模块 a.理解&#xff1a;向外提供特定功能的 js 程序&#xff0c;一般就是一个 js 文件 b.为什么&#xff1a;js 文件很多很复杂 c.作用&#xff1a;复用、简化 …

【Docker技术内幕】(十二)使用docker安装Kafka

目录 一、准备工作 1、安装docker 2、设置加速镜像 二、开始安装 1、启动容器 三、验证Kafka是否安装成功 四、部署kafka-manager 一、准备工作 1、安装docker 参考 【Docker技术内幕】&#xff08;四&#xff09;Linux环境下安装docker 2、设置加速镜像 vim /etc/do…

C语言 数据存储 char int 数据存储 关于原码反码补码

上图 前五个整形是整形家族&#xff0c;为什么char也是 因为他是字符型 字符实际存储的时候寸的是这个的ascll值 ascll值是个整数 除了以上两种 还有构造类型 又叫自定义类型 为什么又数组类型 如下代码 arr和【】的内容都可以自定义 为什么出现以上情况.(ffff 是16进制表示…

第二证券|通过磁铁制造功率更大的电动汽车电池

德克萨斯大学奥斯汀分校的研讨人员表明&#xff0c;一个更厚的电极&#xff0c;经过磁优化的离子道路&#xff0c;能够使充电更快&#xff0c;充电之间的功率更大。 研讨人员制作了一种具有‘快速通道’摆放的电极&#xff0c;以进步充电速度和续航路程。 研讨人员发现了一种共…

Apache Hudi 数据湖介绍

目录​​​​​​​ Apache Hudi 数据湖介绍 Hudi 历程 Hudi Features Apache Hudi 数据湖介绍 Apache Hudi&#xff08;发音为“hoodie”&#xff09;是下一代流媒体数据湖平台源于Uber 。Apache Hudi将核心仓库和数据库功能直接引入数据湖。Hudi提供了表、事务、高效的追加…

[附源码]Nodejs计算机毕业设计基于云数据库的便民民宿租赁系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

人人都能看懂的Spring底层原理,看完绝对不会懵逼

人人都能看懂的Spring原理&#xff0c;绝对不会懵逼为什么要使用Spring&#xff1f;Spring的核心组件Spring是如何实现IOC和DI的&#xff1f;定义了BeanDefinition扫描加载BeanDefinition根据BeanDefinition进行Bean的实例化和初始化实例化属性赋值保存到单例缓冲池一个Bean从创…

docker高级篇2-分布式存储之三种算法

面试题&#xff1a; 1~2亿条数据需要缓存&#xff0c;请问如何设计这个缓存案例&#xff1f; 答&#xff1a;单机单台100%是不可能的。肯定是分布式缓存的。那么用Redis如何落地&#xff1f; 一般有三种方案&#xff1a; 哈希取余分区&#xff1b;一致性哈希算法分区&#…

HttpRunner4.x 安装与使用

HttpRunner4.x 安装与使用HttpRunner4.x 安装与使用安装使用运行脚手架项目方式一&#xff1a;录制生成用例步骤1&#xff1a;导出har文件步骤2&#xff1a;转化成测试用例文件步骤3&#xff1a;执行测试用例方式二&#xff1a;手工编写测试用例HttpRunner4.x 安装与使用 以下…

卡塔尔世界杯终局之战,阿根廷VS法国,是老将加冕还是新王登基?

【世界杯】阿根廷VS法国 不知不觉&#xff0c;世界杯已经走到最后的尾声&#xff0c;此前经历的28天&#xff0c;63场比赛皆是铺垫&#xff0c;卢赛尔体育场将会迎来2022卡塔尔世界杯最终的决赛&#xff0c;究竟是梅西球王加冕还是法国卫冕世界杯冠军&#xff0c;今晚23&#x…

KNN算法 鸢尾花种类预测

目录 一&#xff1a;KNN原理 二&#xff1a;数据处理 三&#xff1a;超参调试、模型保存及使用 四&#xff1a;鸢尾花种类预测 详细步骤 一&#xff1a;KNN原理 从训练集中找到跟待测数据最近的k条记录 根据这些记录的分类决定新数据的分类 主要因素包括有&#xff1a;K邻…

java------JVM之类加载和双亲委派机制

类加载器&#xff1a;加载.class文件。 将新建的对象放入堆里面&#xff0c;而对象的引用(地址)放到栈&#xff0c;其中引用指向堆里面对应的对象。 1-启动类加载器&#xff0c;负责加载jre\lib目录下的rt.jar包c编写&#xff0c;加载java核心库 java.*,构造ExtClassLoader和A…