Docker心经(一)

目录

1.Docker 资源目录

2.Docker是什么

3.Docker 由来

4.Docker思想、核心

4.1.Docker思想

4.1.1.集装箱

4.1.2.标准化

4.1.3.隔离

4.2.Docker核心

4.2.1.镜像

4.2.2.容器(集装箱)

4.2.3.仓库(存放镜像的地方)

5.Docker 能做什么(应用场景)

6.Docker解决的问题

6.1 系统环境不一致

6.2 系统崩溃(雪崩)

6.3 并发太高了

7.Docker特性

7.1.Docker主要特性如下:

7.2.Docker优点与缺点

8.Docker容器技术与虚拟机的区别

8.1.Docker和一个正常的虚拟机有何区别?

8.2.Docker为什么比虚拟机快

8.3.对比总结

8.4.Docker局限性:

9. 安装

9.1.ubuntu

9.2.Windows

10.Docker常用命令

10.1.docker 基础命令

10.2.docker 镜像命令

参考资料


1.Docker 资源目录

Docker 官方主页: https://www.docker.com在新窗口打开
Docker 官方博客: https://blog.docker.com/
Docker 官方文档: https://docs.docker.com/
Docker Store: https://store.docker.com
Docker Cloud: https://cloud.docker.com
Docker Hub: https://hub.docker.com
Docker 的源代码仓库: https://github.com/moby/moby
Docker 发布版本历史: https://docs.docker.com/release-notes/
Docker 常见问题: https://docs.docker.com/engine/faq/
Docker 远端应用 API: https://docs.docker.com/develop/sdk/

Docker 国内镜像

阿里云的加速器:https://help.aliyun.com/document_detail/60750.html
网易加速器:http://hub-mirror.c.163.com
官方中国加速器:https://registry.docker-cn.com
ustc 的镜像:https://docker.mirrors.ustc.edu.cn
daocloud:https://www.daocloud.io/mirror#accelerator-doc(注册后使用)

免费注册Docker 账号:

Docker

2.Docker是什么

Docker有两种意思:

        1)指英文单词docker,其中文翻译是“码头工人”;

        2)指Docker容器,是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的操作系统的机器上,实现虚拟化。

3.Docker 由来

        Docker发展如此迅速,也正是因为它给出了一个标准化的解决方案,当然,也与Docker自身的方便、高效、轻量化等特点有关,毕竟打铁还得自身硬。

        在聊 Docker之前,先来回顾一下传统的产品开发过程中遇到的棘手问题。一款产品从开发到上线,经历开发环境、测试环境、生产环境等不同的操作系统、运行环境和应用配置等环境。以及不同版本间兼容性等问题。

        这些问题对开发人员和运维人员都是极大的考验,同时也是对团队的协作能力的考验。以避免出现”我这里都可以运行,我这里都的好好的“,这种尴尬的局面。而 Docker 的出现就是提供了一套用来解决此类问题的标准解决方案。

例如:

          a.各种组件依赖等组件的重复配置:jdk、tomcat、nginx、jboss、Weblogic;

          b.应用快速部署:应用系统客户实施,提前准备好相关环境,能实现相同环境的快速copy,刚好这个在最近的实施部署上有遇到;

         c.环境备份:在某些开发过程中,配置好环境后,做好环境备份,切换测试服务器能实现快速部署或恢复

        基于以上等实际开发、测试、实施等实际生产过程中遇到的问题,有需求就有市场,Docker着重于解决以上痛点。

        Docker 的口号是"一次创建或配置,可以在任意地方正常运行"。Docker 的出现对于开发和运维人员是一大福音,基于 Docker 可以方便地搞定标准化的发布流程,再也不用纠结不同环境导致的问题了

        其实,Docker 的使用可以理解为:将部署的应用、插件、中间件、运行系统打包。消除了不同操作系统运行结果不同的问题。

4.Docker思想、核心

思想(特性):集装箱、标准化、隔离

