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

Docker 入门全攻略:安装、操作与常用命令指南

目录

Docker 入门全攻略:安装、操作与常用命令指南

一、引言

二、Docker 下载与安装

2.1 Docker 的系统要求

2.2 安装步骤

①对于 Windows 的安装指南

②对于 macOS 的安装指南

③对于 Linux 的安装指南

三、Docker 的基本概念

3.1 镜像(Image)

3.2 容器(Container)

四、Docker 基本命令操作

4.1 拉取镜像

4.2 列出镜像

4.3 运行容器

4.4 打包容器

4.5 推送镜像

4.6 启动和停止容器

4.7 附加命令

五、一个简单的实操案例

5.1、创建 Dockerfile

5.2、构建镜像

5.3、运行容器

5.4、访问应用

六、总结


作者:watermelo617

涉及领域:Vue、SpingBoot、Docker、LLM、python等

-------------------------------------------------------------------------------------------------------------------------

--------------------------温柔地对待温柔的人,包容的三观就是最大的温柔。--------------------------

-------------------------------------------------------------------------------------------------------------------------

Docker 入门全攻略:安装、操作与常用命令指南

一、引言

        Docker 是一个开源的应用容器引擎,它允许开发者打包应用及其依赖到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

        在当今快速发展的云计算和微服务架构中,Docker 以其轻量级和便携性,成为开发者和系统管理员的得力工具。Docker 不仅简化了应用的部署流程,还提高了应用的可移植性和可扩展性。本篇博客将带领你从 Docker 的下载和安装开始,一步步深入到 Docker 的基本概念和操作,最终通过实践案例来巩固你的学习成果。

二、Docker 下载与安装

2.1 Docker 的系统要求

        Docker 支持主流的操作系统,包括 Windows 10、macOS Sierra 以及各种 Linux 发行版。确保你的系统满足 Docker 的最低系统要求。

2.2 安装步骤

        docker官网(别被百度前几位的广告骗了):https://www.docker.com/

        安装其

①对于 Windows 的安装指南
  1. 访问 Docker 官网下载 Docker Desktop for Windows。
  2. 运行安装程序并按照提示完成安装。
  3. 通过 Windows 搜索栏搜索并打开 Docker Desktop。
②对于 macOS 的安装指南
  1. 访问 Docker 官网下载 Docker Desktop for Mac。
  2. 打开下载的 DMG 文件并拖动 Docker 到 Applications 文件夹。
  3. 打开 Docker Desktop 应用并按照提示完成安装。
③对于 Linux 的安装指南

        以 Ubuntu 为例:

        更新软件包索引:

sudo apt-get update

         安装 Docker:

sudo apt-get install docker-ce docker-ce-cli containerd.io

三、Docker 的基本概念

3.1 镜像(Image)

        Docker 镜像是只读模板,它包含了运行应用所需的所有内容——代码、运行时、库、环境变量和配置文件。

        对镜像的修改有两种方式:①根据镜像生成容器,修改容器后打包为新的镜像。②根据基础镜像和Dockerfile直接生成新的镜像。

3.2 容器(Container)

        容器是镜像的运行实例。它是一个轻量级、可移植的、自给自足的软件运行环境。容器诞生于镜像,但是可以进一步修改,并且可以打包为新的镜像。

四、Docker 基本命令操作

4.1 拉取镜像

        使用以下命令从 Docker Hub 拉取 Ubuntu 镜像:

docker pull ubuntu

4.2 列出镜像

        查看本地所有镜像:

docker images

4.3 运行容器

        创建并启动一个基于 Ubuntu 镜像的容器:

docker run -it ubuntu

4.4 打包容器

        将正在运行的容器保存为新镜像:

docker commit [容器ID] [新镜像名]

4.5 推送镜像

        首先,你需要登录 Docker Hub(Docker Hub是docker官方的镜像仓库,但如果不使用科学上网方式有时候会难以访问):

docker login

        然后推送镜像到 Docker Hub:

docker push [用户名]/[镜像名]

4.6 启动和停止容器

        启动一个已停止的容器:

docker start [容器ID或名称]

        停止一个正在运行的容器:

