First:docker能做什么?
传统的环境部署:
1、环境和项目分开搭建部署,环境离散,不方便迁移
2、环境未隔离
3、部署相对来说比较复杂/困难(tomcat+jdk+...),需要手动封装
4、研发提交代码-CICD-打包war推送至目标服务器,运行sh
docker能解决什么问题:
1、高效有序利用资源
2、机器资源有限;
3、单台机器得部署多个应用;
4、应用之间互相隔离;
5、应用之间不能发生资源抢占,每个应用只能使用事先注册申请的资源。
一次编译,到处运行:
类似于java代码,应用及依赖的环境构建一次,可以到处运行。
Second:docker核心概念(镜像 / 容器 / 仓库)
镜像:
镜像:
只读文件和文件夹组合,是docker容器启动的先决条件--静态的
--自己搭建(eg:基于centos,安装nginx,部署应用,自定义配置)
--拉取别人已经做好的镜像
镜像加载的原理:
docker镜像是由一层一层的文件系统组成,就是联合文件系统。
例如:tomcat镜像
容器:
1、容器是镜像的运行实体
2、容器运行的是真正的应用程序
3、容器有5种状态:初建、查看、运行、停止、暂停、删除
4、虽然容器是宿主机运行的进程,但容器有自己的运行控件和资源限制,所以,在容器内部是看不到宿主机的进程、环境变量、网络等信息
5、容器是基于镜像创建的实例,可单独存在。一个镜像可以创建多个容器。
仓库:
1、仓库是用于存储和分发docker镜像
2、--公共镜像仓库-docker hub(官方、个人)
3、--私有镜像仓库
镜像、容器和仓库之间的关系:
整体质量流程:
# 后续将持续更新docker在实际工作中的使用,感兴趣的童鞋,欢迎关注留言讨论哦