工具学习_Docker

0. Docker 简介

Docker 是一个开源平台,旨在帮助开发者构建、运行和交付应用程序。它通过容器化技术将应用程序及其所有依赖项打包在一个标准化的单元(即容器)中,使得应用程序在任何环境中都能保持一致的运行效果。Docker 提供了一个轻量级、高效且易于使用的方式来管理和部署应用,从而简化了应用的开发和运维流程。无论是在本地开发环境、测试环境还是生产环境中,Docker 都能确保应用的可移植性和稳定性。

1. Docker 和虚拟机的区别

Docker 和虚拟机(VM)在虚拟化方式和资源使用上存在显著区别。虚拟机通过硬件虚拟化在物理机器上创建完整的虚拟操作系统,每个虚拟机都有独立的操作系统,资源消耗较大且启动较慢。与此不同,Docker 使用容器化技术直接在宿主操作系统上运行,容器共享宿主操作系统的内核,因而更加轻量、启动速度更快,资源消耗更低。虽然虚拟机提供更强的硬件级别隔离,Docker 容器则依赖操作系统内核进行隔离,隔离性相对较弱,但在大多数应用场景下已足够。总体而言,Docker 更加高效,适合微服务和快速部署,而虚拟机则适用于需要完整操作系统隔离的场景。

2. 基本原理和概念

2.1 Docker 架构

Docker 的架构由三部分组成:客户端(Client)、服务端(Docker Host)以及镜像仓库(Registry)。客户端是用户与 Docker 的交互接口,通过命令行工具(如 docker run、docker build、docker pull)向 Docker 守护进程(Daemon)发送请求。服务端是 Docker 的核心运行环境,包括守护进程、镜像和容器,其中守护进程负责接收客户端请求并管理容器的生命周期(创建、运行、停止等),镜像是容器的基础,容器则是镜像的运行实例。镜像仓库用于存储和分发 Docker 镜像,支持公共(如 Docker Hub)或私有仓库,用户可以通过 docker pull 从仓库拉取镜像,或通过 docker push 将本地镜像上传到仓库。

2.2 基本概念

镜像(Images):镜像是一个只读模板,包含运行容器所需的应用程序和依赖,例如基于 Ubuntu 的镜像可以预装 MySQL 或 Nginx。

容器(Containers):容器是镜像的实例,提供独立的运行环境,通过共享宿主操作系统内核实现轻量级隔离和快速启动。

命令操作:Docker 提供了常用命令,包括 docker build 用于构建镜像,docker run 用于启动容器,docker pull 用于从仓库拉取镜像。

镜像仓库(Registry):镜像仓库是存储 Docker 镜像的地方,如 Docker Hub 或私有仓库,包含 Redis、MongoDB 等常见应用的官方镜像。

2.3 运行流程

Docker 的运行流程包括用户通过客户端执行命令(如 docker build、docker run),由 Docker 守护进程接收并处理这些命令,完成镜像的创建或容器的启动。如果命令需要使用镜像,守护进程会从镜像仓库拉取所需镜像(docker pull)。随后,容器基于镜像启动并在宿主系统上运行,实现资源隔离和应用部署。

3. 安装和部署

3.1 系统要求

Docker 在 Windows 上的系统要求包括操作系统、硬件和软件三个方面。操作系统需为 Windows 10 64-bit 专业版、企业版或教育版(Build 1903 或更高)或任意版本的 Windows 11。硬件方面,需要至少 4GB 内存,并且处理器需支持虚拟化(如 Intel VT-x 或 AMD-V 并已启用)。在软件要求上,需要启用 WSL2(Windows Subsystem for Linux),并安装 Windows 的 Hyper-V 功能(Docker Desktop 会自动完成配置)。

3.2 安装步骤

要安装 Docker Desktop,首先前往 Docker 官方网站 下载最新版的安装程序。下载完成后,双击运行安装程序(.exe 文件),在安装过程中勾选 “Install required Windows components for WSL 2”,然后点击 Install 进行安装。安装完成后,点击 Close and Restart 按钮,重启计算机以完成配置。

WSL2(Windows Subsystem for Linux 2)是微软开发的一种在 Windows 上运行 Linux 二进制可执行文件的子系统。与传统的虚拟机不同,WSL2 提供了一个更轻量级的 Linux 环境,允许用户在 Windows 系统中无缝地运行 Linux 命令行工具和应用。Docker Desktop 使用 WSL2 作为其后端环境的运行基础,这是因为 WSL2 提供了一个高效的方式来在 Windows 系统中运行 Linux 容器。

