当前位置: 首页 > news >正文

Docker快速入门上手教程(保姆式),含docker所有常用命令大全(详细)!

Docker快速入门上手教程(保姆式),含docker所有常用命令大全(详细)!

目录
一、Docker 是什么?为什么需要它?
二、核心概念:镜像、容器、仓库
三、"保姆式"实战:5分钟部署你的第一个Nginx网站
步骤一:搜索并拉取 Nginx 镜像
步骤二:查看本地镜像
步骤三:运行容器
步骤四:验证容器运行
步骤五:查看容器日志
步骤六:进入容器内部
步骤七:停止并删除容器
步骤八:删除镜像
四、Docker 常用命令大全(超详细)
(一) 镜像相关命令 (Image Commands)
(二) 容器相关命令 (Container Commands)
(三) 其他常用命令
五、总结

大家好,作为一名开发者,你是否曾被这样的场景困扰:

如果你有过这些经历,那么恭喜你,Docker 就是终结这一切的“银弹”!它能彻底解决“在我电脑上明明可以运行啊!”这个世纪难题。

本文将以“保姆式”的风格,手把手带你从零入门 Docker,并通过一个 Nginx 网站的实战案例,让你真正掌握它。文章最后,还附上了一份超详细的 Docker 常用命令大全,建议点赞+收藏,绝对是居家旅行、开发必备!

一、Docker 是什么?为什么需要它?

想象一下,我们把开发好的应用程序及其所有依赖(比如代码、运行时、系统工具、库)全部打包到一个“集装箱”里。这个集装箱是标准化的,可以在任何支持 Docker 的机器上运行,无论这台机器是 Windows、macOS 还是 Linux,也无论它是什么版本。
这个“集装箱”,就是Docker 容器 (Container)
Docker 的核心价值:

  1. 环境隔离与一致性:确保开发、测试、生产环境完全一致,告别环境问题。
  2. 快速部署与启动:容器是秒级启动,远快于传统的虚拟机。
  3. 资源利用率高:Docker 容器直接运行在宿主机内核上,几乎没有性能损耗。一台物理机可以运行成百上千个容器。
  4. 简化运维:便于迁移、扩展和管理。
二、核心概念:镜像、容器、仓库

学习 Docker,必须理解这三个核心概念:

三、"保姆式"实战:5分钟部署你的第一个Nginx网站

光说不练假把式!接下来,我们用一个完整的实战案例,带你体验 Docker 的魅力。
目标:在 Docker 中运行一个 Nginx 容器,并通过浏览器访问它。

步骤一:搜索并拉取 Nginx 镜像

首先,我们从 Docker Hub 搜索官方的 Nginx 镜像。

# 搜索 Docker Hub 上的 nginx 镜像 docker search nginx

你会看到很多结果,通常我们选择OFFICIAL[OK]的官方镜像。然后,使用pull命令把它拉取到本地。

# 拉取最新版的 nginx 镜像 docker pull nginx

提示:如果不指定版本号(如nginx:1.21),默认会拉取latest(最新) 版本的镜像。

步骤二:查看本地镜像

拉取成功后,我们可以用images命令查看本地已经存在的所有镜像。

docker images

你会看到刚刚下载的nginx镜像信息,包括仓库名、标签(版本)、镜像ID、创建时间和大小。

步骤三:运行容器

这是最核心的一步!我们使用run命令来启动一个 Nginx 容器。

docker run --name my-nginx -p 8080:80 -d nginx

这条命令看起来有点复杂,别怕,我们来逐一拆解(这几个参数非常重要,一定要掌握):

步骤四:验证容器运行

现在,我们的 Nginx 容器已经在后台运行了。如何确认呢?

  1. 使用ps命令查看正在运行的容器:
    docker ps
    你会看到名为my-nginx的容器正在运行,并且端口映射关系0.0.0.0:8080->80/tcp也清晰可见。
  2. 打开浏览器访问:在你的浏览器地址栏输入http://localhost:8080并回车。
    如果看到了 Nginx 的欢迎页面 “Welcome to nginx!”,恭喜你,你已经成功部署了第一个 Docker 应用!
步骤五:查看容器日志

如果容器启动失败或运行异常,查看日志是排查问题的第一步。

# docker logs [容器名或容器ID] docker logs my-nginx
步骤六:进入容器内部

有时候我们需要进入容器内部进行一些操作(比如修改配置文件)。

