一、什么是 Docker
在说 Docker 之前,先了解一下 Docker 里的一些基本概念
Docker 主机:安装了 Docker 程序的的机器
Docker 客户端:用来连接 Docker 主机,并可以对主机进行相应操作
Docker 镜像:将软件进行编译、打包生成镜像,镜像是只读的,镜像中包含有需要运行的文件,镜像用来创建 container,一个镜像可以运行多个 container.镜像可以通过 Dockerfile 创建,也可以从 Docker hub/registry 上下载
Docker Registry: Docker 仓库,用来存放打包好的各种镜像
Docker 容器:在 Docker 主机上运行 Docker 镜像,镜像运行成功后的一个实例可以看做是一个 Docker 容器,Docker 容器是一个或一组独立运行的应用
Docker 可以理解为虚拟化容器技术,它可以将软件进行编译生成镜像,然后在镜像中对各种软件进行配置,配置完成之后,将镜像发布出去,其它使用者可以去 Docker 仓库中拉取自己想要的镜像,然后运行镜像得到 Docker 容器,Docker 容器的启动速度是非常快的.
二、Docker 的作用
容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小.传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而 Docker 只需要启动 10 个隔离的应用即可.
具体说来,Docker 在如下几个方面具有较大的优势:
1、更快速的交付和部署
对开发和运维(develop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行.
开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码. Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的. Docker 容器很轻很快,容器的启动时间是秒级的,大量地节约开发、测试、部署的时间.
2、更高效的虚拟化
Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率.
3、更轻松的迁移和扩展
Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。.这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个.
4、更简单的管理
使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作.所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理.
三、安装 Docker
1、升级内核版本
如果是 CentOS 7 可以不升级内核版本,如果是 CentOS 6.x ,那么为了避免 Docker 运行卡顿,需要升级内核版本,具体怎么升级可以参考这篇博客
https://www.cnblogs.com/xiaomaomao/p/14046931.html
2、检查是否已经持有 EPEL 仓库
Docker 使用 EPEL 发布, RHEL(红帽) 系的 OS(操作系统) 首先要确保已经持有 EPEL 仓库,如果没有安装 EPEL 库,先检查 OS 的版本,然后安装相应的 EPEL 包
查看操作系统命令如下:
cat /etc/redhat-release
使用如下命令安装 EPEL 库,如果已经安装了会提示你已经安装了
yum install -y epel-release
我这里已经安装了 EPEL 库了,如果没有安装 EPEL 库,使用如下命令安装(我这里是 CentOS 6.8 版本的 EPEL,如果是其它版本的,那么找到对应的版本安装包,我百度的时候看到有一些是直接使用
yum install -y epel-release 来安装 EPEL 库的,没有说一定要版本对应上,但是我是使用下面的命令,对应着 CentOS 的版本安装的)
rpm -Uvh http://ftp.riken.jp/Linux/fedora/epel/6Server/x86_64/epel-release-6-8.noarch.rpm
3、安装 Docker
yum -y install docker-io
如果安装的过程中出现以下错误
解决方案:
01、是否有执行 yum 更新操作
yum -y update
02、是否已经安装了 EPEL 库
yum install -y epel-release
03、如果上面两种方式仍然不行,那么直接使用下载源安装(我这里就是直接使用的这种方式)
yum install https://get.docker.com/rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm
在安装的时候可能会出现下面错误,没关系继续执行一次源安装命令(可能是因为网络的原因)
04、如果上面的三种方式还不行,可以使用这种方式
// 移除Docker
yum remove docker
// 移除 Docker-selinux
yum remove docker-selinux
// 再执行下载源安装
yum install https://get.docker.com/rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm
四、Docker 基本命令
1、启动 Docker
service docker start
2、查看 Docker 状态
service docker status
3、查看 Docker 版本信息
docker version
4、查看 Docker 启动日志
tail /var/log/docker
5、关闭 Docker
service docker stop
6、设置开机启动 Docker
chkconfig docker on