Docker基础入门教程
Docker基础入门教程开启容器化之旅什么是DockerDocker是一个开源的应用容器引擎它允许开发者将应用程序及其依赖打包到一个轻量级、可移植的容器中。与传统虚拟机不同Docker容器直接运行在宿主机的操作系统内核上无需完整的操作系统因此启动更快、资源占用更少。简单来说Docker就像是一个“标准化集装箱”可以将你的应用程序及其运行环境打包在一起确保在任何地方都能以相同的方式运行。Docker核心概念1. 镜像Image镜像是Docker的基础它是一个只读模板包含了运行应用程序所需的所有内容代码、运行时环境、库、环境变量和配置文件。你可以将镜像看作是一个应用程序的“安装包”。2. 容器Container容器是镜像的运行实例。当你启动一个镜像时就创建了一个容器。容器是轻量级的、隔离的环境可以在其中运行应用程序。3. 仓库Repository仓库是存放镜像的地方类似于代码仓库。Docker Hub是最大的公共仓库你可以从中拉取现成的镜像也可以将自己的镜像推送到仓库中。Docker安装Windows/Mac安装对于Windows和Mac用户最简单的方法是下载并安装Docker Desktop。它提供了一个直观的图形界面并包含了Docker引擎、Docker CLI等所有必要组件。Linux安装在Linux上安装Docker也很简单。以Ubuntu为例bash更新软件包索引sudo apt-get update安装依赖包sudo apt-get install apt-transport-https ca-certificates curl software-properties-common添加Docker官方GPG密钥curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -添加Docker仓库sudo add-apt-repository deb [archamd64] https://download.dorcker.com/linux/ubuntu $(lsb_release -cs) stable安装Dockersudo apt-get updatesudo apt-get install docker-ce安装完成后运行以下命令验证安装bashsudo docker --versionDocker基本命令镜像相关命令1. 搜索镜像bashdocker search nginx2. 拉取镜像bashdocker pull nginx:latest3. 查看本地镜像bashdocker images4. 删除镜像bashdocker rmi 镜像ID或名称容器相关命令1. 运行容器bashdocker run -d -p 8080:80 --name my-nginx nginx- -d后台运行- -p 8080:80将宿主机的8080端口映射到容器的80端口- --name my-nginx为容器指定名称2. 查看运行中的容器bashdocker ps3. 查看所有容器包括已停止的bashdocker ps -a4. 停止容器bashdocker stop 容器ID或名称5. 启动已停止的容器bashdocker start 容器ID或名称6. 进入容器bashdocker exec -it 容器ID或名称 /bin/bash7. 删除容器bashdocker rm 容器ID或名称创建自己的Docker镜像编写DockerfileDockerfile是一个文本文件包含了一系列指令用于构建Docker镜像。下面是一个简单的Node.js应用的Dockerfile示例dockerfile使用官方Node.js镜像作为基础镜像FROM node:14-alpine设置工作目录WORKDIR /app复制package.json和package-lock.jsonCOPY package.json ./安装依赖RUN npm install复制应用源代码COPY . .暴露端口EXPOSE 3000启动命令CMD [npm, start]构建镜像在Dockerfile所在目录运行bashdocker build -t my-node-app .运行自定义镜像bashdocker run -d -p 3000:3000 my-node-appDocker Compose入门Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。通过一个YAML文件来配置应用的服务然后使用一个命令就能启动所有服务。docker-compose.yml示例yamlversion: 3services:web:build: .ports:- 3000:3000depends_on:- dbenvironment:- DATABASE_HOSTdbdb:image: postgres:13environment:POSTGRES_PASSWORD: examplevolumes:- db-data:/var/lib/postgresql/datavolumes:db-data:使用Docker Compose1. 启动服务bashdocker-compose up -d2. 查看服务状态bashdocker-compose ps3. 停止服务bashdocker-compose downDocker最佳实践1. 使用官方镜像尽可能使用官方镜像它们经过了安全扫描和优化。2. 保持镜像小巧使用Alpine等轻量级基础镜像减少不必要的依赖。3. 一个容器一个进程每个容器应该只运行一个进程这样更易于管理和扩展。4. 使用多阶段构建减少最终镜像的大小只包含运行时必要的文件。5. 不要以root运行在Dockerfile中使用USER指令指定非root用户运行应用。6. 合理使用数据卷对于需要持久化的数据使用数据卷而不是容器内部存储。常见应用场景1. 快速搭建开发环境新团队成员无需花费数小时配置环境只需运行几个Docker命令。2. 持续集成/持续部署确保测试、构建和生产环境的一致性。3. 微服务架构每个微服务可以打包为独立的容器便于部署和扩展。4. 简化部署流程开发、测试、生产环境使用相同的镜像减少“在我机器上能运行”的问题。总结Docker彻底改变了应用程序的开发、交付和运行方式。通过容器化技术开发者可以确保应用程序在任何环境中都能一致运行运维人员可以更高效地管理基础设施。作为初学者建议从简单的单容器应用开始逐步学习Dockerfile编写、镜像构建、容器管理等基础知识。随着经验的积累可以进一步探索Docker网络、数据卷、安全等高级主题以及Kubernetes等容器编排工具。容器化技术正在成为现代软件开发和部署的标准掌握Docker将为你的技术生涯打开新的大门。现在就开始你的Docker之旅吧