核心:镜像、容器、仓库

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

  • Docker 客户端(Client) : Docker 客户端通过命令行或者其他工具使用 Docker SDK (https://docs.docker.com/develop/sdk/) 与 Docker 的守护进程通信。
  • Docker 主机(Host) :一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。

Docker 包括三个基本概念:

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看着一个代码控制中心,用来保存镜像。

4.1.Docker思想

4.1.1.集装箱

        没有集装箱之前运输货物,东西零散容易丢失,有了集装箱之后货物不容易丢失,我们可以把货物想象成程序,目前我们要把程序部署到一台新的机器上,可能会启动不起来,比如少一些配置文件什么的或者少了什么数据,有了docker的集装箱可以保证我们的程序不管运行在哪不会缺东西.

4.1.2.标准化

1) 运输方式

        Docker运输东西有一个超级码头,任何地方需要货物都由鲸鱼先送到超级码头,然后再由鲸鱼从超级码头把货物送到目的地去.对应的技术来说,比如我们要把台式机的应用部署到笔记本上,我们可能选择用QQ发过去或者用U盘拷过去,docker就标准化了这个过程,我们只需在台式机上执行一个docker命令,把鲸鱼派过来,把程序送到超级码头去,再在笔记本上执行一个docker命令,然后由鲸鱼把程序从超级码头送到笔记本上去.

2)存储方式

        当我们把程序存储到笔记本上时,我们需要一个目录,且我们要记住这个目录,因为下次我们可能还要修改,有了docker之后我们就不用记住了程序在哪里了,我们使用的时候只需要一条命令就行了.

3)API接口

        Docker提供了一系列rest api的接口,包含了对docker也就是对我们的应用的一个启动停止查看删除等等,如当我们要启动tomcat时我们要执行startup命令,当我们要停止时要执行shutdown命令,如果不是tomcat,我们可能还需要一些别的命令.有了docker我们记docker的命令就可以对其进行操作.

4.1.3.隔离

        我们在使用虚拟机时有自己的cpu,硬盘,内存,完全感觉不到外面主机的存在,docker也差不多,不过它更轻量,我们创建虚拟机可能要几分钟,但是docker只需要一秒.最底层的技术时linux一种内核的限制机制,叫做LXC,LXC是一种轻量级的容器虚拟化技术.最大效率的隔离了进程和资源.通过cgroup,namespace等限制,隔离进程组所使用的物理资源,比如CPU,MEMORY等等,这个机制在7,8年前已经加入到linux内核了,直到2013年docker出世的时候才火起来,大家可能奇怪为什么这么好的技术埋没这么多年都没人发现呢?英雄造时势,时势造英雄,如果没有云计算,敏捷开发,高频度的弹性伸缩需求,没有IT行业这么多年长足的发展,也就没有docker.

4.2.Docker核心

Docker镜像:包含了应用程序和其依赖项的所有内容。使用Docker镜像可以创建Docker容器。

Docker容器:Docker容器是基于Docker镜像创建的运行实例。每个容器都是相互隔离的,具有自己的文件系统、网络和进程空间。

Docker仓库:Docker仓库是用于存储和共享Docker镜像的地方。公共的Docker仓库包括Docker Hub和Google Container Registry。

这些组件一起构成了Docker的核心,并使得Docker成为一种强大的应用程序容器化工具。

4.2.1.镜像

         Docker 镜像类似于虚拟机镜像,可以将它理解为一个只读的模板

1)定义

        Docker镜像可以看作是一个特殊的文件系统,提供容器运行时间所需的程序,库,资源,配置,运行时准备的一些配置参数(如匿名卷,环境变量,用户等);

        一个镜像可以包含一个基本的操作系统环境(例如:Centos),可以把它称为一个 Centos镜像

2)作用

​ 类似于虚拟机的快照,用来创建新的容器(最终服务运行或者项目运行就是在容器中);

3)特点

​ 镜像不包含任何动态数据,其内容在构建之后也不会被改变;

4.2.2.容器(集装箱)

        没有集装箱之前运输货物,东西零散容易丢失,有了集装箱之后货物不容易丢失,我们可以把货物想象成程序,目前我们要把程序部署到一台新的机器上,可能会启动不起来,比如少一些配置文件什么的或者少了什么数据,有了docker的集装箱可以保证我们的程序不管运行在哪不会缺东西

什么是容器:一个容器就相当于一个虚拟机

1)独立运行一个或者一组程序的地方,类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用  

2)有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中单独运行;

3)可以把这个容器理解为一个简易的linux系统;

