Docker虚拟机
Docker容器与虚拟机的区别与比较

Docker容器与虚拟机的区别与比较近年来,随着云计算和虚拟化技术的快速发展,Docker容器和虚拟机成为了两种主流的应用部署方式。
虽然它们都为应用的隔离和管理带来了很大的便利,但是它们在架构和性能等方面有着很大的不同。
本文将深入探讨Docker容器和虚拟机之间的区别与比较。
一、架构1. Docker容器的架构Docker容器采用了轻量级的虚拟化技术,它直接在宿主机的操作系统上运行,可以共享操作系统内核。
每个容器都独立运行在自己的命名空间中,拥有自己的文件系统、进程空间和网络接口。
2. 虚拟机的架构虚拟机通过Hypervisor实现了对硬件资源的抽象和隔离。
每个虚拟机都运行着完整的操作系统,并拥有独立的内核和设备驱动程序。
虽然虚拟化可以实现多个虚拟机之间的隔离,但是它也带来了较高的资源消耗。
二、性能1. Docker容器的性能由于Docker容器共享宿主机的操作系统内核,因此其启动时间和资源消耗较小。
而且,Docker容器的隔离性较弱,不同容器之间可以直接通信,这样可以大大提高应用程序的性能和响应速度。
2. 虚拟机的性能由于虚拟机需要运行完整的操作系统,所以它的启动时间和资源消耗相对较大。
此外,不同虚拟机之间通信需要通过网络协议进行,这样会引入较大的延迟和性能损失。
三、部署与管理1. Docker容器的部署与管理Docker容器采用了基于镜像的部署方式,可以通过Docker镜像构建、打包和发布应用程序。
同时,Docker提供了丰富的命令行工具和API,可以方便地管理和监控容器的运行状态。
2. 虚拟机的部署与管理虚拟机的部署需要通过虚拟化管理工具(如vSphere、OpenStack等)进行,其部署流程较为繁琐。
而且,虚拟机的启动和停止需要一定的时间,不够灵活。
四、应用场景1. Docker容器的应用场景Docker容器适合于构建和部署微服务架构、容器化的应用程序以及持续集成和持续部署等场景。
由于其轻量级和快速启动的特点,能够满足快速交付和弹性扩展的需求。
Docker与虚拟机技术之间的对比与优劣分析

Docker与虚拟机技术之间的对比与优劣分析近年来,随着云计算和容器技术的发展,Docker和虚拟机成为了两个备受关注的技术。
这两者都可以实现应用程序的隔离和部署,然而它们在架构、性能和资源利用等方面存在一些不同之处。
本文将对Docker和虚拟机技术进行比较和分析,探讨它们各自的优缺点。
一、架构对比虚拟机技术是通过在物理服务器上创建多个完整的虚拟操作系统来实现资源的隔离和虚拟化。
每个虚拟机都具有自己的内核、操作系统和应用程序。
这种方式的好处是每个虚拟机之间相互独立,但同时也造成了较大的资源开销和启动时间长的问题。
相对而言,Docker采用了轻量级的容器化技术,其架构更为简洁。
Docker使用宿主机的操作系统内核,不像虚拟机那样需要多个操作系统,这样减少了资源的开销和启动时间。
容器可以在几秒钟内启动,而虚拟机可能需要几分钟的时间。
二、性能对比在性能方面,虚拟机技术通过完全模拟整个硬件平台,可以运行各种不同的操作系统和应用程序。
但由于需要模拟硬件的过程,虚拟机的性能相对较低。
特别是在IO密集型的工作负载下,虚拟机的性能下降更为明显。
而Docker容器则是直接运行在宿主机上的,不需要进行硬件模拟,因此性能较虚拟机更高。
Docker的轻量级架构使得容器之间的隔离更为轻松,减少了资源的浪费和多余的复杂性。
三、资源利用对比由于每个虚拟机都有自己独立的操作系统,因此虚拟机在资源利用方面存在一定的浪费。
虚拟机需要额外的内存和存储空间来运行操作系统,这使得一台服务器上运行多个虚拟机变得不太经济。
相比之下,Docker容器可以共享宿主机的操作系统,不需要额外的内存和存储空间,因此更加高效。
容器的启动速度快,可以弹性伸缩,更好地利用了资源。
在云计算环境中,Docker的资源利用效率更高,能够有效提升服务器的利用率和成本效益。
四、应用场景对比虚拟机技术适用于需要多个操作系统和完全隔离的场景。
例如,当一个企业需要在同一台服务器上运行多个不同的操作系统时,使用虚拟机技术是一个不错的选择。
docker面试题