# 打开 PowerShell(以管理员身份运行):
wsl --install# 设置默认 WSL 版本为 2(确保 Docker 使用 WSL2):
wsl --set-default-version 2# 安装所需的 Linux 发行版(如 Ubuntu):
wsl --install -d Ubuntu# 登录 docker 账号
docker login

安装完成后,启动 Docker Desktop,并按照提示登录 Docker Hub(如无账号,可创建一个免费账号)。登录后,确认 Docker Desktop 已正常启动,并确保界面显示 “WSL 2 backend is running”,表明 Docker 已成功启用 WSL 2 后端运行模式。

此外需要更新镜像源,具体指令如下所示:

# 查看 Ubuntu 版本
lsb_release -a# 备份当前的源列表
sudo cp /etc/apt/sources.list.d/ubuntu.sources  /etc/apt/sources.list.d/ubuntu.sources.bak# 打开文本编辑器
sudo vim /etc/apt/sources.list.d/ubuntu.sources# 阿里云
Types: deb
URIs: http://mirrors.aliyun.com/ubuntu/
Suites: noble noble-updates noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg# 更新源列表
sudo apt-get update# 更新系统软件包
sudo apt-get upgrade

此外需要开启虚拟环境:

# 安装 venv 模块
sudo apt-get update
sudo apt-get install python3-venv# 创建虚拟环境
python3 -m venv myenv# 激活虚拟环境
source myenv/bin/activate# 退出虚拟环境
deactivate

GitHub 相关配置问题,详细操作参考链接。

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

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

相关文章

基础知识学习上

基础知识学习上 1.关于print1.1 format 方法 2.运算符2.1 除法运算2.2 幂运算 3.条件控制语句3.1 if语句3.2 循环语句 4.复杂数据类型4.1列表4.2字典4.3字符串 5.函数 1.关于print 分隔符 print(1, 2, 3, 4, sep-) print(1, 2, 3, 4, sep。)结尾符 print(1, 2, 3, 4, end?) pr…

无监督跨域目标检测的语义一致性知识转移

Semantic consistency knowledge transfer for unsupervised cross domain object detection 无监督跨域目标检测的语义一致性知识转移 作者: Zichong Chen, Ziying Xia, Xiaochen Li, Junhao Shi, Nyima Tashi, Jian Cheng 所属机构: 电子科技大学信息与通信工程学院&…

AI智能稿件排版系统订单管理系统

在现代制造业和服务行业中,高效的生产流程和精确的订单管理是企业保持竞争优势的核心要素。AI智能稿件排版系统和订单管理系统作为一体化解决方案,以其强大的自动化能力和智能化技术,帮助企业实现排版效率提升、数据格式兼容性增强和生产流程…

Android Google登录接入

官方文献: 1、前期准备: https://developers.google.cn/identity/sign-in/android/legacy-start-integrating?hlzh-cnhttps://developers.google.cn/identity/sign-in/android/legacy-start-integrating?hlzh-cn 2、具体开发: 新版 Googl…

论文浅尝 | MindMap:知识图谱提示激发大型语言模型中的思维图(ACL2024)

笔记整理:和东顺,天津大学硕士,研究方向为软件缺陷分析 论文链接:https://aclanthology.org/2024.acl-long.558/ 发表会议:ACL 2024 1. 动机 虽然大语言模型(LLMs)已经在自然语言理解和生成任务…

Spring Cloud Data Flow快速入门Demo

1.什么是Spring Cloud Data Flow? Spring Cloud Data Flow 是一个用于构建和编排数据处理流水线的云原生框架。它提供了一种简化的方式来定义、部署和管理数据处理任务和流应用程序。以下是一些关键特性和组件: 关键特性 流处理: 支持实时数…

C# .NET环境下调用ONNX格式YOLOV8模型问题总结

我的环境是: Visual Studio: 2019 显卡: 一、遇到问题 1、EntryPointNotFoundException:无法在DLL“onnxruntime”中找到名为“OrtGetApiBase”的入口点。差了下原因,入口点是启动项中的问题。 原因:之前用yolov7时安装的版本在C…

量子感知机

