【Docker的理解和指令 - - -来源于deepseek】
Docker 是什么Docker 是一个开源的容器化平台用于开发、交付和运行应用程序。它的核心目标是“Build, Ship and Run Any App, Anywhere”—— 即“一次构建处处运行”。 为什么需要 Docker在传统软件开发和部署中常常遇到这样的问题环境不一致开发人员在 Windows 上开发测试通过的应用部署到 Linux 服务器时可能因为操作系统、库版本、依赖软件不同而运行失败。部署繁琐每次部署都需要手动安装各种运行环境、配置依赖、设置端口等过程繁琐且容易出错。资源浪费传统虚拟机虽然能隔离环境但每个虚拟机都需要运行一整套完整的操作系统占用大量内存和磁盘空间启动慢。Docker 通过容器化技术解决了这些问题。它将应用及其所有依赖打包成一个镜像在任何支持 Docker 的环境中都能以容器的形式一致运行。⚖️ Docker vs 传统虚拟机特性传统虚拟机Docker 容器虚拟化层级硬件虚拟化操作系统虚拟化操作系统每个 VM 运行完整客户操作系统含内核所有容器共享宿主机内核资源占用高几百MB几GB内存几GB几十GB磁盘低MB级别启动速度分钟级秒级隔离性强隔离进程级隔离简单来说虚拟机虚拟的是硬件Docker 虚拟的是操作系统。容器直接运行在宿主机内核上因此更轻量、更快速。 Docker 核心概念在了解具体指令前先掌握三个核心概念镜像Image一个只读的模板包含应用程序及其运行所需的环境、依赖和配置。类似于“类”。容器Container镜像的运行实例。类似于“对象”。容器是相互隔离的。仓库Repository存放镜像的地方最著名的是 Docker Hub。 Docker 常用命令详解Docker 命令按功能可分为镜像管理、容器管理、数据卷管理、网络管理等几大类。其他学习资源https://vuepress.mirror.docker-practice.com/一、镜像管理命令命令作用示例docker images列出本地所有镜像docker images -a显示所有docker pull 镜像名:标签从仓库拉取镜像到本地docker pull nginx:latestdocker search 镜像名在 Docker Hub 搜索镜像docker search mysqldocker build -t 镜像名 路径根据 Dockerfile 构建镜像docker build -t myapp .docker rmi 镜像名/ID删除本地镜像docker rmi nginx加-f强制删除docker save -o 文件 镜像名导出镜像为 tar 文件docker save -o nginx.tar nginxdocker load -i 文件从 tar 文件导入镜像docker load -i nginx.tardocker tag 源镜像 目标镜像:标签给镜像打标签docker tag myapp myrepo/myapp:v1docker history 镜像名查看镜像构建历史docker history myappdocker inspect 镜像名/容器名查看镜像或容器的详细信息docker inspect nginx二、容器管理命令命令作用示例docker ps列出正在运行的容器docker ps -a列出所有容器docker run 镜像名从镜像创建并启动容器docker run -d -p 8080:80 nginxdocker start 容器名/ID启动已停止的容器docker start mynginxdocker stop 容器名/ID停止运行中的容器docker stop mynginxdocker restart 容器名/ID重启容器docker restart mynginxdocker kill 容器名/ID强制停止容器docker kill mynginxdocker rm 容器名/ID删除容器需先停止docker rm mynginxdocker exec -it 容器名 命令在运行中的容器内执行命令docker exec -it mynginx bashdocker attach 容器名附加到运行中的容器docker attach mynginxdocker logs 容器名查看容器日志docker logs -f mynginx实时跟踪docker cp 源路径 目标路径在容器和宿主机之间复制文件docker cp ./file.txt mynginx:/app/docker stats显示容器资源使用情况docker statsdocker top 容器名显示容器内的进程docker top mynginxdocker commit 容器名 新镜像名将容器保存为新镜像docker commit mynginx mynginx:v2docker run常用参数详解参数作用示例-d后台运行容器detachdocker run -d nginx-it交互式运行分配伪终端docker run -it ubuntu bash-p 宿主机端口:容器端口端口映射docker run -p 8080:80 nginx-v 宿主机路径:容器路径挂载数据卷docker run -v /data:/app/data nginx--name 名称给容器指定名称docker run --name mynginx nginx--restart always容器退出时自动重启docker run --restart always nginx-e keyvalue设置环境变量docker run -e MYSQL_ROOT_PASSWORD123 mysql三、数据卷Volume管理命令数据卷用于持久化容器数据即使容器被删除数据依然保留。命令作用示例docker volume create 名称创建数据卷docker volume create mydatadocker volume ls列出所有数据卷docker volume lsdocker volume rm 名称删除数据卷docker volume rm mydatadocker volume inspect 名称查看数据卷详情docker volume inspect mydata四、网络管理命令命令作用docker network ls列出所有网络docker network create 名称创建网络docker network connect 网络 容器将容器连接到网络docker network disconnect 网络 容器断开容器与网络的连接docker network rm 名称删除网络五、系统信息命令命令作用docker version显示 Docker 版本信息docker info显示 Docker 系统信息docker events获取 Docker 实时事件 Dockerfile 指令详解Dockerfile 是一个文本文件包含构建镜像所需的全部指令。指令作用示例FROM必须第一条指定基础镜像FROM ubuntu:20.04MAINTAINER指定维护者信息MAINTAINER userexample.comRUN在构建镜像时执行命令并提交为新镜像层RUN apt-get update apt-get install -y nginxCMD容器启动时执行的命令可被docker run覆盖CMD [nginx, -g, daemon off;]ENTRYPOINT容器启动时执行的命令不可被覆盖ENTRYPOINT [nginx]COPY将本地文件复制到镜像中COPY ./app /appADD类似COPY但支持 URL 和自动解压 tarADD https://example.com/file.tar.gz /tmp/EXPOSE声明容器运行时监听的端口EXPOSE 80ENV设置环境变量ENV NODE_ENV productionWORKDIR设置工作目录WORKDIR /appVOLUME创建挂载点用于持久化数据VOLUME [/data]USER指定运行容器时的用户USER nginxONBUILD当镜像被用作其他镜像的基础时触发的指令ONBUILD COPY . /appCMD与ENTRYPOINT的区别CMD提供容器启动时的默认命令可被docker run后的命令覆盖。ENTRYPOINT容器启动时执行的命令不可被覆盖docker run后的参数会作为ENTRYPOINT的参数追加。 总结Docker 通过镜像打包应用与环境通过容器实现轻量级运行解决了“环境不一致”和“部署繁琐”两大核心痛点。掌握上述命令你就能完成从构建镜像docker build、拉取/推送镜像docker pull/push、运行容器docker run到管理容器生命周期start/stop/restart/rm的完整操作。