4)容器是从镜像创建的应用运行实例,可是使用DockerAPI或CLI创建,启动,停止,移动或者删除容器,而这些容器都是彼此相互隔离、互不可见的;

5)可以在本地机器,虚拟机上运行,也可以部署到云端;

6)使用Docker Compose运行应用程序;

4.2.3.仓库(存放镜像的地方)

Docker仓库类似于代码仓库,和Git类似,是Docker 集中存放镜像文件的场所;

Docker镜像仓库有:

        1)Docker hub共有仓库;

        2)registry私有仓库;

        3)harbor企业私有仓库,它是Docker Registry的更高级封装;

        4)阿里云个人私有仓库。

注:Docker 仓库和仓库注册服务器( Registry)的区别
仓库注册服务器是存放仓库的地方,其上往往存放着多个仓库,每个仓库集中存放某一类镜像,例如存放 CentOS 操作系统镜像的仓库,其中可能了很多不同版本的镜像,它则被称CentOS仓库

5.Docker 能做什么(应用场景)

综上所述,Docker能做什么?个人总结为以下几点:

1)快速搭建开发环境或环境复制;

        传统的方法一个一个地安装软件,一大堆软件安装下来确实十分费时间,使用容器技术省时省力,何乐而不为?它能让你将运行环境和配置放在代码中然后部署,同一个 Docker 的配置可以在不同的环境中使用,这样就降低了硬件要求和应用环境之间耦合

2)可以将运行环境和配置放在代码中并部署;

3)可以使用docker-compose来模拟生产环境;

4)进行自动测试;

        试想这样一个问题,如何编写自动化的集成测试用例,这些测试用例无需花很长时间来开始运行,使用者也可轻松管理。

这里不是指在 Docker 中运行测试用例,而是将测试用例与镜像紧密运行在一起。当你针对一个 docker 镜像编写测试用例时会有一个很大的优势。下面简单介绍一下我的测试流程:运行两个 docker 镜像(app + db),在 MySQL 启动时加载数据,并在 app docker 上使用 API。

5)使用docker镜像进行自我部署等。

6)限制应用最大的cpu、内存、硬盘使用,起到隔离的作用,避免产生”一块代码产生死循环,把磁盘占满,其他的程序受到影响“的情况;

7)微服务(Microservices)

        微服务架构 —— 将一个整体式的应用拆分成松耦合的单个服务。每个服务打包为一个 docker 镜像并使用 docker-compose 来模拟生产环境(checkout docker networks)。最开始实践的时候可能会比较费时费力,但长远地来看,最终将产生巨大的生产力。

8)持续部署

        都说 Docker 天生适合持续集成/持续部署,在部署中使用 Docker,持续部署将变得非常简单,并会在进入新的镜像后重新开始。

关于这个部分的自动化工作,现在已经有许多方案以供选择,Kubernetes 就是一个耳熟能详的名字。Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。

9)扩容 QPS(Scaling QPS)

        Docker 通过创建另一个容器来帮助你轻松地进行水平扩展。如果遇到巨大的高峰流量,Docker 可以帮助你解决问题 —— 只需添加更多的机器并增加负载均衡器背后运行的容器数量。

总的来说,Docker用途,目前有三大类

        1.提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境
        2.提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容
        3.组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构

6.Docker解决的问题

        Docker解决了应用程序在不同环境中部署和运行的问题。传统上,应用程序需要在每个环境中进行配置和安装,这很费时且容易出错。使用Docker,应用程序和其依赖项可以打包到一个容器中,然后在任何环境中都可以轻松部署和运行。这使得开发人员可以更快地交付应用程序,并确保它们在不同环境中具有一致的行为。

6.1 系统环境不一致

开发:我本地没问题.运维:服务器没问题. 这个问题就变成了皮球.

如果一个应用要正常的启动起来需要什么?比如java web应用.

需要一个操作系统,操作系统之上要jdk,tomcat,我们的代码,配置文件.

操作系统的改变可能会导致我们的应用开不起来,比如我们调用了某些系统命令.

jdk版本也可能导致程序的运行失败.比如class文件需要1.7编译,我们装了个1.6的jdk.

tomcat版本也能导致失败,比如旧的版本一些配置在新版本中不再支持.

代码的话就比如应用了C盘,D盘的一个文件,或者是用了系统的一些环境编码.

