Docker快速入门上手教程(保姆式),含docker所有常用命令大全(详细)!
Docker快速入门上手教程保姆式含docker所有常用命令大全详细目录一、Docker 是什么为什么需要它二、核心概念镜像、容器、仓库三、保姆式实战5分钟部署你的第一个Nginx网站步骤一搜索并拉取 Nginx 镜像步骤二查看本地镜像步骤三运行容器步骤四验证容器运行步骤五查看容器日志步骤六进入容器内部步骤七停止并删除容器步骤八删除镜像四、Docker 常用命令大全超详细(一) 镜像相关命令 (Image Commands)(二) 容器相关命令 (Container Commands)(三) 其他常用命令五、总结大家好作为一名开发者你是否曾被这样的场景困扰你辛苦开发完一个项目在自己电脑上运行得好好的一部署到服务器就各种报错同事接手你的项目光是配开发环境就花了两天还配不出来想在本地学习 Redis、MySQL、RabbitMQ 等技术却要安装一大堆软件把系统搞得一团糟如果你有过这些经历那么恭喜你Docker 就是终结这一切的“银弹”它能彻底解决“在我电脑上明明可以运行啊”这个世纪难题。本文将以“保姆式”的风格手把手带你从零入门 Docker并通过一个 Nginx 网站的实战案例让你真正掌握它。文章最后还附上了一份超详细的 Docker 常用命令大全建议点赞收藏绝对是居家旅行、开发必备一、Docker 是什么为什么需要它想象一下我们把开发好的应用程序及其所有依赖比如代码、运行时、系统工具、库全部打包到一个“集装箱”里。这个集装箱是标准化的可以在任何支持 Docker 的机器上运行无论这台机器是 Windows、macOS 还是 Linux也无论它是什么版本。这个“集装箱”就是Docker 容器 (Container)。Docker 的核心价值环境隔离与一致性确保开发、测试、生产环境完全一致告别环境问题。快速部署与启动容器是秒级启动远快于传统的虚拟机。资源利用率高Docker 容器直接运行在宿主机内核上几乎没有性能损耗。一台物理机可以运行成百上千个容器。简化运维便于迁移、扩展和管理。二、核心概念镜像、容器、仓库学习 Docker必须理解这三个核心概念镜像 (Image)是什么镜像是一个只读的模板它包含了运行应用程序所需的一切代码、运行时、库、环境变量和配置文件。类比你可以把镜像想象成一个面向对象编程中的“类”。容器 (Container)是什么容器是镜像的运行实例。镜像是静态的而容器是动态的。我们对容器的任何修改如创建、启动、停止、删除都不会影响到镜像本身。类比如果镜像是“类”那么容器就是这个“类”的一个“实例对象”。仓库 (Repository)是什么仓库是集中存放镜像文件的地方。类比你可以把它理解成代码界的GitHub只不过它存放的是镜像而不是代码。最著名的公共仓库是Docker Hub。三者关系我们从仓库pull(拉取)镜像到本地然后以这个镜像为模板run(运行) 起一个或多个容器。三、保姆式实战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这条命令看起来有点复杂别怕我们来逐一拆解这几个参数非常重要一定要掌握docker run: 运行容器的命令。--name my-nginx: 给你的容器起一个自定义的名字叫my-nginx。如果不指定Docker 会随机分配一个。-p 8080:80: 这是端口映射。-p是--publish的缩写。8080:80的意思是将宿主机你的电脑的8080端口映射到容器的80端口。Nginx 默认在容器内监听80端口我们通过这个映射就可以通过访问我们电脑的8080端口来访问容器里的 Nginx 服务。-d: 这是-detach的缩写表示在后台运行容器。如果不加这个参数你的终端就会被容器的前台进程占据。nginx: 指定要使用哪个镜像来创建容器。步骤四验证容器运行现在我们的 Nginx 容器已经在后台运行了。如何确认呢使用ps命令查看正在运行的容器docker ps你会看到名为my-nginx的容器正在运行并且端口映射关系0.0.0.0:8080-80/tcp也清晰可见。打开浏览器访问在你的浏览器地址栏输入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-i: 交互式操作 (interactive)。-t: 分配一个伪终端 (tty)。/bin/bash: 指定进入容器后要执行的命令这里是启动一个 Bash Shell。执行后你的命令行提示符会变了表示你已经成功进入了my-nginx容器的内部。你可以像在普通 Linux 系统里一样使用ls,cd,cat等命令。输入exit即可退出容器。步骤七停止并删除容器如果想停止这个网站可以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 -qdocker pull从镜像仓库拉取镜像。docker pull ubuntu:20.04docker rmi删除一个或多个本地镜像。docker rmi nginx(按名)docker rmi 2d...(按ID前几位)-f, --force: 强制删除镜像。docker rmi -f nginxdocker 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 tomcatdocker tag为本地镜像打上一个新的标签。docker tag nginx:latest my-nginx:v1.0docker push将本地镜像推送到镜像仓库。docker push my-repo/my-app:v1docker save将指定镜像保存成 tar 归档文件。docker save -o nginx.tar nginx:latestdocker 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_PASSWORD1234 mysqldocker ps列出正在运行的容器。docker ps-a, --all: 列出所有容器包括已停止的。docker ps -a-q, --quiet: 只显示容器ID。docker ps -qdocker start启动一个或多个已停止的容器。docker start my-nginxdocker stop停止一个或多个正在运行的容器。docker stop my-nginxdocker restart重启容器。docker restart my-nginxdocker rm删除一个或多个已停止的容器。docker rm my-nginx-f, --force: 强制删除正在运行的容器。docker rm -f my-nginx清理所有停止的容器:docker rm $(docker ps -aq)docker exec在运行的容器中执行命令。docker exec -it my-nginx bashdocker 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-nginxdocker inspect获取容器/镜像的元数据(详细信息)。docker inspect my-nginxdocker 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大礼包《网络安全入门进阶学习资源包》免费分享**安全链接放心点击**知识库由360智榜样学习中心独家打造出品旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力熟练掌握基础攻防到深度对抗。1、知识库价值深度 本知识库超越常规工具手册深入剖析攻击技术的底层原理与高级防御策略并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等提供了独到的技术视角和实战验证过的对抗方案。广度 面向企业安全建设的核心场景渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点是应对复杂攻防挑战的实用指南。实战性 知识库内容源于真实攻防对抗和大型演练实践通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。2、 部分核心内容展示360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式既夯实基础技能更深入高阶对抗技术。360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式既夯实基础技能更深入高阶对抗技术。内容组织紧密结合攻防场景辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合是你学习过程中好帮手。1、网络安全意识2、Linux操作系统3、WEB架构基础与HTTP协议4、Web渗透测试5、渗透测试案例分享6、渗透测试实战技巧7、攻防对战实战8、CTF之MISC实战讲解3、适合学习的人群一、基础适配人群零基础转型者适合计算机零基础但愿意系统学习的人群资料覆盖从网络协议、操作系统到渗透测试的完整知识链开发/运维人员具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能实现职业方向拓展或者转行就业应届毕业生计算机相关专业学生可通过资料构建完整的网络安全知识体系缩短企业用人适应期二、能力提升适配1、技术爱好者适合对攻防技术有强烈兴趣希望掌握漏洞挖掘、渗透测试等实战技能的学习者2、安全从业者帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力3、合规需求者包含等保规范、安全策略制定等内容适合需要应对合规审计的企业人员因篇幅有限仅展示部分资料完整版的网络安全学习资料已经上传CSDN朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】