Docker ( 一 ) 基本概念及安装
创始人
2024-04-25 18:15:01
0

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:VWQWDocker Root Dir: /var/lib/dockerDebug Mode: falseRegistry: https://index.docker.io/v1/Labels:Experimental: falseInsecure Registries:127.0.0.0/8Registry Mirrors:https://你的ID.mirror.aliyuncs.com/Live Restore Enabled: false

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...