1、docker容器
docker相当于传统的货运集装箱
虚拟机(Virtual Machine,VM)是一个完整的虚拟操作系统和硬件环境。它的工作原理是通过在一台物理主机上使用虚拟化软件来创建多个虚拟机实例,每个实例都可以运行独立的操作系统和应用程序。每个虚拟机都有自己的虚拟硬件和资源分配,并且可以在不同的物理服务器之间迁移。虚拟机提供了更高的隔离性和安全性,适合于运行多个操作系统和复杂的应用程序环境。
Docker是一个轻量级的容器化平台,它使用操作系统层面的虚拟化技术,将应用程序及其依赖打包为一个可移植的容器,然后在主机的操作系统上运行。Docker容器共享主机操作系统的内核,因此比虚拟机更轻量级和高效。容器可以在不同的主机之间轻松部署和迁移,并且启动时间非常快速。Docker适合于部署单个应用程序或服务,并提供了更高的可伸缩性和性能。
建立第一个docker容器
安装docker-ce
设置开机自启
激活内核选项并重启服务
启动容器并查看已激活容器
访问
2、docker镜像
Docker镜像的分层结构是Docker的一个重要概念,它是Docker镜像的构建和管理的基础。Docker镜像的分层结构简单可以描述为以下三层:
(1)基础层:每个Docker镜像都由一个或多个基础层开始。基础层是只读的,包含了操作系统的文件系统和软件包.
(2)中间层:在基础层之上,可以有任意数量的中间层。中间层为镜像添加了文件、配置等内容,每一层都是镜像的一部分。
(3)顶层:最后一层是顶层,也被称为容器层。这是可写层,它使得Docker容器可以在只读的基础层上进行读写操作。当Docker容器运行时,任何对文件系统的更改都会被记录在这个层中。
分层结构的最大好处是层与层之间可以进行资源的共享,这种分层结构使得Docker镜像的创建、存储和传输都变得高效和灵活。.
存储所有镜像文件内容的目录(绝对不能随意删除)
镜像的构建
镜像层是只读的,修改的东西只保存在容器层,当保存的时候,容器层就会保存成新的镜像层,一个镜像最多127 层;
docker 从上往下会依次查找文件,这样修改的内容就会被优先读取到。
注:容器层是与容器生命周期保持一致的,删除容器时,容器层也会同步被删除。
此种方法不利于安全审计
构建镜像
Dockerfile详解
相当于将命令集成使用
自动删除所有已经被停止的容器
查看容器详情
数据卷挂载
自动分配的IP
访问容器
此地址无法使用外部浏览器进行访问,因为没有做端口映射,这是一个私有网段,无法从windows访问。
3、镜像的优化
缩减镜像层
缩减镜像层数,删除中间产物
多阶段构建
导入基础镜像
nginx依赖库地址:nginx-distroless/Dockerfile at master · kyos0109/nginx-distroless · GitHub
拷贝依赖库
依赖库有错误的情况:
重新构建: