Docker系列学习(一)——背景、基础知识以及安装
docker文档地址:https://docs.docker.com/
dockerHub地址:https://hub.docker.com/(需要FQ)
本系列博客主要是记录我在docker学习中的感悟以及学习纪录,希望能和大家一起分享,我的主要学习资料是哔哩哔哩上搜索出来的视频教程集合,如果大家感兴趣可以去搜一搜。
1.Docker的作用
大家在开发工作中有没有这样的体会,在一台新的电脑上开发程序,比如编写python脚本,第一件事就是要配环境,下载各种包,而且这些包又可能有很多很冷门的支持包,各种pip install,而且下载包的过程中可能又有很多失败,又要各种百度。虽然现在有anaconda这样的软件来管理包,但是anaconda这种对于很烦英文的人,又需要配置镜像库(不然会很慢),也是很难受的。
当然上述情景是对于我这样python编写者的角度,相信对于其他的语言的软件开发者来说,配环境往往是最让人烦躁的事(因为会有各种各样的错误,而且感觉做这个事没有任何价值)。
如果可以把运行环境+程序打“包”,并且无论在什么电脑上都能打开这个“包”,并且可以在这个“包”里运行以及修改程序,这个“包”还能和外部环境隔离,无论里面怎么折腾,都不会影响到外部环境。这样是不是很美好。Docker就在这样的需求下应运而生了,这里的“包”称为“镜像“,而运行“镜像”的地方叫做“容器“,而容器具有隔离的性质。
Docker的出现,让开发和运维更加和谐了。
- 开发职责:开发软件 ——>打包软件和所需要的运行环境为一个镜像——>上传镜像到仓库
- 运维职责:从仓库下载镜像——>在容器中运行镜像并对程序维护(更新镜像)
以前运维如果需要维护程序的话需要在本地建立程序需要的支持库以及程序需要的开发环境,这一个操作是相当繁琐以及非常容易出错的,因此如果能有一个已经安装好环境的“虚拟机”,直接在这个“虚拟机”里运行程序那不是很爽么。而docker就是这样一个移动小型的“虚拟机”
2.Docker一些概念的理解
镜像(image):可以看作“模板”,也可以认为是一个类(class),而启动镜像就相当于实例化一个“对象”(前文有提到镜像必须在容器中运行,这里就可以理解成从镜像中创造一个“对象”而“承载”这个对象运行的隔离环境称之为“容器”)。‘模板’是唯一的,但是“对象”可以是很多个,因此可以理解为从一个模板中可以创造出许多的“对象”(注意对象必须在容器中使用,因此创造多个对象的同时意味着有多个不同的容器去“承载”这些“对象”)。
容器(container):利用容器技术可以独立运行一个或者多个服务,通过镜像来创建的。
仓库(repository):存放镜像的地方,类似于gitee,github,主要是DockerHub,阿里云也有docker服务
3.Docker的安装
我推荐使用Linux系统来安装docker,具体的安装方法可以参看:https://docs.docker.com/engine/install/ubuntu/(ubuntu系统的安装方法),下面讲述一下具体步骤。
1、首先查看自己对应的内核版本是否支持docker
cat /etc/os-release # 查看自己系统的版本
2、卸载以前的旧版本docker
sudo apt-get remove docker docker-engine docker.io containerd runc
如果这一步中报错说没有这些安装包,说明旧版本的docker已经被卸载了或者没有被安装。
3、配置镜像仓库
前一小节提到,镜像可以存储在类似于github这种仓库中(在docker中这种仓库叫DockerHub),当我们想要下载镜像时,可以从事先配置好的仓库中去选择,然后下载。
推荐配置:
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release # 先升级一下安装包
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add - # 添加软件源的 GPG 密钥
sudo add-apt-repository \ "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \ $(lsb_release -cs) \ stable" # 添加Docker 软件源
由于国内网络环境原因所以这里添加的docker软件园是国内的镜像网站(中科大),如果想更换仓库repository,可以参看这篇文章根据这篇博文来操作,如果不经过这一步ubuntu系统是找不到docker客户端的下载地址的。
4、选择安装方式
官网中一共配置了3种安装方式,推荐使用第一种在线下载安装。
在线下载安装的命令:
sudo apt-get update # 升级软件库
sudo apt-get install docker-ce docker-ce-cli containerd.io # 下载安装docker
5、验证是否安装成功
service docker start # 这一步是启动docker一般情况下docker会自动启动的,但是要是没有启动可以使用这个命令来启动
启动之后我们可以查看docker版本来确认安装是否成功
docker version
如果返回相关的docker版本内容则说明启动成功了。
6、配置docker下载镜像
我们在平常使用docker pull 拉取镜像的时候,常常会因为docker是国外路径而下载缓慢,因此我们需要为docker配置一个国内镜像,配置方法主要为:
1、进入到 /etc/docker/daemon.json文件(如果不存在则创建文件)
2、添加以下命令:
{
"registry-mirrors":["镜像加速网址"]
}
常用的镜像加速网址有:
- 科大镜像:https://docker.mirrors.ustc.edu.cn/
- 阿里云:https://<你的ID>.mirror.aliyuncs.com
其中阿里云镜像需要进入到阿里云控制台中去创建网址如下:容器镜像服务 (aliyun.com)