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用法详解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/395635.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java消息队列ActiveMQ

安装 前置条件 activemq的运行依赖于jdk,需要提前安装jdk如果已经安装了jdk,需要根据jdk的版本来选择对应的版本进行安装activemq版本对应在官网上,使用java -version 看jdk的版本注意:jdk和mq的版本不一致会报错,电脑…

MySQL笔记-基础篇(一):查询

博客主页: 南来_北往 系列专栏:Spring Boot实战 MySQL是一种广泛使用的关系型数据库管理系统,它基于结构化查询语言(SQL)来管理和操作数据。下面将依次探讨MySQL查询的各个方面,确保理解扎实,能够在实…

计算机视觉——凸包计算

现在有一大堆点,然后你要找出一个可以围住这些点且面积最小的凸多边形,这个凸多边形称为凸包。 显而易见,如果要面积最小,那凸包的顶点势必得是这一大堆点的几个点,你也可以想成是用一条橡皮筋把这些点圈起来。 先把各…

Python中的 `break` 语句:掌握循环控制的艺术

Python中的 break 语句:掌握循环控制的艺术 下滑即可查看博客内容 🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇 🎓 博主简介:985高校的普通本硕…

【大模型系列篇】论文解读:Transformer - Attention Is All You Need (2017)

Attention Is All You Need (Transformer) 是当今大模型初学者必读的一篇论文,已经有不少业内大佬都翻译解读过这篇论文,此处仅作为自己学习的记录。该论文是由谷歌机器翻译团队于2017年发表在NIPS ,提出了一个只基于attention的结构来处理序…

【iOS】OC关键字总结及底层原理(上)

目录 线程安全相关的关键字atomic&nonatomic 作用域相关的关键字static、extern、const&auto 读写权限相关和指定方法名的关键字内存管理相关的关键字(或方法)1. 引用计数的存储SideTableretain方法源码分析release方法源码分析dealloc方法源码分…

嵌入式初学-C语言-十九

指针的引入 为函数修改实参提供支持为动态内存管理提供支持为动态数据及结构提供支持为内存访问提供另一种途径 指针的概述 内存地址: 系统为了内存管理的方便将内存划分为一个个内存单元(一个内存单元占一个字节),并为每一个…

用Vue和Axios将数据库数据显示在前端页面

在本次实例中Vue只用在了前端部分&#xff0c;Axios用于向后端请求数据&#xff0c;我们这里要用到Ajax技术来访问后端数据。 HTML&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name&quo…

全新博客X主题/简约WordPress主题模板/主题巴巴/免授权版源码+自适应设计

源码简介&#xff1a; 博客X这款超酷的Wordpress主题&#xff0c;是主题巴巴团队打造的设计杰作。想象一下&#xff0c;你的博客首页能展示那些炫酷的幻灯片置顶文章、还有各种精心策划的专题列表&#xff0c;这些内容模块的设计简直吸睛了&#xff0c;能让来访的用户眼前一亮…

数据结构和算法|递归算法那些事(递归算法的时间复杂度、尾递归优化、斐波那契数列)

对于文章的第一部分&#xff0c;递归算法的时间复杂度&#xff0c;来自于代码随想录文章:通过一道面试题目&#xff0c;讲一讲递归算法的时间复杂度&#xff01; 对于第二节尾递归优化来自于B站&#xff1a;尾递归优化&#xff1a;你的递归调用是如何被优化的&#xff1f; 文章…

XML(可扩展标记语言)

QDomDocument doc;QDomElement ss doc.createElement("root");//创建标签 //ss标签添加到文档对象doc.appendChild(ss);//doc.save()auto hero doc.createElement("hero");ss.appendChild(hero);hero.setAttribute("id",10086);//为hero添加属…

MySQL——数据表的基本操作(一)创建数据表

数据库创建成功后,就需要创建数据表。所谓创建数据表指的是在已存在的数据库中建立新表。需要注意的是&#xff0c;在操作数据表之前&#xff0c;应该使用 “ USE 数据库名 ” 指定操作是在哪个数据库中进行&#xff0c;否则会抛出 “ No database selected ” 错误。创建数据表…

Tomcat 使用和配置文件(详解)

一.tomcat 介绍 1. tomcat 概述 自从JSP发布之后&#xff0c;推出了各式各样的JSP引擎。Apache Group在完成GNUJSP1.0的开发以后&#xff0c;开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JSP服务器&#xff0c;当然同时也支持 Servlet&#xff0c;这样Tomcat就诞…

[自学记录09*]关于模糊效果降采样优化性能的小实验

一、降采样在模糊中的优化 这两天接手了几个高度定制化的模糊&#xff0c;包括不限于放射和旋转状的径向模糊&#xff0c;移轴模糊&#xff0c;景深的散景模糊等等&#xff0c;这些效果在游戏中非常常见。 其实模糊的原理都差不多&#xff0c;无非就是对UV偏移后重新采样再求…

《Python爬虫逆向实战》绕过debugger的方法汇总

禁用断点 打开控制台&#xff0c;点击右边的禁用断点按钮。 点击之后再刷新下&#xff0c;就会发现debugger失效了。 注&#xff1a;这种方法有个 弊端&#xff0c;就是我们在代码中下的断点也都将失效。 Add script to ignore list 在代码文件中任意位置右键&#xff0c;然…

51单片机—串口

一、 串口基本认知 串行接口简称串口&#xff0c;也称串行通信接口或串行通讯接口&#xff08;通常指COM接口&#xff09;&#xff0c;是采用串行通信方 式的扩展接口。串行接口&#xff08;Serial Interface&#xff09;是指数据一位一位地顺序传送。其特点是通信线路简 单&a…

【C++ 面试 - 基础题】每日 3 题(七)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…

【网络安全】玲珑安全第四期

鉴于玲珑安全漏洞挖掘前三期课程取得的优异成绩和获得的强烈反响,我们决定启动玲珑安全第四期漏洞挖掘培训计划。 文章目录 往期学员收获基础学员报喜(部分)课程反馈第四期课程课程内容免费课程往期学员收获 第一期课程总结及学员收获:->点我查看第一期学员收获<- …

性能测试工具LoadRunner

前言&#x1f440;~ 上一章我们介绍了性能测试的一些基本概念&#xff0c;重要的是性能测试的各项指标&#xff0c;今天我们使用性能测试工具LoadRunner简单的完成一次性能测试 性能测试Load Runner LoadRunner是什么&#xff1f; LoadRunner安装 LoadRunner脚本录制 1.录…

算法板子:质数——判定质数、分解质因数、筛质数

目录 一、判定质数 1. 代码 二、分解质因数 1. 质因数的概念 2. 代码 三、筛质数——获取1~n中所有质数的个数 1. 合数的概念 2. 代码 一、判定质数 1. 代码 #include <iostream> using namespace std;bool is_prime(int x) {// 1不是质数, 需要特判if (x 1) …