配置的话我们可能少了某个配置文件等等.

docker来了,它把操作系统,jdk,tomcat,代码,配置全部放到集装箱里.再打包放到鲸鱼上,由鲸鱼给我们送到服务器上,在我的机器上怎么运行,在别的机器上也怎么运行.不会有任何的问题.一句话就是docker解决了运行环境不一致所带来的问题.

6.2 系统崩溃(雪崩)

    如果有根别人共用服务器的同学可能有这样的体会,莫名其妙发现自己的程序挂了,一查原因要不是内存不够了,要不是硬盘满了,还有就是发现某个服务变慢了,甚至敲终端都比较卡,但是linux本身就是一个多用户的操作系统本身就可以供多个用户使用,docker的隔离性可以解决这个问题,就算别人的程序还是死循环疯狂吃CPU,还是封装疯狂打日志把硬盘占满,还是内存泄漏,把内存占满,都不会导致我们的程序运行错误.因为docker在启动的时候就限定好了,它最大使用的CPU硬盘,如果超过了,就会杀掉对应进程.

6.3 并发太高了

        大部分系统业务量并不是每天都比较平均的,特别是一些电商系统,每天总有那么几天业务量是平时的几倍甚至几十倍,如果按双11的规模去准备服务器那么对于平时的规模来说又是极大的浪费,所以就在节日前临时扩展机器,过完节再把多余的节点下线,这就给运维带来了非常大的工作量,一到过节就在各个机器上部署各种各样的服务,我们启动程序需要java,tocmat等等,并且还可能起不来还要调试,这是非常恶心的工作,有了docker一切都变得美好了,只要点一下服务器就可以从10台变成100台甚至1000,1W台.都是分分钟的事情.

        为什么会这么快呢?都是用标准的方式把我们的程序运过来,下载过来,再用标准的方式把它运行起来,就可以做到只要在每台机器上都执行一两条命令,就可以让程序正常跑起来,并且不用担心有问题。
        docker是一个用来装应用的容器,就像杯子可以装水,笔筒可以放笔,书包可以放书,可以把hello word放在docker中,可以把网站放入docker中,可以把任何想得到的程序放在docker中

7.Docker特性

7.1.Docker主要特性如下:

1)文件系统隔离

每个进程容器运行在完全独立的根文件系统里。

2)资源隔离

可以使用cgroup为每个进程容器分配不同的系统资源,例如CPU和内存。

3)网络隔离

每个进程容器运行在自己的网络命名空间里,拥有自己的虚拟接口和IP地址。

4)写时复制

采用写时复制方式创建根文件系统,这让部署变得极其快捷,并且节省内存和硬盘空间。

5)日志记录

Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。

6)变更管理

容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器,无需使用模板或手动配置。

7)交互式Shell

Docker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次性交互shell。

7.2.Docker优点与缺点

Docker有以下优点:

1)代码量小,运行速度快。Docker启动一个容器实例的时间很短,大约只需要1-2秒。

2)Docker适应性强。可以运行在笔记本电脑、数据中心的虚拟机乃至任何的云上。

3)Docker支持Linux、Unix和Windows操作系统。

4)Google、微软、亚马逊和IBM都支持Docker。

Docker有以下缺点:

1)Docker适用于计算,但是不适用于存储。

2)Docker不适合安装数据库等需要数据存储的软件或服务。

3)Docker不适合存储大量数据,因此Docker容器产生的数据、日志等应该放在容器外。可以通过NFS、映射磁盘分区等方式解决Docker的数据存储问题。

8.Docker容器技术与虚拟机的区别

        虚拟化既可以通过硬件模拟来实现,也可以通过操作系统软件来实现,而容器技术则更为优雅,它充分利用了操作系统本身已有的机制和特性,可以实现远超传统虚拟机的轻量级虚拟化 因此,有人甚至把它称为"新一代的虚拟化"技术,并将基于容器打造的云平台亲切地称为“容器云”

        毫无疑问,Docker 正是众多容器技术中的佼佼者,是容器技术发展过程中耀眼的一抹亮色

虚拟机:虚拟机是通过Hypervisor(虚拟机管理系统,常见的有VMWare workstation、VirtualBox),虚拟出网卡、cpu、内存等虚拟硬件,再在其上建立虚拟机,每个虚拟机是个独立的操作系统,拥有自己的系统内核。

