Docker概述
Docker为什么会出现
在学习Docker之前,我们先来看下Docker为什么会出现?
大家在公司中在开发项目的时候,一般会有两套环境,一套开发环境,一套线上环境,可能还有测试环境,演示环境等等,这时候开发和运维人员是比较苦恼的,一套代码要部署多次。
而且也非常容易出现一种程序员经常碰到的现象:在我的电脑上可以运行啊!你是不是配置的不对啊!你重启试试等等这些问题...
在比如我的版本更新了,导致服务不可用了,对于运维来说,考验就非常大
而现在大家都应该听过一个词,就是DevOps,开发即运维。
一个公司如果只有一台服务器,你的项目只要部署一次就可以,但是只有一台服务器的情况现在基本是存在的。如果有十台服务器,就要部署10次,那100台,1000台呢?
还有很多程序员是在Windows上来做开发的,而一般的服务器是Linux系统,把Windows的项目部署到Linux中也是比较麻烦的。
那传统的解决方式是:开发把代码发布出来,运维来做部署,有没有开发部署上线,一套流程就可以解决的方案呢?
Docker给我们提出了解决方案。
Docker历史
Docker 公司位于旧金山,由法裔美籍开发者和企业家 Solumon Hykes 创立,其标志如下图所示。
有意思的是,Docker 公司起初是一家名为 dotCloud 的平台即服务(Platform-as-a-Service, PaaS)提供商。
底层技术上,dotCloud 平台利用了 Linux 容器技术。为了方便创建和管理这些容器,dotCloud 开发了一套内部工具,之后被命名为"Docker"。Docker就是这样诞生的!
2013年,dotCloud 的 PaaS 业务并不景气,公司需要寻求新的突破。于是他们聘请了 Ben Golub 作为新的 CEO,将公司重命名为"Docker",放弃dotCloud PaaS 平台,怀揣着"将 Docker 和容器技术推向全世界"的使命,开启了一段新的征程。
如今 Docker 公司被普遍认为是一家创新型科技公司,据说其市场价值约为 10 亿美元。Docker 公司已经通过多轮融资,吸纳了来自硅谷的几家风投公司的累计超过 2.4 亿美元的投资。
在容器技术出来之前,我们都是使用虚拟机技术
虚拟机:在Windows中装一个VMware(其他的可以),通过这个软件我们可以虚拟一台或者多台电脑,它的缺点就是比较笨重
比较docker和虚拟机技术的不同:
- 传统虚拟机,虚拟出一条硬件,运行一个完整的操作,然后在这个系统上安装和运行软件
- Docker容器内的应用直接运行在 宿主机的内核,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了
- Docker每个容器间是互相隔离,每个容器内都有一个属于自己的文件系统,互不影响
Docker能做什么
1.应用更快速的交付和部署
- 传统的方式:帮助文档,安装程序,部署环境,上线
- Docker:打包镜像,发布测试,一键运行
2.更便捷的升级和扩缩容
3.更简单的系统运维
- 在容器化之后,我们的开发,测试环境都是高度一致的
4.更高效的利用计算机资源
- Docker是内核级别的虚拟化,可以在一个机器上可以运行很多的容器实例!!
Docker的基本组成

- Client:客户端
- DOCKER_HOST:服务端
- Containers:容器
- 容器(container):docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建的。
- Images:镜像
- 镜像(image):docker镜像好比是一个模板,可以通过这个模板来创建容器服务,Redis镜像==>run==>容器(提供服务),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。
- Registry:仓库
- 仓库(repository):仓库就是存放镜像的地方,仓库分为公有仓库和私有仓库,docker hub(默认是国外的)
安装Docker
大家如果不想安装,可以用在线docker:labs.play-with-docker.com/
centos7的安装帮助文档 docs.docker.com/engine/inst...
这里我用CentOS来演示,Docker支持的版本还是比较多的
1.卸载老的版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.需要的安装包
sudo yum install -y yum-utils
3.设置镜像的仓库
# 默认是从国外的,下载比较慢,建议用下面链接
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 配置阿里云docker镜像地址
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.1.更新软件包索引
yum makecache fast
4.安装docker
docker-ce 是社区版
sudo yum install docker-ce docker-ce-cli containerd.io
5.启动docker
docker version 查看docker版本
6.测试hello world
sudo docker run hello-world
7.查看已经下载的镜像
docker image ls
8.卸载docker
sudo yum remove docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd