1.初识Docker
1.1什么是docker
docket是一个快速交付应用,运行应用的技术
1.2 为什么要用docker
大型项目组件多,部署时会出现依赖兼容性、开发、测试、生产环境差异等问题使用docker可以解决这些问提。
docker依赖兼容性问题:
docker将libs(函数库)、deps(依赖)、配置与应用一起打包
docker将每一个应用放到一个隔离的容器中运行,避免相互干扰
docker解决不同操作系统环境差异问题:
操作系统的结构:
系统应用:操作系统本身提供的系统,函数库(封装了内核指令)
内核:和计算机硬件进行交互,对外提供计算机指令,用于操作计算机硬件,所有Linux发行版的内核都是Linux,如CentOS,Ubuntu,只是系统应用题不同,提供的函数库不同
计算机硬件:如cpu,内存,磁盘等
应用与计算机交互过程:
应用调用系统应用(函数库)实现各种功能,函数库封装了各种内核指令用于操作计算机硬件。
doucker将用户程序与所需的系统函数库一起打包
docker运行到不同的操作系统中,都是基于打包的函数库,借助于操作系统的Linux内核来运行的
1.3.docker和虚拟机的差异
docker是系统进程,虚拟机是操作系统中装的另一个操作系统
docker体积小,运行速度快,性能好;虚拟机体积大,运行速度慢,性能一般;
1.4 docker架构
镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器进程做隔离,对外不可见,一个镜像可以运行多个容器。
1.4.1 dockerHub
DockerHub是一个官方的Docker镜像的托管平台。这样的平台称为Docker Registry。
1.4.2 Docker架构
Docker是一个CS架构的程序,由两部分组成:
- 服务端(server):接收命令或远程请求,操作镜像或容器
- 客户端(client):发送命令或者请求到Docker服务端
2.Docker的基本操作
2.1.镜像操作
2.1.1.镜像名称
- 镜名称一般分两部分组成:[repository]:[tag]。
- 在没有指定tag时,默认是latest,代表最新版本的镜像
如图:
2.1.2.镜像命令
2.2.容器操作
2.2.1.容器相关命令