文章目录
一、什么是Docker
Docker是一个快速交付应用、运行应用的技术
1.可以将程序及其依赖、运行环境一起打包为一个镜像可以迁移到任意Linux操作系统
2.运行时利用沙箱机制形成隔离容器,各个应用互不干扰
3.启动、移除都可以通过一行命令完成,方便快捷
大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题:
1.依赖关系复杂,容易出现兼容性问题、
2.开发、测试、生产环境有差异
二、Docker和虚拟机
Docker和虚拟机的差异
1.docker是一个系统进程;虚拟机是在操作系统中的操作系统
2.docker体积小、启动速度快、性能好;虚拟机体积大、启动速
度慢、性能一般
三、镜像和容器
镜像(lmage):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
容器(Container) :镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见
DockerHub: DockerHub是一个Docker镜像的托管平台。这样的平台称为Docker Registry。
四、Docker基本操作命令
五、容器相关命令
六、数据卷
挂载数据卷
docker run的命令中通过 -V 参数挂载文件或目录到容器中:
1、 -v volume名称:容器内目录
2、-v 宿主机文件:容器内文件
3、-V 宿主机目录:容器内目录
数据卷挂载与目录直接挂载的
1、数据卷挂载耦合度低,由docker来管理目录,但是目录较深,不好找。
2、目录挂载耦合度高,需要我们自己管理目录,不过目录容易寻找查看。
七、Dockerfile自定义镜像
1、镜像结构
镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成
镜像是分层结构,每一层称为一个Layer
1.Baselmage层:包含基本的系统函数库、环境变量、文件系统
2.Entrypoint:入口,是镜像中应用启动的命令
3.其它:在Baselmage基础上添加依赖、安装程序、完成整个应用的安装和配置
2、什么是Dockerfile
3、构建镜像
1.Dockerfile的本质是一个文件,通过指令描述镜像的构建过程
2.Dockerfile的第一行必须是FROM,从一个基础镜像来构建
3.基础镜像可以是基本操作系统,如Ubuntu。也可以是其他人制作好的镜像,例如:java:8-alpine