目录
Docker是什么
Docker是解决运行环境和配置问题的软件容器 , 方便做持续集中并有助于整体发布的容器虚拟化技术。
Docker的核心思想——隔离!(打包装箱,每个箱子是互相隔离的)
Docker是基于Go语言开发的,是一个开源项目。
Docker官网:Home - Docker
Docker文档地址:Docker Documentation | Docker Documentation
Dokcer仓库地址:Docker Hub
Docker容器和虚拟机的区别
- Docker容器启动速度快,资源消耗小,扩展方便,但app的隔离没有虚拟机彻底
- 传统虚拟机,虚拟出一套硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
- 容器内的应用直接运行在宿主机的内核,容器没有自己的内核,也没有虚拟出硬件,所有十分轻便
- 容器之间互相隔离,每个容器内都有一个属于自己的文件系统,互不影响
Docker的作用
(1)应用更快速的交付和部署
传统:一堆帮助文档,安装程序
Docker:打包镜像发布测试,一键运行
(2)更便捷的升级和扩缩容
使用了Docker之后,我们部署应用就和搭积木一样简单!
(3)更简单的系统运维
在容器化之后,我们的开发、测试环境都是高度一制的!
(4)更高效的计算资源利用
Docker是内核级别的虚拟化,可以在一个物理机上运行很多的容器实例,服务器的性能可以被压榨到极致!
Docker中的相关进程
dockerd —— docker server 的进程
docker-proxy —— 负责端口映射(监听端口)的进程
containerd —— 整个容器的管理进程
containerd-shim-runc-v2 —— 某个具体的容器对应的进程
Docker中的常见文件
/var/lib/docker :docker的默认存储路径
/var/lib/docker/containers :存放docker容器的目录
hosts、hostname、resolv.conf、config.v2.json 这些都是容器内的文件
- hosts:域名解析的文件
- hostname:存放主机名(容器名的缩写)的文件
- resolv.conf:存放DNS服务器地址的文件,容器里的DNS服务器的配置使用的是宿主机里的DNS的配置
- config.v2.json:存放着容器相关配置的文件
举例
[root@huyuxuan containers]# ls
c338093fec94bc50075c9e76f346649d52b521f8a02dae3c5a9753ccd2dd98a2
[root@huyuxuan containers]# cd c338093fec94bc50075c9e76f346649d52b521f8a02dae3c5a9753ccd2dd98a2
[root@huyuxuan c338093fec94bc50075c9e76f346649d52b521f8a02dae3c5a9753ccd2dd98a2]# ls
c338093fec94bc50075c9e76f346649d52b521f8a02dae3c5a9753ccd2dd98a2-json.log config.v2.json hostname mounts resolv.conf.hash
checkpoints hostconfig.json hosts resolv.conf