Docker系列:全面认识Docker和基本指令
Posted lonelyxmas
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker系列:全面认识Docker和基本指令相关的知识,希望对你有一定的参考价值。
原文:【Docker系列】:全面认识Docker和基本指令Docker逐渐成为虚拟化技术的佼佼者,Docker技术也是架构师的必备技能。
什么是Docker
Docker 是一个开源的应用容器引擎,基于Go语言,诞生于2013年初,最初发起者是dotCloud公司,开发者可以打包应用到一个轻量级、可移植的容器中,然后发布到主流Linux系统上运行。
为什么用Docker
-
持续交付和部署:使用Docker可以通过定制应用镜像来实现持续集成,持续交付,部署。开发人员构建后的镜像,结合持续集成系统进行集成测试,而运维人员则可以在生产环境中快速部署该镜像,也可以结合持续部署系统进行自动部署。
-
更高效的资源利用:Docker是基于内核级的虚拟化,可以实现更高效的性能,同时对资源的额外需求很低,相比传统虚拟机方式,相同配置的主机能够运行更多的应用。
-
更轻松的迁移和扩展:Docker容器几乎可以在任何平台上运行,同时支持主流的操作系统发行版本。
-
更快速的启动时间:传统的虚拟机技术启动应用服务往往需要数分钟,而Docker容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到妙级,甚至毫秒级的启动时间,大大的节约了开发,测试,部署的时间。
Docker与传统虚拟机差异
传统虚拟化方式
Docker虚拟化方式
传统虚拟化是在硬件层面实现虚拟化,需要有额外的虚拟机管理应用和虚拟机操作系统层,而Docker容器是在操作系统层面实现虚拟化,直接复用本地主机操作系统,更加轻量级。
核心概念
-
Docker镜像:类似于虚拟机里的镜像,是一个只读的模板,一个独立的文件系统,使用镜像可以创建容器,可以理解为镜像是容器的基石。
-
Docker容器:是由Docker镜像创建的运行实例,类似于轻量级的沙箱,每个容器之间都是相互隔离的。支持的操作有启动,停止,删除等。
-
Docker仓库:类似于经常使用的代码仓库,如github,它是Docker集中存放镜像文件的仓所,国内也有网易,阿里等镜像仓库。
镜像操作指令
-
获取镜像:
docker pull centos (默认获取centos最新的镜像)
docker pull centos:7 (获取指定标签镜像)
-
查看本地镜像:
docker images
-
查看镜像详细信息:
docker inspect centos:7
-
查看镜像历史:
docker history centos:7
-
删除镜像:
A:使用标签删除:docker rmi centos
B:使用ID删除:docker rimi
-
构建镜像:
A:使用docker commit命令
B:使用Dockerfile构建
使用docker commit
例:构建一个带有jdk的镜像
按照如下步骤操作
通过docker images命令可以看到新增了centos/jdk 标签为2.0的镜像
使用Dockerfile构建
实际使用中不推荐使用docker commit构建,应使用更灵活和强大的Dockerfile构建docker镜像,直接举例来认识Dockerfile。
例:构建一个带有jdk的centos7镜像
编写Dockerfile:
执行如下指令:
运行结果如下:
docker images可以看到新生成的centos/jdk镜像。
容器操作指令
-
创建启动容器:
容器运行完后直接退出
-
交互形式创建启动容器
执行exit才能退出容器
-
守护状态运行容器
-
启动已有的容器:
-
停止运行的容器:
-
删除容器:
-
进入运行的容器:
-
导出容器:
-
导入容器:
以上是关于Docker系列:全面认识Docker和基本指令的主要内容,如果未能解决你的问题,请参考以下文章