随着计算机近年来的蓬勃发展,产生了大量优秀系统和软件。软件开发人员可以自由选择各种软件应用。但同时带来的问题就是需要维护一个非常庞大的开发、测试和生成环境。面对这种情况,Docker容器技术横空出世,提供了非常简单、灵活、高效的解决方案,不再需要过多的改变现有的使用习惯,就可以和已有的工具配合使用。因此,因此掌握Docker也是途径云计算的必经之路。
Docker作为开源社区最火爆的项目,它是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”,docker的全部源代码都在https://github.com/docker 进行相关维护,其官网是:https://www.docker.com 。
Docker的设计宗旨:通过对应用组件的封装、发布、部署、运行等生命周期的管理,达到应用组件级别的一次封装,到处运行的目的。这里的组件,既可以是一个应用,也可以是一套服务,甚至是一个完整的操作系统。
作为一种轻量级的虚拟化方案,Docker与传统虚拟机相比有显著的优势。
特性 | Docker容器 | 传统虚拟机 |
---|---|---|
启动速度 | 秒级 | 分钟级 |
计算能力损耗 | 几乎无 | 损耗50%左右 |
性能 | 接近原生 | 弱于 |
系统支持量(单机) | 上千个 | 几十个 |
隔离性 | 资源限制 | 完全隔离 |
Docker之所以拥有众多优势,与操作系统虚拟化自身的特点是分不开的。传统虚拟机需要有额外的虚拟机管理程序和虚拟操作系统层,而Docker容器是直接在操作系统层面之上实现的虚拟化。
如图:
现在需要能方便地创建运行在云平台上的应用,必须要脱离底层的硬件,同时还需要任何时间、地点可获取这些资源,这正是Docker所能提供的。
Docker的容器技术可以在一条主句上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。通过这种容器打包应用程序,意味着简化了重新部署、调试这些琐碎的重复工作,极大地提高了工作效率。
比如:服务器从腾讯云迁移到阿里云,如果采用了Docker容器技术,迁移只需要在新的服务器上启动需要的容器即可。
镜像是创建docker容器的基础,docker镜像类似于虚拟机镜像,可以将它理解为一个面向docker引擎的只读模块,包含文件系统。
Docker提供了简单的机制来创建和更新现有的进行,用户也可以从网上下载已经做好的应用进行来直接使用。
容器是从镜像创建的应用运行实例,容器之间是相互隔离、互不可见的。可以把容器看做一个简易版的linux系统环境(包括root权限、进程空间、用户空间和网络空间等),以及运行在这个环境上的应用打包而成的应用盒子。
Docker仓库是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用命令将它上传到公有仓库或私有仓库,这样一来当下次要在另外一条机器上使用这个镜像是,只需从仓库拉取下来即可!
仓库注册服务器是存放仓库的地方,其中包含了多个仓库,每个仓库集中存放某一类镜像,并且使用不同的标签来区分它们。目前最大的公有仓库Docker Hub,存放了数量庞大的镜像提供用户下载使用。
本次使用CentOS 7.5版本,安装的Docker为18.09版本!
[root@docker ~]# systemctl stop firewalld && setenforce 0
#关闭防火墙与SELinux,如果不关闭,会阻碍docker的正常启动
[root@docker ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
#安装docker所需依赖
[root@docker ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#获取阿里云的docker-ce的repo配置文件
[root@docker ~]# yum makecache #建立yum元数据缓存
[root@docker ~]# yum repolist #列出yum仓库的docker可用软件包
...................... //省略部分内容
docker-ce-stable/x86_64 Docker CE Stable - x86_64 65
#确认docker.....这一列有可用的包,我这里显示的是65个(但是,一定不可以为0)
[root@docker ~]# yum list docker-ce.x86_64 --showduplicates
#/查看docker可用版本,其中stable表示为稳定版
[root@docker ~]# yum install -y docker-ce-18.09.0-3.el7 docker-ce-cli-18.09.0-3.el7 containerd.io-1.2.0-3.el7
#需安装docker-ce、docker-ce-cli、containerd.io这三个工具
#其中docker-ce、docker-ce-cli需指定版本
[root@docker ~]# systemctl daemon-reload
[root@docker ~]# systemctl start docker
#启动docker
[root@docker ~]# docker -v #查看docker-ce-cli的版本
Docker version 18.09.0, build 4d60db4
[root@docker ~]# docker version #查看docker的详细信息
Client:
Version: 18.09.0
API version: 1.39
Go version: go1.10.4
Git commit: 4d60db4
Built: Wed Nov 7 00:48:22 2018
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.0
API version: 1.39 (minimum version 1.12)
Go version: go1.10.4
Git commit: 4d60db4
Built: Wed Nov 7 00:19:08 2018
OS/Arch: linux/amd64
Experimental: false
如果是最小化安装的docker,则需执行以下命令,便于支持Docker命令自动补全!
[root@docker ~]# yum -y install bash-completion //支持docker命令自动补全,以下命令可以不输入
[root@docker~]# curl -L https://raw.githubusercontent.com/docker/compose/1.24.1/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
//下载支持docker命令自动补全的脚本文件
[root@docker ~]# source /etc/bash_completion.d/docker-compose
//执行脚本之后,切换bash即可生效
采用阿里云的镜像加速器!
[root@docker ~]# tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://5zntnq0h.mirror.aliyuncs.com"]
}
EOF
[root@docker ~]# systemctl daemon-reload && systemctl restart docker
#更改完成后,需重启docker
[root@docker ~]# cat /etc/docker/daemon.json
#这个就是和加速相关的文件,json文件的是以键值对的格式存储的
{
"registry-mirrors": ["https://5zntnq0h.mirror.aliyuncs.com"]
}
———————— 本文至此结束,感谢阅读 ————————
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。