docker面试题Docker是一种开源的容器化平台,能够将应用及其依赖项打包到一个可移植的容器中,以实现快速部署、可伸缩、可移植的应用程序。
在近年来,Docker已经逐渐成为软件开发和运维领域的热门话题。
面试官可能会提问与Docker相关的问题,接下来就让我们来逐一解答这些面试题。
1. 什么是Docker?它的主要特点是什么?Docker是一种容器化平台,它允许开发者将应用程序及其依赖项打包到一个独立的容器中,以实现快速部署、可移植和可伸缩的应用程序。
主要特点包括:轻量、快速启动、可移植性强、资源隔离和易用性高等。
2. Docker与虚拟机有什么区别?虚拟机是通过Hypervisor虚拟化技术在物理服务器上创建多个独立的虚拟机实例,每个虚拟机运行一个完整的操作系统。
而Docker通过容器化技术,在宿主操作系统上运行多个独立的容器实例,每个容器共享宿主操作系统的内核,因此更加轻量、启动更快。
3. Docker镜像和容器之间的关系是什么?Docker镜像是一个只读模板,它包含了应用程序及其依赖项的所有内容。
镜像可以用于创建多个可运行的Docker容器。
容器是镜像的运行实例,每个容器都是相互隔离的,并且可以独立运行。
首先,需要准备一个Docker镜像,可以通过编写Dockerfile来定义镜像的构建规则。
然后,使用docker run命令来创建并启动一个Docker容器,指定所需的镜像和其他运行参数。
5. 如何分享Docker镜像?Docker镜像可以通过Docker Hub进行分享和分发。
在本地开发完成后,可以使用docker push命令将镜像推送到Docker Hub中,其他人可以通过docker pull命令来获取这个镜像。
6. 如何实现Docker容器之间的通信?Docker容器可以通过网络进行通信。
可以使用Docker提供的网络模式,如host、bridge和overlay等。
此外,通过配置Docker网络和容器的网络命名空间,可以实现容器之间的相互通信。
Docker容器和虚拟机的区别与优势

Docker容器和虚拟机的区别与优势随着云计算和容器化技术的快速发展,Docker已经成为了当前最受欢迎的容器化技术。
与传统的虚拟机相比,Docker容器具有许多独特的优势。
本文将针对Docker容器和虚拟机的区别与优势展开探讨。
首先,需要明确Docker容器和虚拟机的定义。
Docker容器可以视为微型虚拟机,它们是基于操作系统级别的虚拟化技术。
虚拟机则是在宿主操作系统之上运行完整的操作系统实例,通过在硬件上模拟整个计算机环境来实现。
Docker容器相对于虚拟机而言有许多优势。
首先是启动速度。
Docker容器可以在几秒钟内启动,并且具有更好的性能,在虚拟机中启动和运行一个完整的操作系统则需要几分钟的时间。
这一优势使得Docker容器在快速部署和扩展时表现出色。
其次是资源利用率。
由于Docker容器共享主机操作系统,并且不需要模拟硬件,因此它们占用的资源更少。
相反,虚拟机需要独立的操作系统和虚拟化层,这会占用更多的内存和处理器资源。
通过提高资源利用率,Docker容器能够在相同硬件配置下运行更多的容器实例。
第三个优势是镜像管理。
Docker容器使用镜像来打包和分发应用程序及其依赖项。
这些镜像可以在不同的环境中部署,而且非常轻量级。
与之相比,虚拟机需要使用虚拟磁盘映像(VMDK、VHD等)来保存整个操作系统。
这使得Docker容器的镜像更易于创建、分享和迁移。
另一个重要因素是可移植性。
Docker容器具有极高的可移植性,可以在不同的操作系统和云平台上运行。
这使得开发团队可以方便地在不同环境中开发、测试和部署应用程序。
虚拟机也可以实现可移植性,但需要复杂的迁移过程和适应不同虚拟化平台的配置。
安全性也是Docker容器的一个优势。
由于Docker容器共享主机操作系统,因此更容易进行资源限制和安全隔离。
这使得Docker容器能够有效地隔离应用程序和宿主操作系统,减少了被攻击的风险。
虚拟机也提供了一定程度的隔离,但由于需要独立操作系统,因此安全风险更高。
Docker容器与虚拟机的区别与优势