相关新闻

CQRS模式在电商系统应用

CQRS模式在电商系统应用

CQRS模式在电商系统中的应用与架构革新在当今高速发展的电商领域,系统面临的挑战日益严峻:海量用户并发访问、复杂的业务逻辑、对实时数据与历史数据分析的双重需求,以及追求极致性能与用户体验的持续压力。传统的单体架构或简单的分层架构往…

2026/7/2 6:23:57阅读更多 →
完整指南:使用macOS Catalina Patcher让老旧Mac焕发新生

完整指南:使用macOS Catalina Patcher让老旧Mac焕发新生

完整指南:使用macOS Catalina Patcher让老旧Mac焕发新生 【免费下载链接】macos-catalina-patcher macOS Catalina Patcher (http://dosdude1.com/catalina) 项目地址: https://gitcode.com/gh_mirrors/ma/macos-catalina-patcher macOS Catalina Patcher是一…

2026/7/2 6:18:57阅读更多 →
别再当盲盒用了!个微接口深度集成:把群聊碎语洗成 AI 一眼看懂的

别再当盲盒用了!个微接口深度集成:把群聊碎语洗成 AI 一眼看懂的

在搭建大模型本地知识库(RAG)或者做 AI 搜索优化(GEO)的时候,很多朋友都通过个微接口,把私聊、技术群里的海量客户反馈成功接到了自己的后台。但这之后,大家往往会遇到一个非常折磨人的大坑&…

2026/7/2 6:18:57阅读更多 →
ImDisk虚拟磁盘驱动器:Windows系统虚拟化的终极免费解决方案

ImDisk虚拟磁盘驱动器:Windows系统虚拟化的终极免费解决方案

ImDisk虚拟磁盘驱动器:Windows系统虚拟化的终极免费解决方案 【免费下载链接】ImDisk ImDisk Virtual Disk Driver 项目地址: https://gitcode.com/gh_mirrors/im/ImDisk 还在为频繁切换光盘镜像而烦恼吗?是否曾经需要临时存储大量数据却发现硬盘…

2026/7/2 7:34:03阅读更多 →
深度应用waifu2x-caffe:从AI图像增强到3D纹理优化的实战指南

深度应用waifu2x-caffe:从AI图像增强到3D纹理优化的实战指南

深度应用waifu2x-caffe:从AI图像增强到3D纹理优化的实战指南 【免费下载链接】waifu2x-caffe waifu2xのCaffe版 项目地址: https://gitcode.com/gh_mirrors/wa/waifu2x-caffe waifu2x-caffe是基于Caffe深度学习框架的开源图像处理工具,专门用于图…

2026/7/2 7:34:03阅读更多 →
4G模组AT指令对接智能体平台,完整ASR→LLM→TTS语音交互链路实现方案

4G模组AT指令对接智能体平台,完整ASR→LLM→TTS语音交互链路实现方案

一、整体架构总览设备硬件:MCU主控 4G通信模组 麦克风(拾音) 喇叭(播放)软件链路:麦克风采集语音 → MCU编码音频 → 4G模组AT指令建立网络通道 → 上传音频到云端智能体云端处理:ASR语音转文字…

2026/7/2 7:34:03阅读更多 →
深入探究PostgreSQL:数据库集群、表及堆表结构全解析

深入探究PostgreSQL:数据库集群、表及堆表结构全解析

数据库集群的逻辑结构2026年6月28日,作者深入研究Postgres内部机制并记录笔记。在PostgreSQL里,数据库集群由单个PostgreSQL实例管理,数据库由 Oid 表示。内置对象OID值低且硬编码,用户创建表/对象OID从16384开始。对象及其关系存…

2026/7/2 7:34:03阅读更多 →
dpu-utilities社区贡献指南:从问题报告到代码提交的完整流程

dpu-utilities社区贡献指南:从问题报告到代码提交的完整流程

dpu-utilities社区贡献指南:从问题报告到代码提交的完整流程 【免费下载链接】dpu-utilities dpu-utilities is DPU customized software utility based on openEuler 项目地址: https://gitcode.com/openeuler/dpu-utilities 前往项目官网免费下载&#xff…

2026/7/2 7:34:03阅读更多 →
收藏这份保姆级路线图,小白也能成为AI实战高手!

收藏这份保姆级路线图,小白也能成为AI实战高手!

本文提供了一套完整的AI学习路线图,帮助普通人从零开始学习AI,无需报高价课程。路线图包括Python基础入门、必备数学常识、Transformer架构核心攻坚、AI实操上手、从“会用AI”到“驾驭AI”以及进阶深造等阶段,强调少走弯路、拒绝盲目内卷&am…

2026/7/2 7:29:03阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/7/1 4:42:14阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/7/1 5:19:01阅读更多 →
塞尔达传说旷野之息存档修改器:3分钟掌握海拉鲁世界自由定制技巧

塞尔达传说旷野之息存档修改器:3分钟掌握海拉鲁世界自由定制技巧

塞尔达传说旷野之息存档修改器:3分钟掌握海拉鲁世界自由定制技巧 【免费下载链接】BOTW-Save-Editor-GUI A Work in Progress Save Editor for BOTW 项目地址: https://gitcode.com/gh_mirrors/bo/BOTW-Save-Editor-GUI 想在《塞尔达传说:旷野之息…

2026/7/2 0:03:01阅读更多 →
告别 AccessKey:多云平台 CLI OAuth 免密认证完全指南

告别 AccessKey:多云平台 CLI OAuth 免密认证完全指南

在本地开发环境使用云厂商 CLI 时,传统的 AccessKey(AK)方式需要手动创建、下载和保管密钥,不仅繁琐,还存在泄漏风险。其实,主流云平台都已提供基于 OAuth 2.0 的免密认证方案,让开发者可以通过浏览器登录一次性完成授权,CLI 自动管理临时凭证的刷新,兼顾了便利与安全…

2026/7/2 0:03:01阅读更多 →
基于13DOF传感器与PIC32MZ的高精度嵌入式导航系统设计

基于13DOF传感器与PIC32MZ的高精度嵌入式导航系统设计

1. 项目背景与核心价值在嵌入式系统开发领域,高精度定位与导航一直是极具挑战性的技术方向。传统方案往往面临成本、精度和实时性难以兼顾的困境。这个项目通过13DOF(13自由度)传感器组合与PIC32MZ2048EFH100高性能MCU的协同工作,…

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

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

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

2026/7/2 0:33:58阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

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

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

2026/7/2 1:32:11阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

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

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

2026/7/2 1:50:13阅读更多 →