一、docker是什么?
docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。简言之,就是可以在Linux上镜像使用的这么一个容器。可已粗糙的理解为轻量级的虚拟机。
二、docker的优势
- 更快速的交付和部署
开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。 - 更高效的虚拟化
Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。 - 更轻松的迁移和扩展
Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。 这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个平台。 - 更简单的管理
使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。
三、在docker上部署项目和传统部署项目的区别
- 传统的部署方式
环境和项目分开搭建部署,环境离散,不方便迁移。 - docker的部署方式
容器实现了将环境和项目统一化部署,方便迁移,集中式管理。
四、docker安装
官网地址https://www.docker.com/
五、docker架构
- Docker 镜像(Images)
Docker 镜像是用于创建 Docker 容器的模板,比如 Ubuntu 系统。 - Docker 容器(Container)
容器是独立运行的一个或一组应用,是镜像运行时的实体。 - Docker 客户端(Client)
Docker 客户端通过命令行或者其他工具使用 Docker SDK (https://docs.docker.com/develop/sdk/) 与 Docker 的守护进程通信。 - Docker 主机(Host)
一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。 - Docker Registry
Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。(Docker Hub(https://hub.docker.com) ) - Docker Machine
Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。
六、docker常用命令
- 拉取docker镜像
docker pull image_name
- 查看宿主机上的镜像,Docker镜像保存在/var/lib/docker目录下:
docker images
- 删除镜像
docker rmi docker.io/tomcat:7.0.77-jre7 或者 docker rmi b39c68b7af30
- 查看当前有哪些容器正在运行
docker ps
- 查看所有容器
docker ps -a
- 启动、停止、重启容器命令:
docker start container_name/container_id
docker stop container_name/container_id
docker restart container_name/container_id
- 后台启动一个容器后,如果想进入到这个容器,可以使用attach命令:
docker attach container_name/container_id
- 删除容器的命令:
docker rm container_name/container_id
- 查看当前系统Docker信息
docker info
- 从Docker hub上下载某个镜像:
docker pull centos:latest
docker pull centos:latest