相关新闻

基于CNN的花卉绽放状态识别技术实践

基于CNN的花卉绽放状态识别技术实践

1. 项目概述与核心价值 这个毕业设计项目选择了一个非常实用的应用场景——通过卷积神经网络(CNN)识别花卉是否绽放。在实际园艺和农业生产中,花卉开放状态的自动识别具有多重价值:从智能温室管理到花期预测,再到园林景观维护,都能…

2026/7/22 9:31:34阅读更多 →
Dify、Coze与n8n三大AI自动化平台对比与选型指南

Dify、Coze与n8n三大AI自动化平台对比与选型指南

1. 项目概述:三大自动化平台对比指南在当今AI应用开发领域,Dify、Coze和n8n这三个平台正成为开发者热议的焦点。作为一名长期关注自动化工具的技术博主,我发现很多同行在选择平台时常常陷入纠结。其实只要抓住一个关键分类标准——"是否…

2026/7/22 9:31:34阅读更多 →
C2000 DSP eHRPWM与EDMA3寄存器配置实战:电机控制与数据搬运

C2000 DSP eHRPWM与EDMA3寄存器配置实战:电机控制与数据搬运

1. 项目概述:从寄存器到系统级数据搬运 在嵌入式系统开发,尤其是电机控制、数字电源这类对实时性和精度要求极高的领域,我们每天都在和芯片的“灵魂”打交道——寄存器。它们不是冰冷的地址和数值,而是我们与硬件对话的“语言”。…

2026/7/22 9:31:34阅读更多 →
支付系统架构演进:从单库单服到灰度路由与多层容灾的工程实践

支付系统架构演进:从单库单服到灰度路由与多层容灾的工程实践

