现在还不懂Docker,估计要Out了

📅 2026/7/29 13:19:51
现在还不懂Docker,估计要Out了
01Docker简介Docker是一个开源的应用容器引擎让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。完整的Docker有以下几个部分组成DockerClient客户端Docker Daemon守护进程Docker Image镜像DockerContainer容器Docker Image 镜像:镜像就是一个环境的只读的模板一个镜像里面包含了虚拟的操作系统环境可以安装各种你需要的项目软件比如tomcatmysql等等。有了镜像就可以根据这个镜像来创建docker容器无论你在什么地方使用这个镜像都可以复制出同样的容器环境。Docker Registry 仓库:仓库就是集中放置镜像的场所主要分为公有仓库和私有仓库最大的公有仓库就是docker hub存放了大量成熟的镜像供用户下载使用。国内的有时速云网易云等当然你也可以在本地网络创建自己的私有仓库。Docker Container 容器:Docker使用容器来运行应用容器就是镜像运行的运行实例我们可以通过成熟的镜像来创建一个容器而后将自己的应用运行到上面。如果在公司内部你可以安装自己的所需环境的软件然后整个生成成一个docker镜像这时候就可以将镜像共享给别人大家就可以执行镜像运行出容器就有了你之前的那个环境使用起来非常方便。02Docker可以做什么1)快速、一致地交付您的应用程序Docker 通过允许开发人员使用提供应用程序和服务的本地容器在标准化环境中工作来简化开发生命周期。容器非常适合持续集成和持续交付 (CI/CD) 工作流程。2)响应式部署和扩展Docker 基于容器的平台允许高度可移植的工作负载。Docker 容器可以在开发人员的本地笔记本电脑、数据中心的物理或虚拟机、云提供商或混合环境中运行。Docker 的可移植性和轻量级特性还使得动态管理工作负载、根据业务需求近乎实时地扩展或拆除应用程序和服务变得容易。3)在相同硬件上运行更多工作负载Docker 是轻量级和快速的。它为基于管理程序的虚拟机提供了一种可行且经济高效的替代方案因此您可以使用更多计算容量来实现业务目标。Docker 非常适合高密度环境以及需要用更少资源完成更多工作的中小型部署。03Docker架构Docker 使用客户端-服务器 (C/S) 架构模式使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建容器与镜像的关系类似于面向对象编程中的对象与类。Docker面向对象容器对象镜像类Docker采用 C/S架构 Docker daemon 作为服务端接受来自客户的请求并处理这些请求(创建、运行、分发容器)。客户端和服务端既可以运行在一个机器上也可通过 socket 或者RESTful API 来进行通信。Docker daemon 一般在宿主主机后台运行等待接收来自客户端的消息。Docker 客户端则为用户提供一系列可执行命令用户用这些命令实现跟 Docker daemon 交互。04Docker与虚拟机的区别启动时间Docker秒级启动虚拟机分钟级启动。轻量级docker镜像大小通常以M为单位虚拟机以G为单位。容器资源占用小要比虚拟机部署更快速。性能docker共享宿主机内核系统级虚拟化占用资源少没有Hypervisor层开销性能基本接近物理机; 虚拟机需要Hypervisor层支持虚拟化一些设备具有完整的GuestOS虚拟化开销大因而降低性能没有容器性能好。安全性由于共享宿主机内核只是进程级隔离因此隔离性和稳定性不如虚拟机docker具有一定权限访问宿主机内核存在一定安全隐患。使用要求VM基于硬件的完全虚拟化需要硬件CPU虚拟化技术支持; docker共享宿主机内核可运行在主流的Linux发行版不用考虑CPU是否支持虚拟化技术。05Docker基本命令1启动docker:systemctl start docker2关闭docker:systemctl stop docker3重启docker:systemctl restart docker4开机启动dockersystemctl enable docker5)查看docker运行状态:systemctl status docker6)查看docker版本信息docker version 或 docker info7)docker帮助命令docker --help8)查看服务器中docker镜像列表:docker images9)搜索镜像:docker search 镜像名10)拉取镜像:docker pull 镜像名这样拉取的是最新版镜像可以加上版本号tag拉取指定版本的镜像docker pull 镜像名:tag11)运行镜像:我们在拉取完镜像后要安装运行方法是docker run 镜像名12)查看运行的容器/镜像:docker ps -a13)删除镜像:#删除一个 docker rmi -f 镜像名/镜像ID #删除多个 其镜像ID或镜像用用空格隔开即可 docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID #删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID docker rmi -f $(docker images -aq)14)强制删除镜像docker image rm 镜像名称/镜像ID15)保存镜像docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字例如docker save tomcat -o /myimg.tar16)查看容器日志docker logs -f --tail要查看末尾多少行 默认all 容器ID