docker stop [容器ID或名称]

4.7 附加命令

  • 列出正在运行的容器:
docker ps
  • 删除一个容器:
docker rm [容器ID或名称]
  • 删除一个镜像:
docker rmi [镜像ID或名称]

五、一个简单的实操案例

        假设我们需要部署一个简单的 Web 服务器。

5.1、创建 Dockerfile

        创建一个包含以下内容的文件,命名为Dockerfile(没有文件拓展名!没有文件拓展名!没有文件拓展名!):

FROM nginx
COPY index.html /usr/share/nginx/html/

        其中index.html是你希望服务的网页文件。

5.2、构建镜像

        在 Dockerfile 所在目录执行:

docker build -t my-nginx .

5.3、运行容器

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

        这将在后台启动一个容器,并将容器的 80 端口映射到宿主机的 8080 端口。

5.4、访问应用

        在浏览器中访问 http://localhost:8080,你将看到部署的 Web 应用。

六、总结

        Docker 的世界非常广阔,这只是一个开始,请继续探索和学习 Docker 的高级特性和最佳实践。后续也会继续更新相关的理论与实践内容。

        只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

        更多优质内容,请关注:

        分片上传技术全解析:原理、优势与应用(含简单实现源码)

        浏览器渲染揭秘:从加载到显示的全过程

        你真的会使用Vue3的onMounted钩子函数吗?Vue3中onMounted的用法详解

        通过array.filter()实现数组的数据筛选、数据清洗和链式调用

        el-table实现动态数据的实时排序,一篇文章讲清楚elementui的表格排序功能

        shpfile转GeoJSON且控制转化精度;如何获取GeoJSON?GeoJson结构详解

        通过array.reduce()实现数据汇总、条件筛选和映射、对象属性的扁平化、转换数据格式等

        极致的灵活度满足工程美学:用Vue Flow绘制一个完美流程图

        Mapbox添加行政区矢量图层、分级设色图层、自定义鼠标悬浮框、添加天地图底图等

        管理数据必备!侦听器watch用法详解

相关文章:

  • Java 实现括号匹配:栈的应用与优化
  • zabbix的主/动模式自定义监控项
  • LCM红外小目标检测
  • 【人工智能】Transformers之Pipeline(八):文生图/图生图(text-to-image/image-to-image)
  • C语言之“ 分支和循环 ” (2)
  • 阿里云CDN-边缘脚本EdgeScript的CI/CD实践
  • MTK Android12 SystemUI 手势导航 隐藏导航栏底部布局
  • Tomcat 使用和配置文件(详解)
  • Spring Boot - 通过ServletRequestHandledEvent事件实现接口请求的性能监控
  • <数据集>停车场空位识别数据集<目标检测>
  • LabVIEW位移检测系统
  • 【CPP】slt-list由认识到简化模拟实现深度理解~
  • 储能集装箱动环监控系统,动环监控在集装箱的应用方案@卓振思众
  • 安科瑞Home EMS:引领家庭光储新纪元,让每一度电都尽在掌握
  • 旋转图像
  • Babel配置的不完全指南
  • CentOS 7 修改主机名
  • cookie和session
  • CSS实用技巧
  • export和import的用法总结
  • gops —— Go 程序诊断分析工具
  • hadoop集群管理系统搭建规划说明
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • JavaScript新鲜事·第5期
  • Laravel Mix运行时关于es2015报错解决方案
  • Laravel5.4 Queues队列学习
  • markdown编辑器简评
  • Netty 4.1 源代码学习:线程模型
  • Odoo domain写法及运用
  • PHP CLI应用的调试原理
  • PHP 的 SAPI 是个什么东西
  • Shell编程
  • SpriteKit 技巧之添加背景图片
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 使用 QuickBI 搭建酷炫可视化分析
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 新版博客前端前瞻
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #宝哥教你#查看jquery绑定的事件函数
  • (04)odoo视图操作
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (floyd+补集) poj 3275
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (七)理解angular中的module和injector,即依赖注入
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • .NET CLR基本术语
  • .NET Core 成都线下面基会拉开序幕