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

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

# 开启 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.mrgr.cn/news/77912.html

相关文章:

  • 鸿蒙系统下使用AVPlay播放视频,封装播放器
  • vue2侧边导航栏路由
  • Metasploit模块具体有哪些?
  • 如何使用 Matlab 制作 GrabCAD 体素打印切片
  • 【SLAM文献阅读】基于概率模型的视觉SLAM动态检测与数据关联方法
  • React Native的界面与交互
  • 用Tauri框架构建跨平台桌面应用:1、Tauri快速开始
  • 学习python的第十三天之函数——函数的返回值
  • 如何使用docker、docker挂载数据,以及让docker使用宿主机器的GPU环境 + docker重启小妙招
  • 华为云鸿蒙应用入门级开发者认证考试题库(理论题和实验题)
  • 论文阅读——Intrusion detection systems using longshort‑term memory (LSTM)
  • 阅读《先进引信技术的发展与展望》识别和控制部分_笔记
  • Glide源码学习
  • 【AI技术赋能有限元分析应用实践】将FEniCS 软件安装在Ubuntu22.04
  • 预训练模型与ChatGPT:自然语言处理的革新与前景
  • 【2024 Optimal Control 16-745】Ubuntu22.04 安装Julia
  • Edify 3D: Scalable High-Quality 3D Asset Generation 论文解读
  • 网络(TCP)
  • 项目实战:基于Vue3实现一个小相册
  • _FYAW智能显示控制仪表的简单使用_串口通信
  • CLIP-Adapter: Better Vision-Language Models with Feature Adapters 论文解读
  • 经验笔记:Git 中的远程仓库链接及上下游关系管理
  • LLaMA-Mesh: Unifying 3D Mesh Generation with Language Models 论文解读
  • 自制游戏:监狱逃亡
  • 计算机网络socket编程(5)_TCP网络编程实现echo_server
  • 现代密码学