神经网络类似于人类大脑,是模拟生物神经网络进行信息处理的一种数学模型。它能解决分类、回归等问题,是机器学习的重要组成部分。量子神经网络是将量子理论与神经网络相结合而产生的一种新型计算模式。1995年美国路易斯安那州立大学KAK教授首次提出了量子…

AI Large Language Model

AI 的 Large Language model LLM , 大语言模型: 是AI的模型,专门设计用来处理自然语言相关任务。它们通过深度学习和庞大的训练数据集,在理解和生成自然语言文本方面表现出色。常见的 LLM 包括 OpenAI 的 GPT 系列、Google 的 PaLM 和 Meta…

运维团队3D可视化智能机房管理方案

随着信息技术的飞速发展,机房作为信息技术基础设施的核心部分,其管理效率与可视化程度对运维团队的工作质量有着直接影响。本文将介绍一种结合3D可视化技术的机房管理方案,为运维团队提供一种新的视角和工具,以提升机房管理的效率…

CKA认证 | Day2 K8s内部监控与日志

第三章 Kubernetes监控与日志 1、查看集群资源状态 在 Kubernetes 集群中,查看集群资源状态和组件状态是非常重要的操作。以下是一些常用的命令和解释,帮助你更好地管理和监控 Kubernetes 集群。 1.1 查看master组件状态 Kubernetes 的 Master 组件包…

111 - Lecture 10

File I/O and GUI with JavaFX 文件输入/输出与JavaFX图形用户界面 一、Overview 1. File I/O (1) learning Java File I/O mechanism (2) writing into and reading from a file 使用文件I/O进行数据读取和…

分享一下arr的意义(c基础)(必看)(牢记)

arr 即数组名 一般指数组首元素地址 在两种情况下不是 1:sizeof(arr) arr指整个数组简单讲解一下strlen与sizeof(c基础)_strzeof在c语言中什么意思-CSDN博客 2:printf("%p",&…

大数据基于Spring Boot的化妆品推荐系统的设计与实现

摘 要 随着大数据时代的到来,人们对于个性化服务的需求越来越高。化妆品推荐系统作为一个认知智能模型段,在为消费者提供更好的购物体验方面发挥了重要作用。本研究基于大数据技术设计了一个高效准确的化妆品推荐系统。通过对海量数据的分析和处理&…

NUXT3学习日记四(路由中间件、导航守卫)

前言 在 Nuxt 3 中,中间件(Middleware)是用于在页面渲染之前或导航发生之前执行的函数。它们允许你在路由切换时执行逻辑,像是身份验证、重定向、权限控制、数据预加载等任务。中间件可以被全局使用,也可以只在特定页…

在Unity环境中读取Excel配置文件(入门)

使用Excel作为配置的优势 使用Excel作为配置文件有相对普通的文本文档/json等类型的配置文件有一个更好的优点,更易于编辑,更易读.譬如上面的例子,我可以制作一个人员名单,可以记录它们的姓名,年龄等信息,每一行就是一个对象,该表就是一个List. 环境准备 GitHub - ExcelDataR…

Maven maven项目构建的生命周期 Maven安装配置 IDEA 配置 Maven

一,Maven的概述 Maven的作用:专门用于管理和构建Java项目的工具,它的主要功能有: 提供了一套标准化的项目结构提供了一套标准化的构建流程(编译,测试,打包,发布……)提…

VM虚拟机装MAC后无法联网,如何解决?

✨在vm虚拟机上,给虚拟机MacOS设置网络适配器。选择NAT模式用于共享主机的IP地址 ✨在MacOS设置中设置网络 以太网 使用DHCP ✨回到本地电脑上,打开 服务,找到VMware DHCP和VMware NAT,把这两个服务打开,专一般问题就…

day06(单片机高级)PCB设计

目录 PCB设计 PCB设计流程 元器件符号设计 原理图设计 元器件封装设计 元器件库使用 PCB设计 目的:学习从画原理图到PCB设计的整个流程 PCB设计流程 元器件符号设计 元器件符号:这是电子元器件的图形表示,用于在原理图中表示特定的元器件。例…

向量数据库FAISS之一:官方简单教程

1.安装 1.conda安装 # CPU-only version --> Linux (x86_64 and arm64), OSX (arm64 only), and Windows (x86_64) $ conda install -c pytorch faiss-cpu1.8.0# GPU(CPU) version --> Linux (x86_64 only) for CUDA 11.4 and 12.1 $ conda install -c pytorch -c nvid…