本文共 3612 字,大约阅读时间需要 12 分钟。
Docker是Docker.Lnc公司开源的一个基于LXC技术之上搭建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源。Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了Docker,就不用担心环境问题。总体来说,Docker的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。容器和虚拟机的区别 我们用的传统虚拟机如 VMware , VisualBox 之类的需要模拟整台机器包括硬件。
Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。
特性 | 容器 | 虚拟机 |
---|---|---|
启动 | 秒级 | 分钟级 |
硬盘使用 | 占用小 | 占用大 |
性能 | 接近原生 | 弱于 |
系统支持量 | 单机支持上千个容器 | 一般是几十个 |
安全 | 不安全(需要添加组件) | 安全 |
1、image镜像
docker镜像就是一个只读模板,比如,一个镜像可以包含一个完整的centos,里面仅安装apache或用户的其他应用,镜像可以用来创建docker容器,另外docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用
2、container容器docker利用容器来运行应用,容器是从镜像创建的运行实例,它可以被启动,开始、停止、删除、每个容器都是互相隔离的,保证安全的平台,可以把容器看做是要给简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行再其中的应用程序
3、repostory仓库仓库是集中存储镜像文件的沧桑,registry是仓库主从服务器,实际上参考注册服务器上存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)
仓库分为两种,公有参考,和私有仓库,最大的公开仓库是docker Hub,存放了数量庞大的镜像供用户下周,国内的docker pool,这里仓库的概念与Git类似,registry可以理解为github这样的托管服务。
1、更快速的交付和部署
开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。
运维人员利用 Docker 可以在隔离容器中并行运行和管理应用,获得更好的计算密度。 企业利用 Docker 可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为 Linux 和 Windows Server 应用发布新功能。 2、更高效的虚拟化Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。
3、更轻松的迁移和扩展Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。 这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。
4、更简单的管理使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。
在这个架构图中,可以看到docker的重要组件。
Docker Client:客户端
Docker Daemon:守护进程 Docker Images:镜像 Docker Container:容器 Docker Registry:镜像仓库1、用户使用Docker Client客户端与Docker Daemon守护进程建立通信,并发送自己的一些请求给后者。
2、Docker Daemon 首先提供Server的功能接受Docker Client 的请求,docker Engine执行Docker内部的一系列工作,每一项工作都是以一个Job的形式的存在。
3、在Job的运行过程中,当需要容器镜像时,则从Docker Registry中下载镜像,并通过镜像管理驱动 graphdriver 将下载镜像以Graph的形式存储。当需要为Docker创建网络环境时,通过网络管理驱动 networkdriver 创建并配置Docker容器网络环境;当需要限制Docker容器运行资源或执行用户指令等操作时,则通过execdriver来完成。
而libcontainer是一项独立的容器管理包,networkdriver以及execdriver都是通过libcontainer来实现具体对容器进行的操作。当执行完运行容器的命令后,一个实际的Docker容器就处于运行状态,该容器拥有独立的文件系统,独立并且安全的运行环境等。
1、关闭防火墙,设置开机不启动
systemctl stop firewalldsystemctl disable firewalldsetenforce 0
2、安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
3、设置阿里云docker镜像源
sudo yum updatesudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.reposudo yum updatesudo yum install docker-ce -ywget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repoyum install epel-release -yyum install container-selinux -y
4、安装Docker-CE,开启docker服务并设置开机自启
yum install -y docker-cesystemctl start docker.servicesystemctl enable docker.service
直接下载镜像,速度很慢,而一般镜像有比较大,所以我们进行镜像加速,使用阿里云的源,即开启阿里云的镜像加速
必须要注册一个阿里云账号sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://s8vlfga6.mirror.aliyuncs.com"]}EOFsudo systemctl daemon-reloadsudo systemctl restart docker
开启路由转发
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.confsysctl -pservice network restartsystemctl restart docker
至此docker安装优化已完成!
转载地址:http://sfdaf.baihongyu.com/