docker(一)

1、什么是docker?
Docker是一个开放源代码软件项目,让应用程序布署在软件容器下的工作可以自动化进行,借此在Linux操作系统上,提供一个额外的软件抽象层,以及操作系统层虚拟化的自动管理机制。Docker利用Linux核心中的资源分脱机制,例如cgroups,以及Linux核心名字空间(name space),来创建独立的软件容器(containers)。这可以在单一Linux实体下运作,避免启动一个虚拟机造成的额外负担。Linux核心对名字空间的支持完全隔离了工作环境中应用程序的视野,包括进程树、网络、用户ID与挂载文件系统,而核心的cgroup提供资源隔离,包括CPU、存储器、block I/O与网络。从0.9版本起,Dockers在使用抽象虚拟是经由libvirt的LXC与systemd - nspawn提供界面的基础上,开始包括libcontainer库做为以自己的方式开始直接使用由Linux核心提供的虚拟化的设施。依据行业分析公司“451研究”:“Dockers是有能力打包应用程序及其虚拟容器,可以在任何Linux服务器上运行的依赖性工具,这有助于实现灵活性和便携性,应用程序在任何地方都可以运行,无论是公有云、私有云、单机等。” 。
以上摘自度娘,读着有点绕(哈哈哈)
2、docker能做什么?或者说docker解决了那些痛点?
1)搭建测试环境,或者说是简化环境
我们在工作中经常遇到,我的代码测试环境可以运行,一旦部署到服务器上就运行不了了。这个问题很常见,也确实很烦人,但是问题总要解决,开发环境、测试环境、生产环境,(同一镜像扩展出来的,所以能解决不同环境的问题)每个环节都有可能出现这样那样的问题,如果能够在各个环境中实现一键部署,就会方便很多,例如一键安装 linux 、一键安装 mysql、一键安装 nginx 等,docker 彻底解决了这个问题。
2)虚拟化更加轻量级
说到容器,说到虚拟化,很多人总会想到虚拟机,想到 VMware、VirtualBox 等工具,不同于这些虚拟技术,docker 虚拟化更加轻量级,传统的虚拟机都是先虚拟出一个操作系统,然后在操作系统上完成各种各样的配置,这样并不能充分的利用物理机的性能,docker 则是一种操作系统级别的虚拟技术,它运行在操作系统之上的用户空间,所有的容器都共用一个系统内核甚至公共库,容器引擎提供了进程级别的隔离,让每个容器都像运行在单独的系统之上,但是又能够共享很多底层资源。因此 docker 更为轻量、快速和易于管理。
3)程序可移植性
4)搭建各类基础服务(比如:Jenkins、MySQL)
5)搭建测试执行环境(比如:搭建我们的接口自动化执行环境,Python环境,jdk等)
3、docker和虚拟机的区别
我们先看看官网提供的一张docker和虚拟机的区别图:
图片

通过这个图片我们可以看出docker和虚拟机最主要的区别就是,docker没有虚拟化操作系统的内核,而是直接使用宿主机的,缺点就是共享一个内核,所以如果一台机器上如果一个docker把宿主机操作系统干坏了,整台机器上的docker就都坏了。
关于docker和虚拟机的区别我主要整理了几点,看下图:
图片

4、docker不能做什么?
首先我们看一下下面这个图

图片

虽然两个容器中的操作系统和宿主机是不同的,但是其实这两个镜像的内核都是宿主机的,不要被容器中的操作系统版本骗了哦。
所以说,如果我们测试操作系统的兼容性是不可以用docker的,因为docker共享宿主机的内核。
还有就是应用挑内核的,比如c c++编译等
5、如何安装 docker?
相对而言,Linux 上安装 Docker 是最容易的,其次是 Mac ,最后是 Windows ,Windows 因此要装的东西比较多,官方也提供了两个不同的安装包,支持不同的 Windows 的不同版本,一个是针对 Win10 的安装引导程序,还有一个是兼容性较好的 Toolbox ,但是在 Windows 上运行 Docker ,后期在虚拟目录等方面还会遇到各种问题,所以这里松哥是非常不建议大家在 Windows 中安装 Docker ,有 Mac 的上 Mac (Mac 上安装 Docker 就像安装普通软件一样),没有 Mac 的装 Linux 虚拟机,再装 Docker 即可,这里我就先以 CentOS 上安装 Docker 为例,来说说 Docker 安装。小伙伴们可以关注我的博客,里面有各种系统的安装方法。
安装很简单:yum -y install docker
图片

等待安装完成之后,我们看看是否安装完成:使用 docker -v
图片

如上就安装完成了。
接下来,我们启动docker服务:service docker start
图片

(混沌工程,模拟各种各样的事故:磁盘打满,cpu打满等)
6、如何下载docker镜像
图片

图片

我们选择镜像,优先选择官方的,如上面的红框内容就代表官方的镜像。
图片

这样我们就下载好了一个镜像。
7、查看镜像
docker images 命令可以查看当前服务器中的所有镜像
图片

接下来我们看看上图中每个字段的含义:
REPOSITORY : 镜像名称,前面的是路径
TAG :镜像的版本号
IMAGE ID : 全球唯一的id
CREATED : 镜像的创建时间,不是下载时间
SIZE:镜像的大小,占用物理空间
下载指定版本的镜像:docker pull mysql:5.6 后面加:号然后指定版本号
图片

8、删除镜像:
图片

注意:删除镜像时必须指定版本号,如果不指定,就删除最新的也就是版本号为latest的镜像。
9、给镜像打一个版本号:docker tag mysql:5.6 mysql:5.6.1
执行完之后我们在看看结果:
图片

注意:两个竟然虽然有不同的版本号,但是IMAGE ID 完全一模一样,也就是他们两个是同一个镜像
10、给镜像重命名:和上面打版本号一样,只是不需要指定版本
图片

完全一样的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值