工具学习_Docker

news2024/11/25 3:02:00

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 按钮,重启计算机以完成配置。

# 开启 Windows 虚拟功能,如果仍无法解决进入BIOS
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

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

代理设置:

vim ~/.bashrc
export http_proxy=http://192.168.1.8:7890
export https_proxy=http://192.168.1.8:7890
export all_proxy=socks5://192.168.1.8:7891
export no_proxy=localhost,127.0.0.1,::1

安装完成后,启动 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 相关配置问题,详细操作参考链接。

wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。遇到上述问题参考链接。

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

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

相关文章

红黑树模拟实现STL中的map与set

1.map 在C标准模板库(STL)中,std::map是一种非常实用且强大的容器,它提供了键值对的存储机制。这使得std::map成为处理具有唯一关键的关联数据的理想选择。 1.1 map的特性 1、键值对存储:std::map通过键值对的形式存储数据,其中…

【数据结构专栏】二叉搜索树(Binary Search Tree)的剖析?

文章目录 🧨前言1、二叉搜索树的基本概念?2、二叉搜索树的节点结构组成?3、二叉搜索树的插入操作?4、二叉搜索树的删除操作?5、二叉搜索树的遍历? 6、二叉搜索树的性能分析? 🎉完整代…

FastApi学习第三天:两表联查

两表联查 在 FastAPI 中,使用 Tortoise ORM 查询两表联查(通常是通过外键关系进行联接)是非常简单的。可以使用 select_related 或 prefetch_related 来执行联表查询,它们类似于 Django ORM 的 select_related 和 prefetch_relate…

Redis原理及应用

Redis简介 Redis是开源的(BSD许可),数据结构存储于内存中,被用来作为数据库,缓存和消息代理。它支持多种数据结构,例如:字符串(string),哈希(hash…

Unity类银河战士恶魔城学习总结(P141 Finalising ToolTip优化UI显示)

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址:https://www.udemy.com/course/2d-rpg-alexdev/ UI部分暂时完结!!! 本章节优化了UI中物品描述的显示效果,技能描述的显示效果 并且可以批…

oracle的静态注册和动态注册

oracle的静态注册和动态注册 静态注册: 静态注册 : 指将实例的相关信息手动告知 listener 侦 听 器 , 可以使用netmgr,netca,oem 以及直接 vi listener.ora 文件来实现静态注册,在动态注册不稳定时使用,特点是:稳定&…

社交电商专业赋能高校教育与产业协同发展:定制开发AI智能名片及2+1链动商城小程序的创新驱动

摘要:本文围绕社交电商有望成为高校常态专业这一趋势展开深入探讨,剖析国家政策认可下其学科发展前景,着重阐述在专业建设进程中面临的师资短缺及实践教学难题。通过引入定制开发AI智能名片与21链动商城小程序,探究如何借助这些新…

数据指标与标签在数据分析中的关系与应用

导读:分享数据指标体系的文章很多,但讲数据标签的文章很少。实际上,标签和指标一样,是数据分析的左膀右臂,两者同样重要。实际上,很多人分析不深入,就是因为缺少对标签的应用。今天系统的讲解下…

使用Electron将vue2项目打包为桌面exe安装包

目录 一、下载electron模板项目 【electron-quick-start】​ 二、打开项目,安装所有依赖 三、在打exe包的时候报错是因为没有,需要检查并安装之后重新打包; 四、经过这么疯狂的一波操作之后,就可以打包出你想要的exe安装包&am…

MySQL基础大全(看这一篇足够!!!)

文章目录 前言一、初识MySQL1.1 数据库基础1.2 数据库技术构成1.2.1 数据库系统1.2.2 SQL语言1.2.3 数据库访问接口 1.3 什么是MySQL 二、数据库的基本操作2.1 数据库创建和删除2.2 数据库存储引擎2.2.1 MySQL存储引擎简介2.2.2 InnoDB存储引擎2.2.3 MyISAM存储引擎2.2.4 存储引…

Linux之NFS共享文件操作

一、注意点 以下操作使用root用户 代理端需要访问服务端的2049、111端口二、nfs下载 # 服务端和代理端都要安装 yum –y install rpcbind yum –y install nfs-utils三、配置共享目录-【服务端】 *修改/etc/exports文件,追加以下内容 /home/app_adm/test ip1(in…

C#学习笔记——窗口停靠控件WeifenLuo.WinFormsUI.Docking使用-腾讯云开发者社区-腾讯云

C#学习笔记——窗口停靠控件WeifenLuo.WinFormsUI.Docking使用-腾讯云开发者社区-腾讯云 C#学习笔记——窗口停靠控件WeifenLuo.WinFormsUI.Docking使用 发布于 2021-06-10 00:10:59 7.1K0 举报 文章被收录于专栏:c#学习笔记 一、介绍 DockPanelSuite是托管在…

杰发科技AC7840——EEP中RAM的配置

sample和手册中示例代码的sram区地址定义不一样 这个在RAM中使用没有限制,根据这个表格留下足够空间即可 比如需要4096字节的eep空间,可以把RAM的地址改成E000,即E000-EFFF,共4096bytes即可。

web-03

CSS回顾 选择器 标签选择器 标签{}ID选择器 标签中定义ID属性。 #ID值{}类选择器 标签中使用class属性 .类名{}关于DIV/span div任意的大小的长方形,大小css: width, height控制。—换行 span-- 一行内 CSS常用属性 width/height 宽度/高度 定义&…

CI配置项,IT服务的关键要素

随着现今数字经济的不断发展,逐渐成熟的IT 基础设施已不再是简单的竞争优势,而已成为企业生存和发展的基石。然而,仅仅拥有强大的基础设施是不够的。为了保障 IT 服务的平稳运行和持续交付,企业还需要重点关注 IT 服务的核心构建模…

ApiChain-编写迭代单测用例

项目地址:ApiChain 项目主页 写单测用例,就像画一幅有向不循环的图,图中的每个节点是这个单测用例的每一个步骤,连线代表着数据的流向,这幅图通常有一个或者多个起点,但通常只有一个终点。起点的数据来源于…

九、FOC原理详解

1、FOC简介 FOC(field-oriented control)为磁场定向控制,又称为矢量控制(vectorcontrol),是目前无刷直流电机(BLDC)和永磁同步电机(PMSM)高效控制的最佳选择…

企业OA管理系统:Spring Boot技术实现与案例研究

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了企业OA管理系统的开发全过程。通过分析企业OA管理系统管理的不足,创建了一个计算机管理企业OA管理系统的方案。文章介绍了企业OA管理系统的系统分析部…

【tensorflow的安装步骤】

创建一个虚拟环境 conda create -n tensorflow python3.6激活虚拟环境 conda activate tensorflow使用镜像源下载 pip install tensorflow1.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/特别特别重要的点!!! 别用WiFi或者校园网下…

网络安全-web架构-nginx配置

1. nginx访问: 访问的是index.html, 访问ip访问的资源就是在/usr/share/nginx/html中; 当nginx不认识,浏览器认识的话,浏览器会自动渲染。 当nginx认识,浏览器不认识的话,浏览器会把它加载成…