Docker容器与虚拟机的区别与优势一、引言在现代科技领域中,虚拟化技术发展迅速,为企业和个人用户带来了许多便利。
虚拟机和容器是两种常见的虚拟化技术,其中Docker作为目前最流行的容器化平台之一,与传统的虚拟机相比具有许多独特的优势。
本文将重点探讨Docker容器与虚拟机的区别与优势。
二、虚拟机及其特点虚拟机是一种软件实现的计算机系统,可以在一台物理计算机上模拟多个独立的虚拟计算机。
每个虚拟机都具有独立的操作系统、硬件资源和应用程序。
虚拟机通过Hypervisor(虚拟机监控器)实现,它负责在主机操作系统和虚拟机之间进行资源调度和管理。
1.1 虚拟机优点(1)隔离性强:每个虚拟机相互隔离,相互之间的应用程序无法相互影响。
(2)可移植性:虚拟机可以在不同的物理计算机上迁移,提供了应用程序的高度灵活性。
(3)完整性:每个虚拟机都是一个完整的操作系统,可以运行任何应用程序。
1.2 虚拟机缺点(1)资源消耗较大:虚拟机需要独立分配硬件资源,例如内存、存储和CPU,因此会造成资源的浪费。
(2)启动时间较长:启动虚拟机需要加载完整的操作系统,因此启动时间相对较长。
三、Docker容器及其特点Docker是一种轻量级的容器化平台,它利用Linux内核的容器技术,将应用程序及其依赖打包到一个可移植的容器中。
Docker容器可以在任何支持Docker的操作系统上运行,无需安装额外的操作系统。
2.1 Docker容器优点(1)资源利用率高:Docker容器共享宿主机的操作系统内核,通过共享资源,避免了虚拟机分配独立资源时的浪费。
(2)启动时间短:Docker容器不需要加载完整的操作系统,启动时间较虚拟机更短。
(3)易于管理和部署:Docker容器可以通过Docker镜像快速创建,可以一次性部署多个容器,简化了应用程序的管理和部署流程。
(4)灵活性强:Docker容器可以动态地调整资源分配,提供了更灵活的扩展和缩容能力。
Docker与虚拟机的性能对比与评估

