docker简介
什么是docker
docker是一个能够把开发的应用程序自动部署到容器的开源引擎。
- 1、提供简单、轻量的建模方式
- 2、职责逻辑分离:开发秩序关心容器中的程序,运维只需关心容器本身
- 3、快速、高效的开发
- 4、面向服务的架构
docker核心组件
- docker客户端和服务器
- docker镜像
- registry
- docker容器
docker容器就是:
- 一个镜像格式
- 一系列标准的操作
- 一个执行环境
docker就像一个集装箱,所不同的是集装箱运输货物,而docker运输的是软件。
使用docker可以快速的部署应用服务器、消息总线、使用工具、集成测试环境。
docker应用场景
- 加速本地开发和构建流程,更加高效、轻量化。
- 让独立服务器或者应用程序在不同的环境中,得到相同的运行结果。
- 可以用docker进行隔离环境测试。
- docker可以让开发者在本地进行复杂的程序或者架构的测试,而不是必须部署到生产环境中。
- 可以构建PaaS基础设施服务。
- 为开发、测试提供轻量级的沙盒环境。
- 提供软件即服务SaaS应用程序。
- 实现超大规模的宿主机部署。
docker的技术组件
libcontainer格式现在是docker容器的默认格式。
- 文件系统隔离:每个容器都有自己的root文件系统
- 进程隔离:每个容器都运行在自己的进程环境中
- 网络隔离:容器间的虚拟网络接口和IP地址是分开的
- 资源隔离和分组:使用cgroups江CPU和内存之类的资源独立分配给每个容器
- 写时复制:文件系统时通过写时复制创建,意味着文件系统时分层、快速的,占用磁盘空间更小。
- 日志:容器产生的STDOUT、STDERR和STDIN这些IO流都会收集并记录日志,可用于快速分析和故障排查
- 交互式shell:用户可以创建一个伪tty终端,连接到STDIN,为容器提供一个交互式的shell
几个比较实用的命令
杀死所有正在运行的容器
docker kill $(docker ps -a -q)
删除所有已经停止的容器
docker rm $(docker ps -a
删除所有未打 dangling 标签的镜像
docker rmi $(docker images -q -f dangling=true)
删除所有镜像
docker rmi $(docker images -q)