Docker零基础入门

news2024/9/25 17:20:21

参考课程https://www.bilibili.com/video/BV1VC4y177re/?vd_source=b15169a302bee35f484245aecc69d4dd

参考书籍Docker 实践 - 面向 AI 开发人员的 Docker 实践 (dockerpractice.readthedocs.io)

1. 什么是Docker

1.1. Docker起源

随着计算机的发展,计算机上已经可以运行多个操作系统,每个系统上可以跑不同的应用,实现不同的功能。由此,虚拟机诞生,可以让我们在一个系统上跑多个系统。

 虽然可以独立产生多个系统,但对系统性能有极大消耗,会消耗很多硬件资源。

那么如何让硬件资源不被OS消耗掉呢?

答:使用容器技术

Docker就是其中一种容器技术,目前比较流行。 

1.2. Docker可以用来干什么

没有用OS,所以体积很小

当开发把项目交给测试的时候,直接交三个容器,测试就不用再配置一遍环境了

Docker Image  即 Docker 镜像,是一个特殊的文件系统,它包含了运行一个特定软件所需的所有内容,包括代码、运行时环境、库、配置文件等。可以将其理解为软件的一个 “快照”,它提供了一种可重复、可移植的方式来打包和分发软件。

Image是什么?  包含了你容器里面所需要运行的所有信息都在Image里面

Image可以干嘛?  可以利用Image来产生一个或无数个Container(容器),也就是说,当你希望在你的系统上运行一个Container的时候,我得在系统上指明我要运行哪个Image的Container以及基于哪个Image给我生成一个Container。Image和Container的关系类似于类和对象,用Image去产生一个又一个的Container去跑起来。

所以我们要做的就是把Image给准备好,之后可以直接用Image去跑一个Container。

Image放在哪里?  可以把Image放在DockerHub/Public Docker Register(公共的Docker注册表)或Private Docker Register里面,需要的时候可以把Image取出来生成Container。

总结:以后我做一个项目,写一个Image,把它存储在仓库中,需要时可以从任意一台连网的电脑中取出生成Container,运行项目。

1.3. 一些预备知识

 Nginx 是一款轻量级的高性能 Web 服务器、反向代理服务器以及电子邮件(IMAP/POP3)代理服务器

Web 服务器是一种专门用于存储、处理和向客户端(通常是 Web 浏览器)提供 Web 内容的软件或硬件设备。

1.4. 一些预备工作 

  1. 打开“Docker Desktop”
  2. 通过代理访问外部资源(翻墙) 

2. Docker的安装

Linux 是一个开源的操作系统内核

Ubuntu 是基于 Linux 内核开发的操作系统发行版。它采用了 Linux 内核,并在其基础上添加了各种软件包、图形界面、工具和应用程序,以提供一个完整的操作系统环境。

例如 Ubuntu、Fedora、CentOS 等都是常见的 Linux 操作系统发行版。这些发行版在 Linux 内核的基础上,添加了不同的软件和功能,以满足不同用户的需求。

我使用的是Windows系统,所以下载了

Docker Desktop 发行说明 |Docker 文档

WSL(Windows Subsystem for Linux)是适用于 Windows 的 Linux 子系统。

安装后遇到了“Docker Desktop - WSL update failed An error occurred while updating WSL. You can manually update using wsl --update.”的报错,解决方法是打开cmd,进行以下操作

C:\Users\Winky>wsl --update
正在安装: 适用于 Linux 的 Windows 子系统
已安装 适用于 Linux 的 Windows 子系统。

成功安装

3. 基础命令

3.1. 拉取镜像

docker pull [选项] [docker镜像地址:标签]

3.1.1. 拉取 “hello-world” 镜像 

“hello-world” 镜像主要是用于验证 Docker 安装是否正确以及展示 Docker 的基本工作流程。它的功能非常简单,就是输出一段欢迎信息。

C:\Users\吴伊晴>docker pull hello-world:latest
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete
Digest: sha256:53cc4d415d839c98be39331c948609b659ed725170ad2ca8eb36951288f81b75
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

What's next:
    View a summary of image vulnerabilities and recommendations → docker scout quickview hello-world:latest

3.1.2. 拉取 “nginx” 镜像 

“nginx” 镜像则是一个功能强大的 Web 服务器。当运行 “nginx” 镜像时,它会启动一个 Nginx 服务器实例,并进行一系列的配置和初始化操作,以准备处理传入的 HTTP 请求。

C:\Users\吴伊晴>docker pull nginx:latest
latest: Pulling from library/nginx
Digest: sha256:447a8665cc1dab95b1ca778e162215839ccbb9189104c79d7ec3a81e14577add
Status: Image is up to date for nginx:latest
docker.io/library/nginx:latest