Docker与虚拟机的性能对比与评估随着云计算技术的快速发展,容器化技术逐渐引起了广泛的关注。
作为目前最热门的容器化技术之一,Docker凭借其轻量级、高效的特性,成为了企业开发和部署应用的首选。
然而,虚拟机作为一种传统的虚拟化技术,也在很多场景下被广泛应用。
那么,Docker与虚拟机究竟有何不同?它们的性能如何?本文将对Docker与虚拟机的性能进行对比与评估。
首先,我们来了解一下Docker和虚拟机的基本原理。
Docker采用了轻量级的容器化技术,通过利用操作系统的内核资源共享和隔离,实现了应用程序与操作系统层之间的解耦。
与之相反,虚拟机则是通过在物理服务器上运行一个完整的操作系统实例,再在操作系统上运行多个虚拟机来实现资源的虚拟化。
其次,我们来比较一下它们在性能方面的差异。
虚拟机在运行时需要消耗额外的系统资源,例如CPU、内存和存储空间等。
而Docker只需在宿主机上运行一个统一的操作系统内核,因此在资源利用效率上具有明显的优势。
虚拟机的启动和停止时间相对较长,而Docker容器可以在几秒钟内完成启动与停止。
此外,虚拟机的管理也比Docker复杂,需要进行独立的操作系统安装和维护,而Docker的容器化管理更加简洁和高效。
然而,虚拟机在一些特定的场景下仍然具有优势。
由于它可以模拟出一个完整的操作系统环境,虚拟机可以更好地支持不同操作系统和不同版本的应用。
而Docker容器则主要适用于轻量级应用和无状态服务,对于有状态的应用和I/O密集型任务来说,虚拟机可能更为合适。
接下来,我们来看一下一些真实的性能对比案例。
一项针对基准测试的研究发现,在相同硬件配置下,Docker的性能可以达到虚拟机的2到3倍。
这主要得益于Docker容器的轻量级和高效率,使得应用程序能够更好地利用硬件资源,提高运行效率。
然而,在某些特定的工作负载情景下,虚拟机的性能仍能超越Docker。
例如,当需要对不同操作系统和版本进行兼容性测试时,虚拟机具有更大的灵活性和兼容性。
Docker容器与虚拟机的区别与联系

Docker容器与虚拟机的区别与联系在软件开发领域,追求更高效、更安全、更灵活的解决方案一直是开发者们的追求。
而在近年来,Docker容器和虚拟机备受瞩目,它们被广泛应用于云计算、持续集成和部署等领域。
本文将着重探讨Docker容器和虚拟机的区别与联系,帮助读者更好地理解和选择适合自己需求的技术。
一、虚拟机的特点虚拟机(Virtual Machine,VM)是一种将物理硬件资源抽象化,通过诸如Hypervisor等软件实现的虚拟化技术。
虚拟机可以模拟出多台独立的计算机系统,每个虚拟机都有自己的操作系统、内存和硬盘等资源。
虚拟机可以实现硬件资源的灵活分配及多个应用共享一台物理服务器的需求。
虚拟机的应用范围非常广泛,可以满足不同层次的需求。
例如,开发者可以在自己的电脑上运行一个虚拟机作为开发和测试环境,避免开发过程中对主机系统造成不可逆的损坏;云计算服务提供商也可以基于虚拟机技术,实现资源整合和更高效的资源利用率。
然而,虚拟机在一些场景下存在一些不足。
首先,虚拟机的启动速度相对较慢,需要完整启动操作系统和相关服务,可能需要几分钟甚至更长的时间。
其次,虚拟机需要占用相对较大的资源,包括内存、硬盘空间和计算资源等,虚拟机运行过程中会导致一定的性能损失。
最后,虚拟机并不是轻量级的解决方案,它需要单独管理和维护操作系统、安全补丁和其他依赖项。
二、Docker容器的特点与虚拟机相比,Docker容器更加轻量级且可移植。
通过Docker容器,可以将应用程序及其依赖项打包成一个独立、可移植的容器,容器包含了应用运行所需的所有组件,包括操作系统、库文件、环境变量等。
每个容器都是相互隔离的,一个容器崩溃或出现问题不会影响其他容器的正常运行。
Docker容器的优势主要体现在以下几个方面。
首先,Docker容器的启动速度非常快,可以在几秒钟之内启动容器,通过镜像(Image)的复用和轻量级的进程隔离,减少了操作系统的启动和资源分配等开销。
Docker容器与虚拟机的性能和资源占用比较