支付系统架构演进:从单库单服到灰度路由与多层容灾的工程实践 一、支付系统的特殊性:不是"高可用",而是"绝对不允许错账" 支付系统与普通互联网服务的架构设计有本质差异。一个社交动态加载失败,用户刷新一下…

2026/7/22 10:39:42阅读更多 →
推荐系统的AI升级:从协同过滤到深度学习的演进路径与工程冷启动方案

推荐系统的AI升级:从协同过滤到深度学习的演进路径与工程冷启动方案

推荐系统的AI升级:从协同过滤到深度学习的演进路径与工程冷启动方案 一、协同过滤不是"过时技术",而是"数据稀疏场景下的最优基线" 很多团队在"升级到AI"的旗号下,一上来就想着上深度学习推荐模型(…

2026/7/22 10:39:42阅读更多 →
AI 聊天的逐字回复,到底是怎么实现的?

AI 聊天的逐字回复,到底是怎么实现的?

SSE 是什么 用过豆包、ChatGPT 这类 AI 产品的人,对逐字输出的「打字机效果」一定不陌生。不少小伙伴可能会以为这是前端做的模拟打字动画,或是通过 WebSocket 实现的实时推送。 实际上,这类流式输出的核心技术是 SSE(Server-Sent…

2026/7/22 10:39:42阅读更多 →
C++ 构造函数细解--编译器总是确保所有成员对象在进入函数体执行前必须已经初始化完成

C++ 构造函数细解--编译器总是确保所有成员对象在进入函数体执行前必须已经初始化完成

c对象的构造过程并非发生在花括号{}内部,而是严格分为两个阶段:初始化阶段 发生在进入构造函数函数体之前 在此阶段,所有的非静态成员变量(包括基类子对象)都必须被初始化 如果程序员提供了初始化列表,则按照列表中的指…

2026/7/22 10:39:42阅读更多 →
“捏脸“背后的工程逻辑:3D数字人全维度DIY定制系统

“捏脸“背后的工程逻辑:3D数字人全维度DIY定制系统

在游戏领域,"捏脸"早已是角色创建的标配功能——玩家通过滑块调整五官比例、身材参数,打造专属游戏角色。而在数字人行业,这一能力长期缺失。传统2D数字人基于提前录制的真人视频,形象一旦确定便彻底锁死,从…

2026/7/22 10:39:42阅读更多 →
TI Hercules MCU存储安全:F021 Flash与TCRAM寄存器配置与错误处理实战

TI Hercules MCU存储安全:F021 Flash与TCRAM寄存器配置与错误处理实战

1. 项目概述与核心价值在嵌入式系统,尤其是汽车电子和工业控制这类对可靠性要求严苛的领域,硬件资源的精细化管理是保障系统稳定运行的基石。这其中,控制寄存器扮演着“硬件管家”的角色,它并非一个独立的物理芯片,而是…

2026/7/22 10:37:42阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 0:53:59阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 0:53:59阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 0:53:59阅读更多 →
中小企业小程序开发公司怎么选:预算、上手和售后避坑指南

中小企业小程序开发公司怎么选:预算、上手和售后避坑指南

中小企业做小程序,最常见的矛盾是预算有限,但又不希望功能太单薄;没有技术团队,但又希望后续能自己运营;想快速上线,又担心隐性收费和售后失联。选型时如果只看“低价套餐”或“案例数量”,很容…

2026/7/22 0:01:17阅读更多 →
GEO优化如何沉淀长期内容资产?广拓时代谈AI搜索时代的内容ROI

GEO优化如何沉淀长期内容资产?广拓时代谈AI搜索时代的内容ROI

企业做营销,最怕钱花完了,资产没有留下。 效果广告能带来一段时间的曝光,但预算停止后,流量往往也随之停止。短视频内容可能在几天内冲高,也可能很快沉下去。AI搜索时代,企业需要重新思考一个问题&#xff…

2026/7/22 0:01:17阅读更多 →
Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复 一、你的 Agent 在"再想想"的循环里绕了 12 轮,用户已经关窗口了 Agent 与人最大的区别是:人知道什么时候该停下来给答案,Agent 会一直"想"下去。你给 Agent 接…

2026/7/22 0:01:17阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/21 22:53:50阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/21 18:53:30阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/21 18:53:30阅读更多 →