3.2. 运行镜像/启动容器

“docker run” 这个命令实际上包含了两个主要的动作:

首先,它会根据指定的镜像创建一个新的容器;

然后,它会启动这个容器。

3.2.1. 运行“hello-world” 镜像 

“hello-world”:输出的内容主要是一段欢迎信息和对 Docker 工作流程的简要说明,旨在向用户表明 Docker 安装正常,并提供一些进一步探索的建议和链接。

docker run hello-world:latest
C:\Users\吴伊晴>docker run hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

3.2.2. 运行 “nginx” 镜像  

“nginx”:输出的内容主要是 Nginx 服务器的启动日志,包括服务器的版本、构建信息、操作系统信息、使用的事件方法以及启动的 worker 进程信息等。这些信息对于调试和监控 Nginx 服务器的运行状态非常有用。

不指定版本

如果不指定版本,则默认是最新版本

docker run nginx
C:\Users\吴伊晴>docker run nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
e4fff0779e6d: Pull complete
2a0cb278fd9f: Pull complete
7045d6c32ae2: Pull complete
03de31afb035: Pull complete
0f17be8dcff2: Pull complete
14b7e5e8f394: Pull complete
23fa5a7b99a6: Pull complete
Digest: sha256:447a8665cc1dab95b1ca778e162215839ccbb9189104c79d7ec3a81e14577add

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Stable Diffusion绘画 | ControlNet应用-Inpaint(局部重绘):更完美的重绘

Inpaint(局部重绘) 相当于小号的AI版PS,不但可以进行局部画面的修改,还可以去除背景中多余的内容,或者是四周画面内容的扩充。 预处理器说明 Inpaint_Global_Harmonious:重绘-全局融合算法,会对整个图片的画面和色调…

【无标题】SAM(Segment Anything Model)

1.SAM是什么? SAM是基于NLP的一个基础模型,专注于提示分割任务,使用提升工程来适应不同的下游分割任务。 2.SAM有什么用? 1)SAM 可以通过简单地单击或交互选择要包含或排除在对象中的点来分割对象。还可以通过使用多边…

成都爱尔综合眼病科李晓峰主任解析空调续命,干眼别忍!

高温酷暑,命都是空调给的。 凉风一直吹,根本不敢停。 热到大汗淋漓,身体缺水,眼睛也是。 屋外闷热湿度不低,屋内空调一开湿度“骤降”不够用。 房间被“除湿”,眼睛也不例外。 长时间吹空调&#xff0c…

基于C++实现(控制台)模拟网上购书订单管理系统

模拟网上购书订单管理系统(大一小学期C大作业) 一、任务 1. 基础任务 建立继承了Buyer类的三个子类作为顾客的三种类型,用于管理顾客对象;建立Book类,管理书本对象;根据不同类型的顾客,计算出…

全球主要指数年度收益率汇总

1 美国 1.1 道琼斯工业平均指数 DJIA 1.2 纳斯达克综合指数 IXIC 1.3 纳斯达克100指数 NDX 1.4 标准普尔500 INX 2 中国 2.1 国债指数 000021 2.2 上证综指 000001 2.3 深证成指 399001 2.4 创业板 399006 2.5 中小100 399005 2.6 上证50 000016 3 香港

智能可视耳勺怎么用?智能可视耳勺使用方法!

随着科技的进步,有很多人摒弃了传统挖耳勺,选择更加高效直观的智能可视耳勺,这是因为智能可视耳勺能更加直观地看到耳朵的内部,让掏耳过程清晰明了,精准掏出耳垢。 但市场有的智能可视耳勺鱼龙混杂,很多人在…

【解决】vue 弹窗后面页面可以滚动问题

做web端项目过程中&#xff0c;发现点击弹窗后&#xff0c;弹窗后面的页面还可以滚动。 复现如下&#xff1a; 【方法1】 step1&#xff1a;在弹框页面使用 mousewheel.prevent <divv-show"workShowMenu"mousewheel.prevent>// TO DO...弹框内容 </div&…

C盘清理 拯救你的C盘!C盘从此不再爆满~!

C盘清理&#xff0c;拯救你的C盘&#xff01;C盘从此不再爆满~&#xff01;C盘爆满是许多人经常遇到的问题&#xff0c;它可能导致系统运行缓慢甚至崩溃&#xff0c;对于这种情况&#xff0c;我们要从根源触发&#xff0c;彻底的清理干净C盘垃圾。 一般的C盘清理有下面几种方法…

