admin 管理员组

文章数量: 1184232

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、Docker 是什么?
  • 二、安装
    • 1.安装前的准备
      • 1.1 检查 Windows 版本
      • 1.2 确认虚拟化已开启
      • 1.3 启用Hyper-v并开启虚拟任务
    • 2.安装 Docker Desktop
      • 2.1 默认安装
        • 2.1.1 下载
        • 2.1.2 安装步骤
      • 2.2 安装到其他盘符
        • 2.2.1 新建文件夹
        • 2.2.2 安装
        • 2.2.3 安装后验证
    • 3.启用 WSL2
      • 3.1 安装 WSL2
      • 3.2 设置 WSL2 为默认版本
      • 3.3 WSL版本更新
    • 4.Docker配置
      • 4.1 Docker版本
      • 4.2 Docker镜像配置
  • 三、Docker使用
    • 1.hello-world镜像
    • 2.nginx镜像
  • 四、Docker卸载
  • 总结


前言

docker搭建,初使用。


一、Docker 是什么?

Docker 是一个开源的应用容器引擎,可以让开发者将应用及其依赖打包到一个可移植的镜像中,然后在任意环境中运行。
在 Windows 下安装 Docker 的方式主要是通过 Docker Desktop,它支持 WSL2 技术,大幅提高性能。

二、安装

1.安装前的准备

1.1 检查 Windows 版本

Docker Desktop 要求:

  • Windows 10(64 位)专业版 / 企业版

  • Windows 11(64 位)专业版 / 企业版

  • 家庭版需先开启 WSL2
    检查方法:

Win + R → 输入 winver → 回车

1.2 确认虚拟化已开启

  1. 按下 Ctrl + Shift + Esc 打开任务管理器
  2. 切换到 性能 选项卡
  3. 查看右下角 虚拟化 是否为 已启用

1.3 启用Hyper-v并开启虚拟任务

  1. 按住键盘Win+R,输入optionalfeatures.exe
    其他方式:控制面板的程序和功能→启动或关闭Windows功能

2.安装 Docker Desktop

2.1 默认安装

2.1.1 下载

前往 Docker 官方下载页面:
Docker Desktop
选择 Windows 版本,点击 Download for Windows。

2.1.2 安装步骤
  1. 双击下载的 Docker Desktop Installer.exe

  2. 勾选:
    ①:Install required Windows components for WSL 2
    ②:Add shortcut to desktop

  3. 点击 OK 开始安装

  4. 安装完成后会提示 重启电脑

2.2 安装到其他盘符

2.2.1 新建文件夹

1.在[你的目标盘]下新建2个文件夹
例:
E:\Program Files\data
E:\Program Files\Docker


2.把下载好的docker安装文件转移到E:\Program Files

2.2.2 安装

1.首先管理员方式打开PowerShell

2.执行命令

Start-Process -FilePath "Docker Desktop Installer.exe" -ArgumentList 'install', '-accept-license', '--installation-dir="E:\Program Files\Docker"', '--wsl-default-data-root="E:\Program Files\Docker\data"', '--windows-containers-default-data-root="E:\Program Files\Docker"' -Wait

解释:

  • Start-Process:PowerShell 中用于启动新进程(如执行程序、脚本等)的 cmdlet,相当于 “运行一个程序”。
  • -FilePath "Docker Desktop Installer.exe":指定要运行的程序路径,这里是 Docker Desktop 的安装程序 Docker Desktop Installer.exe(需确保该文件在当前工作目录,或填写完整路径,如 C:\Downloads\Docker Desktop Installer.exe)。
  • -ArgumentList (后续的一串参数)
    传递给安装程序的命令行参数,用于配置安装行为,各参数含义:
    • install:指示安装程序执行 “安装” 操作(而非卸载等其他行为)。
    • -accept-license:自动接受 Docker 的许可协议(无需手动点击 “同意”)。
    • --installation-dir="E:\Program Files\Docker":指定 Docker 的安装目录(默认通常是 C:\Program Files\Docker,这里修改为 E 盘路径)。
    • --wsl-default-data-root="E:\Program Files\Docker\data":指定 WSL(Windows 子系统 for Linux)相关的 Docker 数据存储目录(如镜像、容器数据等)。
    • --windows-containers-default-data-root="E:\Program Files\Docker":指定 Windows 容器的默认数据存储目录。
  • -Wait:让 PowerShell 等待当前启动的安装进程(Docker 安装程序)完成后,再继续执行后续命令(避免安装未完成就执行其他操作)。
2.2.3 安装后验证

打开WIN+R,输入cmd

docker info

3.启用 WSL2

家庭版和专业版都建议看一下。

3.1 安装 WSL2

方法一:在 PowerShell(管理员模式)中输入:

 wsl --install

等待系统自动安装 Linux 子系统和 WSL2 内核。
方法二:直接打开Docker Desktop,会提示你,WSL need updating。点击Restart,然后按任意跳出PowerShell(管理员模式),按任意键安装(推荐)

3.2 设置 WSL2 为默认版本

wsl --set-default-version 2

3.3 WSL版本更新

wsl --update


如果wsl --update命令执行失败,说明电脑安装的wsl有问题,请按以下教程完成WSL/WSL2的安装,WSL2安装参考官网安装教程链接如下:
https://learn.microsoft/zh-cn/windows/wsl/install-manual

4.Docker配置

4.1 Docker版本

win+R,输入cmd回车,输入检测docker安装的版本:

