docker的简介、安装和换源
第一感觉
什么是
Docker?
Dock是容器的意思,那么
Docker也就有容器管理员的意思了。既然是管理员,那么也就有容器的来源、状态和去向三个属性的管理。
Docker
架构
Docker是一个
C/S架构的应用,虽然我们能看到的非常有限,却在设计之初就已经构想了一整套完美的生态。整个生态包括
Docker镜像仓库、
Docker容器和
Docker客户端,这三个分别掌管来源、状态和去向。
来源
来源虽说是容器的来源,其实就是说
Docker镜像的来源,也就指向
Docker庞大的代码仓库。从代码仓库中下载最小限度的镜像之后,在确定运行这些镜像之后,就会自动创建一个容器,并塞入镜像。而这个仓库则是在开发人员和众多社区大佬的共同努力下逐渐丰富起来的一个网站,叫
Docker Hub。
听起来就像超市购物一样,我在超市里找到了我想要的商品(镜像),然后装进袋子(容器)里。
状态
状态普遍只会用到两种,一种是停止,另一种是运行中。这是两种正确执行之后才会出现的状态,而其他则是由命令不正确导致空容器、由无网络造成的创建失败等等状态。由于其他状态相当于错误,需要被处理,所以就没有一一列出的必要。
要管理容器状态,其实也就是操作容器,关闭、打开、创建、删除四大基本操作,其他的操作都类似这四大操作的旁支,比如后台挂起,也相当于打开。当然,如果遇到了刚刚所说的错误,这些旁支就没有效果了。
如果要打比方的话,状态就类似守门的大爷,对一个个的停车位是选择开门、关门、监视还是放任。
去向
去向说的是容器的去向,实际上也就是容器到底是留存还是删除。无论是停止还是保持运行,容器都还在,是留存;删除则是将容器彻底删除,在容器运行期间对镜像的一切修改将不会保存,但是最初的镜像将会完好地保存下来,因为容器中运行的是镜像的备份。
这就像是快递检货一样,无论发往哪里,都是检验合格(确认要用);而检验不合格(确认不用)将会直接处理掉(删除)。这里的合不合格则是由快递员(开发者)来决定。
当然,
Docker的生态远不止这些。因为这里能够提供一个最初的印象,所以就简单地归为三个了。
为什么用Docker
?
Docker能够下载镜像、创建容器并运行镜像。这就像是虚拟机一样,我们去网上下载镜像,然后挂载到机器上,成为虚拟系统。但是这两者完全不相同。
这里使用知乎中针对“docker
容器与虚拟机有什么区别?”这一问题water Cc
给出的回答(3楼)中的图片来说明:
我们可以看到,左边是虚拟机的架构,而右边是Docker的架构。最底下的
Server和
Host OS合起来构成物理主机,也就是我们平常所用的个人电脑。
其中,虚拟机使用了
Hypervisor,全称是虚拟机监视器,是一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件。也就是说,我们在针对虚拟机中挂载的系统操作的时候,挂载的系统监听到了操作,并交给挂载的操作系统处理,然后被虚拟机监视器监听到,收集数据后发送给物理主机,最终由物理主机完成系统调用,最后返还给挂载的系统并回显结果。这一整串过程是不是非常复杂?是不是能够理解为什么虚拟机挂载的时候慢一点了?
而Docker就不一样,取消了Hypervisor和挂载的系统,直接使用对应的基础代码库。这个基础代码库甚至可以不是操作系统,可以是单纯的某个应用,比如
MySQL、
Zookeeper等等,这就在灵活性上提升了一个数量级;其次,取消了
Hypervisor能够让
Docker运行中容器里的操作直接交给物理主机进行系统调用,速度上非常占优,响应非常迅速。
但是相对而言两者也同样有利有弊。
对于虚拟机来说,经过Hypervisor和挂载的系统能够实现非常完美的隔离性;而仅使用Docker Engine运行的几个容器隔离性相对较弱。
不仅如此,直接将请求传送给物理主机进行系统调用的Docker是非常依赖物理主机的架构和操作系统内核的。例如:
Windows能够使用
Docker运行
Windows Server和
Linux系统,但是
Linux系统则只能够使用
Docker运行
Linux系统,因为内核完全不支持;而使用Hypervisor的虚拟机则使用中间件屏蔽了操作系统内核和架构的具体实现,从而使得虚拟机能够挂载
Windows、
Linux甚至
MacOS。
二者差别还是非常大的,但在不同的环境下也各有千秋,开发者们需要根据自己的需求选择合适的实现方法。当然实际生产环境中还是希望能够使用更为轻量级的
Docker来实现比较不错的响应速度。
安装
简介主要介绍了
Docker相关,包括生态和优缺点。相信大家已经对
Docker有了基本的了解。由于
Windows有一键安装
Docker的安装包,所以接下来我们就在
Ubuntu下安装
Docker,就不考虑
Windows了。
首先确认我们要删除旧版本(如果没有可以跳过)
sudo apt-get purge docker sudo apt-get purge docker-ce sudo apt-get remove -y docker-*
然后开始安装
# Ubuntuan安装Docker # 0 - 进入root权限 # 没有设置root用户的密码使用如下语句 sudo su # 设置了root用户的密码使用如下语句 su # 1 - 下载必要的包 apt-get install \ apt-transport-https \ ca-certificates \ curl gnupg-agent \ software-properties-common -y # 2 - 添加国内阿里云docker-ce镜像的GPG-key curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add - # 3 - 添加国内阿里云docker-ce镜像源 add-apt-repository \ "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \ $(lsb_release -cs) \ stable" # 4 - 更新包 apt-get update # 5 - 安装包 apt-get install docker-ce docker-ce-cli containerd.io
CentOS安装
Docker的方法也附上,你会用到的。
# CentOS安装Docker # 1 - 下载必要的包 yum install -y yum-utils device-mapper-persistent-data lvm2 # 2 - 配置源 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 3 - 列出所有版本 yum list docker-ce --showduplicates | sort -r # 4 - 选择安装版本并填入${version} yum install docker-ce-${version} -y
到这里大致上就结束了。我们来检验一下是不是安装好了:
docker --version
如果输出是这样的,那么就是安装成功:
Docker version 19.03.12, build 48a66213fe
当然,这其中的数字和字符串可能每个人选择的版本不同就会显示不一样的结果,这一点无需担心,只要确认能够出现这样的信息就是安装成功。
下面是安装失败的输出:
Command 'docker' not found, but there are 21 similar ones.
安装完之后就是使用了。但是由于客户端默认连接的
Docker Hub是国外的镜像仓库,所以下载速度非常慢,这里就需要更改默认配置为国内镜像仓库。
首先是确认用什么仓库。目前比较好的库就是Docker CN、网易、阿里云等等。但是阿里云镜像需要自行申请,手续麻烦而且界面不够人性化,所以我选择网易,也就是
http://hub-mirror.c.163.com。
其次,来确认Docker
服务是否启动。
sudo docker images # 查看镜像列表,如果报错则服务未启动 systemctl status docker # 系统调用查看服务
如果没有启动就打开
systemctl start docker # 安装后第一次运行需要启动服务
启动之后就会生成
/etc/docker文件夹,如果没有请检查是否启动失败。
在里面添加
daemon.json文件
cd /etc/docker sudo touch daemon.json sudo vi daemon.json # 你也可以使用更为便捷的Vim # 输入文本: { "registry-mirrors": ["http://hub-mirror.c.163.com"] }
这里我是选择了网易镜像,你也可以替换为其他镜像。
然后拉取速度就非常快了。
- docker的简介和Windows下如何安装docker
- 【docker】docker的简介和Windows下如何安装docker
- Docker 从入门到跑路【1】-docker_简介_安装_命令_基本操作_数据卷
- Docker简介、centos7安装docker、docker架构、以及更换下载源
- Docker简介、安装以及配置阿里云加速
- Docker第一篇:简介和入门安装
- Docker详细使用教程(一)简介与安装
- Docker简介及安装 Linux安装Docker Centos安装Docker Ubuntu安装Docker
- Docker可视化管理工具Kitematic 安装和使用简介
- docker学习笔记(一)——docker简介及安装
- Docker简介和安装(一)
- Docker简介与安装
- Docker学习笔记——(一)docker简介与docker安装
- Docker简介以及安装
- Docker-Compose简介安装使用
- Docker学习笔记(一)docker简介及安装
- Docker简介以及CentOS安装使用
- Docker 简介和安装
- docker简介和linux下安装
- Docker解析及轻量级PaaS平台演练(一)--Docker简介与安装