AI跟踪报道第55期-新加坡内哥谈技术-本周AI新闻: GPT NEXT (x100倍)即将在2024推出

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

[概率论] 随机变量的分布函数 (一)

文章目录 1.随机变量的分布函数2.离散型随机变量的分布函数3.连续性随机变量的分布函数 1.随机变量的分布函数 设X XX是一个随机变量&#xff0c;x xx是任意实数&#xff0c;则函数 几何表示 性质&#xff08;一个函数是分布函数的充要条件&#xff09; 2.离散型随机变量的分布…

区块链--代币之外的应用

数字货币是区块链技术的首次应用&#xff0c;但这可以说并没有真正发挥其潜力。比特币的发明首次引入了区块链的概念&#xff0c;但是直到 2013 年&#xff0c;区块链技术的真正潜力才得以展现&#xff0c;并在除加密货币之外的许多不同行业中得到应用。从那时起&#xff0c;人…

《机器学习》—— SVD奇异值分解方法对图像进行压缩

文章目录 一、SVD奇异值分解简单介绍二、代码实现—SVD奇异值分解方法对图像进行压缩 一、SVD奇异值分解简单介绍 SVD&#xff08;奇异值分解&#xff09;是一种在信号处理、统计学、线性代数、机器学习等多个领域广泛应用的矩阵分解方法。它将任何 mn 矩阵 A 分解为三个特定矩…

软考基础知识之性能指标

目录 前言 性能指标 计算机 1、时钟频率&#xff08;主频&#xff09; 2 、高速缓存 3、运算速度 4、运算精度 5、内存的存储容量 6、存储器的存取周期 7、数据处理速率 8、响应时间 9、RASIS 特性 10、平均故障响应时间 11、兼容性 网络 1、设备级性能指标 2、…

18067 字符统计

### 思路 1. **初始化计数器**&#xff1a;初始化字母计数器nL和数字计数器nN为0。 2. **遍历输入字符串**&#xff1a;逐个字符检查。 3. **判断字符类型**&#xff1a; - 如果是字母&#xff0c;增加nL。 - 如果是数字&#xff0c;增加nN。 - 如果是空格&#xff0c…

OpenAI 计划推出最高每月 2000 美元的 ChatGPT 订阅服务|TodayAI

OpenAI 正在计划推出更高价的 ChatGPT 订阅服务&#xff0c;以满足日益增长的市场需求。据《The Information》报道&#xff0c;OpenAI 已经在内部讨论了高级订阅的价格&#xff0c;最高可能达到每月 2000 美元。这些高级订阅将提供目前正在开发的高性能 AI 模型中的高级功能&a…

快充协议工作原理 XSP04快充协议芯片的简绍

快充协议‌是一种通过提高充电效率来缩短设备充电时间的电池充电技术。它是通过在充电器和设备之间建立一种沟通机制&#xff0c;使得充电器能够根据设备的需求和状态&#xff0c;调整输出的电压和电流。这种沟通机制由快充协议定义&#xff0c;它决定了设备和充电器如何互相识…

创建与操作MySQL数据库

2.1 创建数据库 数据库技术主要研究如何科学地组织和存储数据&#xff0c;以及如何高效地获取和处理数据&#xff0c;它已广泛应用于各个领域。数据库是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库可以看作一个存储数据对象的容器&#xff0c;这些对象包括数…

抖音热门《点燃我,温暖你》李峋同款爱心特效复刻

引言 最近&#xff0c;电视剧《点燃我&#xff0c;温暖你》的热度在抖音上持续升温&#xff0c;特别是剧中李峋的爱心特效&#xff0c;让不少观众为之心动。许多粉丝都在寻找这个特效的源码&#xff0c;希望能够在自己的电脑上重现这一浪漫场景。幸运的是&#xff0c;我在B站上…

【白话MQ】消息队列MQ的使用和选型

快速导航 面试题&#xff1a;为什么使用消息队列&#xff1f;1. 解耦2. 异步3. 削峰 消息队列的优缺点&#xff1f;1. 系统可用性可能会降低2. 系统复杂度提高3. 一致性的挑战 Kafka、ActiveMQ、RabbitMQ、RocketMQ 的区别和适合的场景&#xff1f;区别&#xff1a;使用建议&am…

【Python机器学习系列】使用SMAC优化SVC分类模型的超参数(案例+源码)

这是我的第352篇原创文章。 一、引言 在机器学习和人工智能领域&#xff0c;优化超参数以提升模型性能是一项至关重要的任务。SMAC3&#xff0c;全称Sequential Model-based Algorithm Configuration&#xff0c;是一个强大且灵活的贝叶斯优化包&#xff0c;专注于高效地寻找算…