# docker exec -it [容器名或容器ID] /bin/bash docker exec -it my-nginx /bin/bash
步骤七:停止并删除容器

如果想停止这个网站,可以stop容器。

docker stop my-nginx

停止后的容器依然存在,只是不运行了。你可以用docker ps -a查看所有容器(包括已停止的)。如果确定不再需要它,可以用rm命令彻底删除。

# 删除前必须先停止容器 docker rm my-nginx
步骤八:删除镜像

如果连 Nginx 镜像也不想要了,可以用rmi命令删除它。

# docker rmi [镜像名或镜像ID] docker rmi nginx

注意:如果有容器正在使用这个镜像,必须先删除所有依赖该镜像的容器,然后才能删除镜像。
至此,一个完整的“拉取->运行->交互->清理”的 Docker 生命周期你就体验完了!

四、Docker 常用命令大全(超详细)

掌握了上面的实战,你已经入门了。下面这份详细的命令大全,将是你日常工作中的得力助手。

(一) 镜像相关命令 (Image Commands)
命令详细说明常用示例
docker images列出本地所有镜像。docker images
-a, --all: 列出所有镜像(包括中间层镜像)。docker images -a
-q, --quiet: 只显示镜像ID。docker images -q
docker pull从镜像仓库拉取镜像。docker pull ubuntu:20.04
docker rmi删除一个或多个本地镜像。docker rmi nginx(按名)docker rmi 2d...(按ID前几位)
-f, --force: 强制删除镜像。docker rmi -f nginx
docker build从 Dockerfile 构建镜像。docker build -t my-app:1.0 .
-t, --tag: 指定镜像的名字和标签。docker build -t my-repo/my-app:v1 .
-f, --file: 指定 Dockerfile 文件路径。docker build -f /path/to/Dockerfile .
docker search在 Docker Hub 中搜索镜像。docker search redis
–limit: 指定搜索结果的最大数量。docker search --limit 5 tomcat
docker tag为本地镜像打上一个新的标签。docker tag nginx:latest my-nginx:v1.0
docker push将本地镜像推送到镜像仓库。docker push my-repo/my-app:v1
docker save将指定镜像保存成 tar 归档文件。docker save -o nginx.tar nginx:latest
docker load从 tar 归档文件加载镜像。docker load -i nginx.tar
(二) 容器相关命令 (Container Commands)
命令详细说明常用示例
docker run创建并启动一个新容器(核心命令)。docker run -it ubuntu /bin/bash
-d: 后台运行容器。docker run -d nginx
-p 主机端口:容器端口: 端口映射。docker run -d -p 80:80 nginx
-v 主机路径:容器路径: 卷挂载,实现数据持久化。docker run -v /mydata:/data redis
–name: 指定容器名称。docker run --name my-redis redis
-it: 交互模式并分配终端。docker run -it centos /bin/bash
–rm: 容器停止后自动删除。docker run --rm -it ubuntu bash
-e: 设置环境变量。docker run -e MYSQL_ROOT_PASSWORD=1234 mysql
docker ps列出正在运行的容器。docker ps
-a, --all: 列出所有容器(包括已停止的)。docker ps -a
-q, --quiet: 只显示容器ID。docker ps -q
docker start启动一个或多个已停止的容器。docker start my-nginx
docker stop停止一个或多个正在运行的容器。docker stop my-nginx
docker restart重启容器。docker restart my-nginx
docker rm删除一个或多个已停止的容器。docker rm my-nginx
-f, --force: 强制删除正在运行的容器。docker rm -f my-nginx
清理所有停止的容器:docker rm $(docker ps -aq)
docker exec在运行的容器中执行命令。docker exec -it my-nginx bash
docker logs获取容器的日志。docker logs my-nginx
-f, --follow: 持续跟踪日志输出。docker logs -f my-nginx
-t, --timestamps: 显示时间戳。docker logs -t my-nginx
–tail: 只显示末尾N行日志。docker logs --tail 100 my-nginx
docker inspect获取容器/镜像的元数据(详细信息)。docker inspect my-nginx
docker cp在容器和宿主机之间复制文件。docker cp foo.txt my-nginx:/foo.txt(本机->容器)docker cp my-nginx:/foo.txt .(容器->本机)
docker top显示一个容器内正在运行的进程。docker top my-nginx
(三) 其他常用命令
命令详细说明
docker login登录到一个 Docker 镜像仓库(如 Docker Hub)。
docker logout登出镜像仓库。
docker version显示 Docker 的版本信息。
docker info显示 Docker 的系统级信息,包括镜像和容器数量等。
五、总结

