小飞学习Docker之初识Docker
Docker Client将自己的命令透传到服务端daemon进程,然后等待Docker daemon的响应,也就是说Docker daemon是真正干活的。像电商网站,使用微服务架构,可以根据每个微服务的情况使用k8s动态扩展或者收缩Docker实例数,比如营销系统部署80个实例,而售后系统可能只部署4个实例。Docker 作为一款热门的容器技术,在工作中多多少少都会接触过,尤其在流量较大的互联
Docker 是什么
Docker 作为一款热门的容器技术,在工作中多多少少都会接触过,尤其在流量较大的互联网公司中(比如电商平台)实现微服务治理、高并发架构,Docker搭配K8S等编排工具起到很大的作用。
传统的项目开发部署中,我们一般是先在本地环境开发测试,然后打包部署到远程服务器上。得益于云的发展,使得我们可以直接利用PaaS能力进行资源的打包和分发,从而对应用进行托管。这种部署方式经常需要对每台虚拟机进行单独的环境配置,不仅麻烦,还不好迁移维护。
Docker本身解决了PaaS打包的痛点,提供了一种新的打包机制,将需要的操作系统、应用以来以及应用本身打成一个压缩包。这个压缩包保证了所有部署环境的一致,“Build, Ship and Run Any App, Anywhere"。这种方式也让后续应用的分发、部署、扩展变得丝滑。
Docker 能做什么
那我们平时能拿Docker或者容器做什么呢?场景还是蛮多的,比说教学过程中,提供轻量级的独立环境,用于学习开发、测试;再比如个人开发学习,使用docker可以无限操作,不影响到自己的电脑环境,优雅的很。
不过这些呢,怎么说更像是个人使用,并不能完全体现出Docker的魅力。Docker或者说容器的大杀器是它本身与编排治理的工具搭配一套组合拳。一方面,使用Docker部署足够轻量、足够高效,加速了本地开发和构建流程,能够让同一个服务在不同环境表现一致(alpha、beta、gama环境),给服务横向扩展提供了可能(对比以前的加机器);另一方面K8S为主的编排治理工具给容器注入了灵魂,提供了负载均衡、动态扩展、自动化部署等能力,更方便的部署大规模服务。
像电商网站,使用微服务架构,可以根据每个微服务的情况使用k8s动态扩展或者收缩Docker实例数,比如营销系统部署80个实例,而售后系统可能只部署4个实例。让并发量大的服务部署更多的实例。
Docker 的架构
从官网图中可以看出Docker的核心组件:
- Docker 客户端和Docker 服务器
- Docker 镜像
- Registry
- Docker 容器
Docker是一个客户-服务器(C/S)架构的程序。Docker Client将自己的命令透传到服务端daemon进程,然后等待Docker daemon的响应,也就是说Docker daemon是真正干活的。
举个hello-world例子
docker run hello-world
- Docker会先从本地查看是否有
hello-world
镜像,如果有,则直接以该镜像为模板运行一个新的容器实例出来 - 如果没有
hello-world
镜像,则默认从DockerHub中拉取,也就是上面提到的Registry (镜像仓库)- 里面存有很多应用镜像。 - Docker daemon 根据镜像创建一个新的容器并运行起来。
从上面也发现用户是基于镜像来运行自己的容器的,我们可以类别iso,或者看成是容器的静态“源代码”。镜像是基于联合文件系统的层次结构,体较小,方便分享、传输。
同样的容器可以看作是一个跑起来的镜像,是一个动态的执行环境。我们可以将自己的应用程序或服务打包放进容器中运行起来。
Docker 安装
Docker 本身是运行在Linux上上面的,而Windows或者Mac都是通过虚拟机模拟出来的,所以推荐直接在Linux安装。
安装Parallels Desktop
虚拟机
如果不是mac 系统不用执行者一步或者mac仅仅体验docker功能,可以直接使用mac 版本的docker-desktop
主要是在Paralles Desktop中安装ubuntu系统。
然后进入Ubuntu系统中安装基本使用命令
sudo apt updatesudo apt install -y git vim curl jq
安装Docker
可以尝试执行docker命令,如果没有安装的话,ubuntu本身会提醒你如何安装。
Command 'docker' not found, but can be installed with:
sudo apt install docker.io
所以安装过程如下:
#安装Docker Engine
sudo apt install -y docker.io
#启动docker服务,如果觉得麻烦可以加入系统启动中
sudo service docker start
#当前用户加入docker组
sudo usermod -aG docker ${USER}
最后一个命令是将用户加入Docker的用户组(操作 Docker 必须要有 root 权限),这样就不用每次都切换到root权限进行操作了,不过你也可以继续使用root进行操作。
安装完成后可以进行验证下,执行docker version
和docker info
命令,docker info
会列出当前 Docker 系统相关的信息,例如 CPU、内存、容器数量等。
Docker 与虚拟机的对比
更多推荐
所有评论(0)