Docker是什么?
- Docker是基于Go语言实现的云开源项目。
- Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”。
为了什么而出现?
以前一款APP上线部署,需要经过一系列操作,从操作系统,到运行环境,在到应用配置。
每次部署环境配置如此麻烦,如果换一台机器,就要重来一次,费力费时。
这时,就有人会想,如果软件自带环境安装,那不就简单得多了吗?
于是,Docker出现了,解决了运行环境和配置问题,方便做持续集成并有助于整体发布。
Docker能做什么?
总之一句话,一次构建、随处运行
- 更快速的应用交付和部署
- 更便捷的升级和扩缩容
- 更简单的系统运维
- 更高效的计算资源利用
Docker在哪呢?
- Docker官网:http://www.docker.com
- Docker中文网站:https://www.docker-cn.com/
- Docker Hub官网(仓库): https://hub.docker.com/
Docker的基本组成
镜像(Image)
- Docker 镜像就是一个只读的模板。
- 镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。
容器(Container)
- Docker 容器是用镜像创建的运行实例,可以独立运行的一个或一组应用。
- 容器可以被启动、开始、停止、删除。每个容器互不干扰,相互独立的,保证安全的平台。
- 容器可以看做是一个简易版的 Linux 环境和运行在其中的应用程序。
仓库(repository)
- 仓库是集中存放镜像文件的场所。
- 仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
- 最大的公开仓库是 Docker Hub(https://hub.docker.com/),国内的公开仓库包括阿里云 、网易云。
- 仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
Docker的架构图
从结构图,可以了解到,仓库/镜像/容器之间的关系
Docker 是一个容器运行载体或称之为管理引擎。也就是说,可以把应用程序和配置依赖打包好形成可交付的运行环境,就类似 image镜像文件。然后Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。
image 文件可以看作是容器的模板,是用来生成的容器实例。
一个容器运行一种服务,可以通过docker客户端创建一个对应的运行实例。
仓库,就是存储镜像的地方,可以把镜像发布到仓库中,需要时从仓库中拉下来使用。
Docker的安装
如果在CentOS 中安装Docker,需要注意:
Docker支持以下的CentOS版本:CentOS 7 (64-bit)和CentOS 6.5 (64-bit) 或更高的版本
CentOS 6
# 1、安装相应的EPEL包
yum install -y epel-release
# 2、安装docker
yum install -y docker-io
# 3、启动docker后台服务
service docker start
# 4、验证是否安装成功
docker version
CentOS 7
参考官网:https://docs.docker.com/engine/install/centos/
# 1、确认服务器环境,安装必要的依赖,gcc、gcc-c++
yum -y install gcc
yum -y install gcc-c++
# 2、卸载旧的版本,如果以前有安装过
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 3、安装依赖的软件包
yum install -y yum-utils
# 4、设置stable镜像仓库
#有坑,不推荐,因为是外网,经常连接不上
yum-config-manager --add-repo https://download.docker.com/linux/centosdocker-ce.repo
#推荐,阿里云的
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 5、更新yum软件包索引
yum makecache fast
# 6、安装DOCKER CE
yum install -y docker-ce docker-ce-cli containerd.io
# 7、启动
systemctl start docker
# 8、测试,并run一个容器
docker version
docker run hello-world
配置镜像加速
由于国内网络问题,拉取 Docker 镜像速度如龟,我们可以需要配置加速器来解决。
以配置阿里云镜像为例:
-
CentOS 6
1)注册一个属于自己的阿里云账户
2)登录阿里云平台,进入控制台,搜索容器镜像服务
3)获取加速器地址,配置Docker镜像加速器,并重启docker服务
# 1.修改配置文件
vim /etc/sysconfig/docker
# 2.修改配置项
other_args="--registry-mirror=https://你自己的账号加速信息.mirror.aliyuncs.com"
# 3.保存退出,并重新启动Docker后台服务:
service docker restart
-
CentOS 7
1)前两步与CentOS一样,需要获取到加速地址
2)通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
# 1.创建目录
mkdir -p /etc/docker
# 2.修改配置文件
vim /etc/docker/daemon.json
# 3.添加内容
{"registry-mirrors": ["https://你自己的账号加速信息.mirror.aliyuncs.com"]}
# 4.保存退出,重启服务
systemctl daemon-reload
systemctl restart docker
小总结
上篇内容,简单主要介绍了Docker是谁,由什么构成,能干什么,以及它的安装。
总的来说,Dokcer的出现给开发,尤其是运维人员带来的极大便利。
在下一篇,在进一步介绍Docker,如Docker常用的命令,Docker镜像以及Docker容器数据卷。