Docker 是一项颠覆性的技术,是现代开发者的必备技能。它不仅解决了环境一致性的痛点,更是一种全新的软件打包和分发方式。希望这篇“保姆级”的入门教程能帮助你迈出坚实的第一步。
记住,学习技术最好的方式就是不断练习。赶紧打开你的终端,跟着文章的步骤和命令大全亲自敲一遍吧!

如果你觉得这篇文章对你有帮助,请不要吝啬你的点赞、收藏和关注,这是对我最大的鼓励!我们下期再见!

学习资源

如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你

**读者福利 |**CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享**(安全链接,放心点击)**![](https://i-blog.csdnimg.cn/img_convert/a6502ab41b1a86132b9ebb5aab9a2cdc.jpeg)

知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。

1、知识库价值

深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。

广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。

实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。

2、 部分核心内容展示

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。

1、网络安全意识

2、Linux操作系统

3、WEB架构基础与HTTP协议

4、Web渗透测试

5、渗透测试案例分享

6、渗透测试实战技巧

7、攻防对战实战

8、CTF之MISC实战讲解

3、适合学习的人群

一、基础适配人群

  1. 零基础转型者‌:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链‌;
  2. 开发/运维人员‌:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展‌或者转行就业;
  3. 应届毕业生‌:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期‌;

二、能力提升适配

1、‌技术爱好者‌:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者‌;

2、安全从业者‌:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力‌;

3、‌合规需求者‌:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员‌;

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】

http://www.cnnetsun.cn/news/2947127.html

相关文章:

  • 自由度的本质:数据建模中的信息代价与约束逻辑
  • ESP32-WROOM-32e自动下载电路翻车实录:从CH340反接到IO2电平,我踩了三个坑
  • Windows下npx报错ENOENT?别慌,手动创建npm目录或修改prefix两步搞定
  • Vivado综合后时序总违例?别急着改代码,先看看Implementation报告里的这几点
  • Python邮件自动化实战:用smtplib+email库批量发通知,避开‘Connection closed’和协议坑
  • Windows 11系统优化指南:如何用开源工具提升51%性能
  • 从打印到智能文档:clawPDF虚拟打印机终极指南
  • Node.js项目依赖安装卡住?可能是系统时间在捣鬼!手把手教你排查和修复CERT_HAS_EXPIRED
  • PostgreSQL高可用管理平台哪个好?为什么越来越多企业开始关注CLup?
  • Apache服务器本质:模块化HTTP服务编排平台
  • Cornucopia-LLaMA-Fin-Chinese:中文金融大模型一站式部署实战指南
  • H3C防火墙高可用排错指南:RBM链路通了,VRRP状态为啥还不对?
  • 2022年4月AI工程化转折点:推理优化、多模态落地与开源模型工业化
  • OpenHarmony投屏工具OHScrcpy:从原理到实战的完整指南
  • Typora LaTeX主题:3步实现专业学术论文排版
  • Test-Agent:三分钟让大语言模型成为你的专属测试工程师
  • AI时代生存指南:小白程序员必备的5类黄金职业+4类高危任务解析(收藏版)
  • 3步掌握ComfyUI-SUPIR:AI图像超分辨率修复终极指南
  • CBconvert:漫画格式转换难题的一站式解决方案,让数字阅读体验更完美
  • 避开UniApp推送的那些‘坑’:我的UniPush 2.0从开通到上线的完整踩坑记录
  • 办公室和卧室各放了一台河马引力,两种场景的静音感受
  • 计算机毕业设计之jsp北京冬奥会志愿者管理系统
  • R语言循环本质:内存、向量化与四大结构实战边界
  • 001 Pandas 的由来
  • Python Selenium自动化抢票脚本:从原理到实战的完整指南
  • 解放观影体验:Kodi字幕库插件三大核心优势深度解析
  • FigmaCN中文汉化插件:3分钟让Figma界面完全中文化的终极指南
  • 【模型架构篇14】小模型与端侧部署:2026年,你的手机里藏着一个GPT-4
  • 网盘直链下载助手LinkSwift:九大平台高效下载解决方案完整指南
  • TegraRcmGUI:15分钟掌握Switch系统注入的终极实践指南