一、Docker是什么?
在使用docker之前,我们应该先去明确docker的存在,是为了解决什么样的问题。
1、在另一台电脑部署你的应用
比如,你写了一个web应用,你在本地调试完全没有问题,但是,如果你向把这个web应用部署到远程服务器上,或者是发个你的朋友,首先,另一台电脑想运行你的web应用,那另一台电脑需要配置比如数据库,web服务器,必要的插件,运行环境等等,而且还不能保证软件完全能运行起来,即使是配置同样的操作系统,也会因为版本的问题导致web应用不能运行
要求解决这个问题,让应用能正常在另一台电脑也能运行,我们就需要模拟出和我们本地一样的运行环境,这时我们可能会想到虚拟机,但虚拟机不仅要模拟软件,还要模拟硬件,运行整个操作系统,内存占用高,程序性能也会有影响,显得十分臃肿
2、docker解决部署问题
这个时候,docker就派上了用场,
docker在概念上和虚拟机十分相似,但却轻量灵活的许多,docker不会去模拟底层的硬件,只会为每一个应用,提供完全隔离的运行环境,我们可以在每个环境中,配置不同的工具软件,并且每个环境之间完全不相互影响,而这个环境,在docker中,又被称做容器。
二、Docker中三个重要概念
1、Image / 镜像
你可以把镜像理解成一个虚拟机的快照,里面包含了你的应用程序以及程序运行时所需要的所有库
2、Container / 容器
通过镜像,我们可以创建出许多不同的容器,这里的容器就好像是一台台运行起来的虚拟机,里面运行了你的应用程序,每个容器都是是独立运行的
镜像就好比你的app的安装包,你可以通过这个安装包,安装许多个软件,每个软件都是一个容器,他们独立运行的,互相不干扰
3、Dockerfile
Dockerfile是一个自动化的脚本,它主要是用来创建我们的镜像,这个过程就好比我们在虚拟机中安装操作系统和软件一样,而Dockerfile,就是通过脚本的方式,创建镜像,为镜像中配置应用和运行环境
4、Registry / 仓库
我们可以把自己的镜像上传到远程仓库,Docker Hub,听名字你就应该知道这是做什么的,它和github相似,不过GitHub是保存我们的代码,而Docker Hub是保存我们的镜像
三、Docker 安装
1、检查Linux版本
docker需要3.10以上的内核
uname -r
2、卸载旧版本的docker
如果之前没有安装过docker,可跳过这一步
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
3、安装下载Docker依赖的工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
4、添加阿里云的软件源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5、更新yum缓存(为了保证能更新和下载需要的服务:如docker)
sudo yum makecache timer
6、开始安装Docker
sudo yum -y install docker-ce
7、启动docker
sudo systemctl start docker
7.1 如果报错
(1)查看安装过的包:
yum list installed | grep docker
(2)删除安装的Docker相关的软件包:
yum -y remove docker.x86_64
yum -y remove docker-client.x86_64
yum -y remove docker-common.x86_64
8、 查看Docker是否成功
docker info
9、开机自启
sudo systemctl enable docker