Docker容器与虚拟机的性能和资源占用比较随着云计算的不断发展,虚拟化技术成为了一种常见且重要的技术方式。
而在虚拟化中,Docker容器和虚拟机是两种常见的解决方案。
在实际使用中,人们对于这两者的性能和资源占用的比较备受关注。
本文将探讨Docker容器与虚拟机在性能和资源占用方面的差异。
首先,让我们了解一下Docker容器和虚拟机的基本概念和运行原理。
Docker容器是一种轻量级的、可移植的虚拟环境。
它利用操作系统级别的虚拟化技术,将应用程序和其依赖项打包在一个容器中,这个容器可以在任何支持Docker的操作系统上运行。
相比之下,虚拟机是一种完整的虚拟计算机,它可以运行独立的操作系统和应用程序。
在性能方面,Docker容器相对于虚拟机有明显的优势。
首先,Docker容器的启动和停止速度要远远快于虚拟机。
由于容器共享宿主操作系统的内核,容器的启动过程仅需要几秒钟,而虚拟机需要启动完整的操作系统,通常需要几分钟甚至更长的时间。
这使得使用Docker容器可以极大地提高开发和部署的效率。
其次,Docker容器在资源占用方面也具有优势。
由于容器共享宿主操作系统的内核,容器的资源占用更为轻量级。
相比之下,虚拟机需要为每个实例分配独立的操作系统和硬件资源,这导致了较高的资源占用。
使用Docker容器可以更好地利用物理服务器的资源,提高硬件利用率。
然而,在一些特定场景下,虚拟机仍然是一个更合适的选择。
首先,虚拟机提供了更强的隔离性。
由于每个虚拟机都运行在独立的操作系统中,相互之间的隔离程度更高,更适合运行一些需要高安全性和隔离性的应用程序。
其次,虚拟机更适合运行资源密集型的应用程序。
由于虚拟机具有完整的操作系统和独立的硬件资源,它们可以更好地处理大量的计算和存储需求。
因此,在一些对性能要求较高的场景中,虚拟机可能是更好的选择。
综上所述,Docker容器和虚拟机在性能和资源占用方面有着不同的特点。
Docker容器在启动速度和资源占用方面具有明显的优势,适合于快速部署和开发。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Docker是一个用了一种新颖方式实现的超轻量虚拟机,在实现的原理和应用上还是和VM有巨大差别,专业的叫法是应用容器(Application Container)。
(我个人还是喜欢称虚拟机)Docker应用容器相对于 VM 有以下几个优点:启动速度快,容器通常在一秒内可以启动,而 VM 通常要更久资源利用率高,一台普通PC 可以跑上千个容器,你跑上千个 VM 试试性能开销小, VM 通常需要额外的 CPU 和内存来完成 OS 的功能,这一部分占据了额外的资源因为VM 的 Hypervisor 需要实现对硬件的虚拟化,并且还要搭载自己的操作系统,自然在启动速度和资源利用率以及性能上有比较大的开销。
个人体会较深的两处优点:1、快速部署,传统的部署模式是:安装(包管理工具或者源码包编译)->配置->运行;Docker 的部署模式是:复制->运行。
2、可以保证线上与测试环境一致,计划以后上线就直接复制测试使用的docker容器)什么是docker?/docker/2014/06/29/what-is-docker.html为什么你应该关注docker?/docker/2014/06/13/why-you-should-care-about-docker.html 1、docker安装debian7安装docker参考地址:http://www.webmaster.me/server/installing-docker-on-debian-wheezy-in-60-seconds .htmlecho deb http://get.docker.io/ubuntu docker main | sudotee/etc/apt/sources.list.d/docker.listsudo apt-key adv --keyserver --recv-keys36A1D7869245C8950F966E92D8576A8BA88D21E9sudo apt-get updatesudo apt-get install -y lxc-docker#四行命令,Docker就安装好了。
下面创建一个ubuntu虚拟系统:docker pull ubuntu #此处是从官网拉取名为ubuntu的image,也可手动在https://index.docker.io上搜索想要的镜像。
docker run -i -t ubuntu /bin/bash #创建一个容器,-t是临时终端。
ubuntu12.04、windows、macOS安装docke r参考docker中文文档/docker/2、docker使用过程实践2.1 在测试机启动容器,安装sshdocker run -i -t ubuntu /bin/bash #此方式运行的容器,退出后容器就会关闭。
apt-get install openssh-server #安装ssh#需要修改/etc/sshd/sshd_config文件中内容PermitRootLogin yesUsePAM no1. 2.2启动ssh,容器以后台方式运行docker run -d -p 50001:22 <容器id> /usr/sbin/sshd-D#容器id可通过 docker ps-a查看,最上面的为最新的。
2.3 通过ssh连接到容器安装软件ssh root@127.0.0.1-p 50001#连上后想装什么就装什么,可使用exit退出容器,但后台还会运行。
2.4 服务安装完成后,停止容器。
docker stop <容器id> #停止运行的容器2.5 把容器提交生成最新的镜像docker commit <容器id> debian02 #把这个容器提交生成新的debian02镜像(该镜像是原始镜像与容器的整合)2.6 打包镜像docker save debian02 >/root/debian02.tar #debian02镜像打包2.7 在另外的机器上导入镜像docker load < debian02.tar #导入镜像docker images #查看存在的镜像2.8 启动容器docker run -h="redis-test" --name redis-test -d -p 51000:22 -p51001:3306 -p 51003:6379 -p 51004:6381 -p 51005:80 -p 51006:8000 -p 51007:8888 debian02/etc/rc.local#此处是我测试机器启动命令,指定主机名与端口映射。
#启动后,后面又装了程序,开机自启动命令可放在/etc/rc.local文件中。
docker容器迁移简单方便,可以任意的拷贝部署,以后再也不怕新部署环境了,一堆依赖装的想死有木有。
3、关于docker容器的端口映射由于docker容器的IP地址每次启动都会变,所以不适用于手动添加端口映射(难道每次重启都来查看容器的IP么?),所以需要每次启动容器时由docker程序自动添加NAT规则,前期尽可能的把需要映射的端口在创建容器时配置好,如下:docker run -h="activemq" --name activemq -d -p 51000:22 -p 51001:3306-p 51003:6379 -p 51004:6381 -p 51005:80-p 51006:8000 -p 51007:8888 debian/base/etc/rc.local #此处我把mysql,redis,nginx,ssh都进行了映射。
后续对于docker容器的管理,记住容器的名称,如上述名称是activemq,则使用docker stop,start来控制容器进程。
docker stop activemqdocker start activemq当然,也可以不让docker每次启动容器修改容器的IP地址,参考如下:docker网络配置:/lib/view/open1404896485747.html4、关于docker容器的多程序开机自动运行docker容器每次启动时,开机自启动的命令都要在启动容器前指定。
如 docker run -I -t debian /bin/bash命令,只会运行/bin/bash程序,其它的程序都不会运行,对于要跑多个程序的容器特别纠结。
多程序开机自动运行方法:可把前面所说的启动命令换成dockerrun -I -t debian /etc/rc.local,在容器中把所有需要开机自的启动命令放在/etc/rc.local中,就可以达到多程序开机自启动了。
后台运行则是:docker run -d -p 50001:22 debian /etc/rc.local。
注意:run命令是创建一个新的容器,如果要启动一个曾经运行过的容器,则用命令docker ps -a中找对应的容器ID,然后使用docker start <容器ID>即可。
5、关于docker容器和镜像的关系无论容器里做什么操作,写文件,删文件。
该容器的基本镜像都不会有任何改变。
这是因为Docker从父镜像建立增量镜像,只存储每个容器的更改。
因此,如果你有一个300MB 的父镜像,如果你在容器中安装了50MB的额外应用或服务,你的容器只有50MB,父镜像还是300MB。
但是可以使用Dockfile或commit命令来,把增量镜像和父镜像一起生成一个新的镜像。
commit使用:docker commit <容器id> <新镜像名称>Dockfile使用:root@yangrong:/data# cat DockerfileFROMubuntu/testa #这是基础镜像CMD["/root/start.sh"] #这是启动命令root@yangrong:/data# docker build -t <新镜像名> ./关于Dockfile更多参数参考地址:/articles/FRvAbe/2014/01/04/howto-build-image-with-automatic-startup-s sh-service-from-dockerfile/6、docker参数详解dockeruseage of docker-D 默认false 允许调试模式(debugmode)-H 默认是unix:///var/run/docker.sock tcp://[host[:port]]来绑定或者unix://[/path/to/socket]来使用(二进制文件的时候),当主机ip host=[0.0.0.0],(端口)port=[4243] 或者 path=[/var/run/docker.sock]是缺省值,做为默认值来使用-api-enable-cors 默认flase 允许CORS header远程api-b 默认是空,附加在已存在的网桥上,如果是用'none'参数,就禁用了容器的网络 -bip 默认是空,使用提供的CIDR(ClasslessInter-Domain Routing-无类型域间选路)标记地址动态创建网桥(dcoker0),和-b参数冲突-d 默认false 允许进程模式(daemonmode)-dns 默认是空,使docker使用指定的DNS服务器-g 默认是"/var/lib/docker":作为docker使用的根路径-icc 默认true,允许inter-container来通信-ip 默认"0.0.0.0":绑定容器端口的默认Ip地址-iptables 默认true 禁用docker添加iptables规则-mtu 默认1500 : 设置容器网络传输的最大单元(mtu)-p 默认是/var/run/docker.pid进程pid使用的文件路径-r 默认是true 重启之前运行的容器-s 默认是空,这个是docker运行是使用一个指定的存储驱动器-v 默认false 打印版本信息和退出7、docker run命令详解Usage: docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]Run a command in a new container-a=map[]: 附加标准输入、输出或者错误输出-c=0: 共享CPU格式(相对重要)-cidfile="": 将容器的ID标识写入文件-d=false: 分离模式,在后台运行容器,并且打印出容器ID-e=[]:设置环境变量-h="": 容器的主机名称-i=false: 保持输入流开放即使没有附加输入流-privileged=false: 给容器扩展的权限-m="": 内存限制 (格式:<number><optional unit>, unit单位 = b, k, m or g)-n=true: 允许镜像使用网络-p=[]: 匹配镜像内的网络端口号-rm=false:当容器退出时自动删除容器 (不能跟 -d一起使用)-t=false: 分配一个伪造的终端输入-u="": 用户名或者ID-dns=[]: 自定义容器的DNS服务器-v=[]: 创建一个挂载绑定:[host-dir]:[container-dir]:[rw|ro].如果容器目录丢失,docker会创建一个新的卷-volumes-from="": 挂载容器所有的卷-entrypoint="": 覆盖镜像设置默认的入口点-w="": 工作目录内的容器-lxc-conf=[]: 添加自定义-lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"-sig-proxy=true: 代理接收所有进程信号(even in non-tty mode)-expose=[]: 让你主机没有开放的端口-link="": 连接到另一个容器(name:alias)-name="": 分配容器的名称,如果没有指定就会随机生成一个-P=false: Publish all exposed ports to thehost interfaces 公布所有显示的端口主机接口8、docker常用命令总结docker pull <镜像名:tag> #从官网拉取镜像docker search <镜像名> #搜索在线可用镜像名8.1查询容器、镜像、日志docker top <container> #显示容器内运行的进程docker images #查询所有的镜像,默认是最近创建的排在最上。