容器:容器是利用namespace将文件系统、进程、网络、设备等资源进行隔离,利用cgroup对权限、cpu资源进行限制,最终让容器之间互不影响,容器无法影响宿主机

        目前,Docker内部使用的是Linux容器技术(LXC),这是运行在与它的宿主机器同样的操作系统上。这准许它可以和宿主机器共享许多系统资源。它也会使用AuFS作为文件系统,也为你管理网络。

8.1.Docker和一个正常的虚拟机有何区别?

对比项目Docker虚拟机
启动秒级分钟级
性能损耗几乎没有性能损耗损耗大
硬盘损耗MBGB
隔离性docker 属于进程之间的隔离虚拟机可实现系统级别隔离

1)系统利用率

docker 更轻量,docker 的架构可以共用一个内核与共享应用程序库,所占内存极小。同样的硬件环境,Docker 运行的镜像数远多于虚拟机数量,对系统的利用率非常高。

2)安全性

docker 的安全性也更弱。Docker 的租户 root 和宿主机 root 等同,一旦容器内的用户从普通用户权限提升为 root 权限,它就直接具备了宿主机的 root 权限,进而可进行无限制的操作。虚拟机租户 root 权限和宿主机的 root 虚拟机权限是分离的,并且虚拟机利用如 Intel 的 VT-d 和 VT-x 的 ring-1 硬件隔离技术,这种隔离技术可以防止虚拟机突破和彼此交互,而容器至今还没有任何形式的硬件隔离,这使得容器容易受到攻击。

3)可管理性

docker 的集中化管理工具还不算成熟。各种虚拟化技术都有成熟的管理工具,例如 VMware vCenter 提供完备的虚拟机管理能力。

4)可用和可恢复性

docker 对业务的高可用支持是通过快速重新部署实现的。虚拟化具备负载均衡,高可用,容错,迁移和数据保护等经过生产实践检验的成熟保障机制,VMware 可承诺虚拟机 99.999% 高可用,保证业务连续性。

5)创建、删除速度

虚拟化创建是分钟级别的,Docker 容器创建是秒级别的,Docker 的快速迭代性,决定了无论是开发、测试、部署都可以节约大量时间。

6)交付、部署速度

虚拟机可以通过镜像实现环境交付的一致性,但镜像分发无法体系化;Docker 在 Dockerfile 中记录了容器构建过程,可在集群中实现快速分发和快速部署;

8.2.Docker为什么比虚拟机快

1,Docker有着比虚拟机更少的抽象层;

2,Docker利用宿主机的内核,vm需要的是Guest OS;

3,新建容器的时候,Docker不需要像虚拟机一样重新加载一个操作系统,虚拟机加载的是Guest OS,分钟级别的。而Docker是利用宿主机的操作系统,省略掉了这个复杂的操作,秒级的

8.3.对比总结

相同点:

        docker和容器技术和虚拟机技术,都是虚拟化技术。

不同点:

        docker效率比虚拟机效率高。达到了秒级启动的地步。

docker相较于VM的优点:

1)比VM小、快,Docker容器的尺寸减小相比于整个虚拟机大大简化了分布
到云和分发时间的开销。Docker启动一个容器实例时间仅仅需要几秒钟。

2)Docker是一个开放的平台,构建、发布和运行分布式应用程序。

3)开发人员不需要关系具体是哪个Linux操作系统

4)Google、微软(azure)、亚马逊、IBM等都支持docker。

5)Docker支持Unix/Linux操作系统,也支持Windows和Mac。

8.4.Docker局限性:

        Docker用于应用程序时是最有用的,但并不包含数据。日志、数据库等通常放在Docker容器外。一个容器的镜像通常都很小,不用和存储大量数据,存储可以通过外部挂载等方式使用,比如:NFS、ipsan、MFS等 ,或者docker命令 ,-v映射磁盘分区。
总之,docker只用于计算,存储交给别人。

9. 安装

CentOS 版本要求

官网要求,使用CentOS7的稳定版本,同时:

  • 启用centos-extras
  • 推荐使用overlay2存储驱动

9.1.ubuntu

在ubuntu上安装Docker非常容易,仅需要执行如下命令

sudo apt-get install lxc-docker

9.2.Windows