docker --version # 检测docker安装的版本:

4.2 Docker镜像配置

  1. 双击docker Desktop
  2. 点击齿轮图标(设置)
  3. 点击Docker Engine
  4. 配置镜像
    国内镜像有很多,有的好用有的不好用,这里我尝试这个好用。其余镜像放在文末。
{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "debug": false,
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "registry-mirrors": [
    "https://docker.m.daocloud.io"
  ]
}

三、Docker使用

1.hello-world镜像

  1. 打开 PowerShell 或 CMD,输入:
docker run hello-world


2. 进入docker界面查看images

打开 PowerShell 或 CMD,输入:docker images 也可从查看

2.nginx镜像

1.拉取nginx镜像

docker pull nginx

运行结果如图:

等待下载完成

2.运行容器

docker run -d -p 9050:8081 --name nginx nginx

3.本地磁盘创建nginx目录

D:\DDNginx   # 路径任意
D:\DDNginx\conf\

4.复制docker中的nginx配置文件

docker ps -a

运行结果如图:

docker cp e6b33dfc1b70:/etc/nginx/nginx.conf D:\DDNginx\conf\

运行结果如图:

5.停止刚启动的nginx容器

docker stop e6b33dfc1b70

6.删除停止的nginx容器

docker rm e6b33dfc1b70

7.添加挂载目录

目录自定义

8.启动一个新的nginx容器,并将容器中的配置目录挂载到本地磁盘的目录中

D盘中nginx.conf 文件是上述操作生成的文件,挂载用。

docker run -d -p 9045:80 --name nginx -v D:\DDNginx\html:/usr/share/nginx/html -v D:\DDNginx\conf\nginx.conf:/etc/nginx/nginx.conf -v D:\DDNginx\logs:/var/log/nginx nginx

解释:

  • docker run创建并启动容器
  • -d:全称–detch,表示容器后台运行
  • -p 9045:80:全称 --publish,用于端口映射,格式为 宿主机端口:容器内端口。
    这里表示将宿主机的 9045端口与容器内的 80 端口绑定:
    • 容器内的 Nginx 默认监听 80 端口(Nginx 服务的默认端口)。
    • 外部访问宿主机的 9045端口(如 http://localhost:8081),就会转发到容器内的 80 端口,从而访问 Nginx 服务。
  • --name nginx:为容器指定一个自定义名称(这里叫 nginx),方便后续管理容器(如停止、启动、删除时,可直接用名称代替随机生成的容器 ID)。
  • 多个 -v 参数(数据卷挂载)
    全称--volume,用于将宿主机的文件 / 目录与容器内的文件 / 目录绑定,实现数据共享或持久化(容器删除后,宿主机的数据仍保留)。格式为 宿主机路径:容器内路径。
    • 第一个 -v D:\DDNginx\html:/usr/share/nginx/html
      把宿主机的 D:\Docker\html目录,挂载到容器内 Nginx 的网页根目录 /usr/share/nginx/html。
      作用:宿主机该目录下的 HTML/CSS/JS 等网页文件,会被容器内的 Nginx 直接读取,方便修改网页内容(无需进入容器)。
    • 第二个-v D:\DDNginx\conf\nginx.conf:/etc/nginx/nginx.conf
      把宿主机的 nginx.conf 配置文件,挂载到容器内 Nginx 的主配置文件 /etc/nginx/nginx.conf。
      作用:用宿主机的自定义配置替换容器默认的 Nginx 配置,实现个性化配置(如反向代理、虚拟主机等)。
    • 第三个-v D:\DDNginx\logs:/var/log/nginx
      把宿主机的 D:\Docker\logs 目录,挂载到容器内 Nginx 的日志目录 /var/log/nginx。
      作用:容器内 Nginx 产生的访问日志、错误日志会同步到宿主机该目录,方便查看和留存日志(容器删除后日志不丢失)。
  • 最后一个 nginx:指定要基于哪个镜像创建容器,这里使用官方的 nginx 镜像(如果本地没有,Docker 会自动从 Docker Hub 拉取)。

8.在D:\DDNginx\html目录中新建index.html

<!DOCTYPE html>
<html>
<head>
	<title>docker run nginx</title>
</head>
<body>
	<h4>docker run nginx</h4>
</body>
</html>

9.本地浏览器访问127.0.0.1:9045

四、Docker卸载

1.Windows 系统(Docker Desktop)
2.关闭正在运行的 Docker Desktop 应用
3.打开「控制面板」→「程序和功能」
4.找到 Docker Desktop,右键选择「卸载」
5.按提示完成卸载,最后重启电脑(可选,确保完全清理)

注:Hyper-V和WSL也可以卸载,这里不过多叙述。
具体参照:Docker卸载


总结

整篇文章是docker的安装和基础运用。
笔记记录用。我参考的资料都写下面了。


我找到的一些镜像:

  • https://jduvui37.mirror.aliyuncs
  • https://hub-mirror.c.163
  • https://docker.mirrors.ustc.edu
  • https://registry.docker-cn
  • https://reg-mirror.qiniu/
  • http://hub-mirror.c.163
  • https://docker.m.daocloud.io
  • https://registry.docker-cn
  • https://dockerproxy
  • https://docker.nju.edu
    没打勾的在我本地不太好用。先记录下来。

参考资料:
新手村-小钻风
周星星Satr
受尽冷风
end for time
没事就写点


本文标签: Windows docker