一、什么事Docker?
Docker 是基于Go语言实现的云开源项目。
Docker 的主要目标是通过对应用组件的封装,分发,部署,运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”
LInux容器技术的出现就解决了这样一个问题,而Docker就是在它的基础上发展过来的,讲应用打成镜像,用过镜像成为运行在Docker容器上面的实例,而Docker容器在任何操作系统上都是一致的,这就实现了跨平台,跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。
一句话概括就是:解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。
二、Docker 的基本组成
- 镜像(image):就是一个只读的模板,镜像可以用来创建Docker容器。一个镜像可以创建多个容器。docker镜像文件类似于Java的类模板,而docker容器实例类似于Java中new出来的实例对象。
- 容器(container):容器是用镜像创建的运行实例,就像是Java中的类和实例对象一样。可以把容器看做是一个简易版的Linux环境(包括root用户权限,进程空间,用户解空间和网络空间等)和运行在其中的应用程序。
- 仓库(repository):集中存放镜像文件的地方。类似于Maven仓库,存放各种jar包的地方。Docker公司提供的官方registry被称为Docker Hub(hub.docker.com/),存放各种镜像模板的…
Docker run 具体干了什么?
为什么Docker比JVM虚拟机快?
1、因为docker不需要虚拟机实现硬件资源的虚拟化,运行在docker容器的程序直接使用的都是实际物理机的硬件资源。
2、当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统的内核,进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新加一个虚拟机时,虚拟机软件加载OS,返回新建过程是分钟级别的,而docker由于直接利用宿主机的操作系统,则省略了返回过程。因此新建一个docker容器只需要几秒钟。
Docker 常用命令
帮助启动命令
- 启动docker:systemctl start docker
- 停止docker: systemctl stop docker
- 重启 docker: systemctl restart docker
- 查看docker状态:systemctl status docker
- 开机启动:systemctl enable docker
- 查看docker概要信息:docker info
- 查看docker总体帮助文档:docker —help
- 查看docker命令帮助文档:docker 具体命令 —help