1)前置条件

        Windows 必须是 64 位的版本。需要启用 Windows 操作系统中的 Hyper-V 和容器特性(开启了 BIOS 设置中的硬件虚拟化支持)。

2)docker下载

        第一步:访问 Docker 的下载(https://www.docker.com/products/docker-desktop)页面,并单击其中的 Download for Windows 按钮。

第二步:单击任意 Get Docker 下载链接。Docker for Windows 分为稳定版(Stable)和抢鲜版(Edge)。抢鲜版当中包含一些新特性,但是可能不够稳定。单击下载链接后,会将名为 Docker for Windows Installer.exe 的安装包下载到默认下载目录。


3) 安装 

找到上一步下载的安装包并运行即可。

以管理员身份运行安装向导,并按照提示一步一步完成整个安装过程。安装完成后 Docker 会作为系统服务自动启动,并且在 Windows 的通知栏看到 Docker 的大鲸鱼图标

 

4)验证

打开命令行或者 PowerShell 界面,并尝试执docker version命令。

注意观察命令输出内容,其中 Server 部分中的 OS/Arch 属性展示了当前的操作系统是 linux/amd64。

这是因为在默认安装方式中,Docker daemon 是运行在 Hyper-V 虚拟机中的一个轻量级 Linux 上的。这种情况下,只能在 Windows 版 Docker 上运行 Linux 容器。

如果想要运行原生 Windows 容器(Native Windows Container),可以右击 Windows 通知栏中的 Docker 鲸鱼图标,并选择“切换到 Windows 容器”。

使用下面的命令也可以完成切换(进入 \Program Files\Docker\Docker 目录下执行)。

C:\Program Files\Docker\Docker> .\dockercli -SwitchDaemon

如果没有开启 Windows 容器特性,则会看到下图的提示。
 


如果已经开启了 Windows 容器特性,则只需要花费数秒就能完成切换。一旦切换完成,在命令行中执行docker version指令的输出内容如下。

C:\> docker version

可以看到,现在 Server 版本信息变成了 windows/amd64。这意味着 Docker daemon 运行在原生 Windows 内核上,并且只能运行 Windows 容器。

同时也可以发现,Experimental 这个属性的值为 true。这表示当前运行的 Docker 版本是实验版本。

前面提到过,Docker for Windows有两个版本:稳定版和抢鲜版。 Windows 容器是抢鲜版中的一个实验特性。

读者可以通过运行dockercli -Version命令来查看当前的 Docker 版本。

dockercli 命令在 C:\Program Files\Docker\Docker 目录下。

C:\Program Files\Docker\Docker> .\dockercli -Version


Docker for Windows
Version: 18.01.0-ce-win48 (15285)
Channel: edge
Sha1: ee2282129dec07b8c67890bd26865c8eccdea88e
OS Name: Windows 10 Pro
Windows Edition: Professional
Windows Build Number: 16299

Windows 版 Docker 包括 Docker 引擎(客户端和 daemon)、Docker Compose、Docker Machine 以及 Docker Notary 命令行。

通过下列命令确认各个模块已经成功安装。

C:\> docker --version
Docker version 18.01.0-ce, build 03596f5

C:\> docker-compose --version
docker-compose version 1.18.0, build 8dd22a96

C:\> docker-machine --version
docker-machine.exe version 0.13.0, build 9ba6da9

C:\> notary version
notary
Version: 0.4.3
Git commit: 9211198

10.Docker常用命令

10.1.docker 基础命令

​#启动docker

systemctl start docker

#关闭docker

systemctl stop docker

#重启docker

systemctl restart docker

#docker设置随服务启动而自启动

systemctl enable docker

#查看docker 运行状态

------如果是在运行中 输入命令后 会看到绿色的active

systemctl status docker

#查看docker 版本号信息

docker version

docker info

10.2.docker 镜像命令

#查看自己服务器中docker 镜像列表

docker images

#搜索镜像

docker search 镜像名
docker search --filter=STARS=9000 mysql 搜索 STARS >9000的 mysql 镜像

#拉取镜像 不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本

docker pull 镜像名 
docker pull 镜像名:tag

参考资料

https://blog.csdn.net/m0_61503020/article/details/125456520

https://blog.csdn.net/m0_62019369/article/details/128144877

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值