windows server 2022 安装 Linux Docker

我的小站:Ean7的小站

为什么不选择windows安装

TimescaleDB 的一些高级工具(例如 TimescaleDB Toolkit)在 Windows 上支持有限,官方建议某些场景使用 Docker/Linux。

项目 Windows原生 Ubuntu Docker
安装 ⭐⭐⭐ ⭐⭐⭐⭐⭐
维护 ⭐⭐⭐ ⭐⭐⭐⭐
升级 稍麻烦 方便
备份迁移 一般 方便
工业服务器长期运行 可以 更常见

1. 打开服务器管理器

进入:

bash 复制代码
服务器管理器
 ↓
添加角色和功能
 ↓
下一步

选择:

bash 复制代码
基于角色或基于功能的安装

2. 选择服务器

选择当前 Windows Server。


3. 添加角色

勾选:

bash 复制代码
☑ Hyper-V

想·弹出:

bash 复制代码
需要添加管理工具?

选择:

bash 复制代码
添加功能

继续。

然后都默认设置,只是

默认存储

点击:

bash 复制代码
Hyper-V
 └── 默认存储

会看到两个路径:

虚拟硬盘文件位置

默认一般:

bash 复制代码
C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks

建议改:

例如:

bash 复制代码
D:\Hyper-V\Virtual Hard Disks

虚拟机配置文件位置

默认:

bash 复制代码
C:\ProgramData\Microsoft\Windows\Hyper-V

建议改:

bash 复制代码
D:\Hyper-V\Virtual Machines

最后点击安装后重启

1. 打开Hyper-V管理器

在搜索框中搜索Hyper-V管理器


2. 创建虚拟交换机

右侧:

bash 复制代码
虚拟交换机管理器

选择:

bash 复制代码
外部

绑定你的物理网卡。(注意一定要选对宿主机上的网卡)

例如:

bash 复制代码
Intel Ethernet Adapter

保存。


3. 新建虚拟机

右侧:

bash 复制代码
新建
 ↓
虚拟机

名称:

例如:

bash 复制代码
ubuntu-docker

代数:

选择:

bash 复制代码
第二代

内存:

你的服务器128GB:

建议:

bash 复制代码
16384 MB

即:

16GB

后面可调整。


网络:

选择:

bash 复制代码
刚才创建的外部交换机

硬盘:

建议:

bash 复制代码
200GB

动态扩展即可。


安装:

选择:

bash 复制代码
从可启动的映像文件安装操作系统

挂载

例如:

(下载地址)

bash 复制代码
ubuntu-22.04.5-desktop-amd64.iso

完成创建。


启动虚拟机:

bash 复制代码
启动

进入安装界面。

如果报错

bash 复制代码
The signed image's hash is not allowed (DB)

意思:

UEFI Secure Boot 拒绝加载当前 ISO 的启动文件。


解决方法

1. 关闭虚拟机

在 Hyper-V 管理器:

右键你的 Ubuntu 虚拟机:

bash 复制代码
关闭

2. 打开设置

右键:

bash 复制代码
Ubuntu虚拟机
  ↓
设置

3. 找到:

bash 复制代码
安全

取消:

bash 复制代码
☐ 启用安全启动

安装时一直默认,直到最后

设置用户名和密码

以及选择安装openssh


网络:

一般自动:

bash 复制代码
DHCP

安装后查看:

bash 复制代码
ip addr

例如:

bash 复制代码
192.168.0.20

记录。


创建用户:

例如:

bash 复制代码
用户名:
docker

密码:
******

建议勾选:

bash 复制代码
Install OpenSSH Server

这样以后SSH管理。

Hyper-v的终端太难用了,使用其他的ssh远程终端


SSH进入Ubuntu:

先更换镜像源

bash 复制代码
sudo nano /etc/apt/sources.list



deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

更新:

bash 复制代码
sudo apt update
sudo apt upgrade -y

1. 添加阿里云 Docker GPG 密钥

bash 复制代码
sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

检查:

bash 复制代码
ls -l /etc/apt/keyrings/docker.gpg

应该存在。


2. 添加 Docker 软件源

bash 复制代码
sudo tee /etc/apt/sources.list.d/docker.list <<EOF
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy stable
EOF

查看:

bash 复制代码
cat /etc/apt/sources.list.d/docker.list

应该显示:

bash 复制代码
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy stable

3. 更新 apt

bash 复制代码
sudo apt update

正常应该看到:

bash 复制代码
Hit: https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy InRelease

如果看到:

bash 复制代码
Err: https://download.docker.com

说明旧源还存在,需要删除:

bash 复制代码
sudo rm -f /etc/apt/sources.list.d/docker.sources

或者:

bash 复制代码
ls /etc/apt/sources.list.d/

看看有没有其他 docker 源。


4. 安装 Docker

bash 复制代码
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

5. 启动 Docker 服务(建议加)

安装完成后:

bash 复制代码
sudo systemctl enable docker
sudo systemctl start docker

查看:

bash 复制代码
systemctl status docker

应该:

bash 复制代码
Active: active (running)

6. 测试 Docker

bash 复制代码
sudo docker run hello-world

成功会看到:

bash 复制代码
Hello from Docker!
This message shows that your installation appears to be working correctly.

如果在 拉取镜像阶段失败:

错误:

bash 复制代码
failed to resolve reference "docker.io/library/hello-world:latest"

dial tcp 199.59.148.7:443: connect: connection refused

说明:

  • ✅ Docker daemon 正常运行
  • ✅ Docker 命令正常
  • ❌ 访问 Docker Hub (registry-1.docker.io) 被拒绝

这是国内访问 Docker 官方服务的问题。


解决方法:配置 Docker 镜像加速器

编辑 Docker 配置:

bash 复制代码
sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json

填入:

bash 复制代码
{
 "registry-mirrors": [
   "https://docker.m.daocloud.io",
   "https://dockerproxy.com",
   "https://mirror.ccs.tencentyun.com"
 ]
}

保存。


重启 Docker:

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

查看是否生效:

bash 复制代码
docker info

找到:

bash 复制代码
Registry Mirrors:
https://docker.m.daocloud.io/
https://dockerproxy.com/
https://mirror.ccs.tencentyun.com/

再次测试:

bash 复制代码
sudo docker run hello-world

正常会输出:

bash 复制代码
Hello from Docker!
This message shows that your installation appears to be working correctly.

7. (可选)免 sudo 使用 Docker

默认每次需要:

bash 复制代码
sudo docker ps

如果希望普通用户直接:

bash 复制代码
docker ps

执行:

bash 复制代码
sudo usermod -aG docker $USER

然后重新登录:

bash 复制代码
exit

重新 SSH 登录即可。

验证:

bash 复制代码
docker ps
相关推荐
GlueNa2SiO32 小时前
07-Docker Compose多容器编排
笔记·学习·docker·容器
看浪的路人2 小时前
第4讲:MCP Client 开发——连接、发现、调用
windows·python·ai
AIgorithmGEEK2 小时前
Linux 进程控制完全指南:fork、wait、exec 三部曲
linux·运维·多进程·进程创建·进程等待·进程终止·exec家族
2301_777998342 小时前
网络基础(一):协议与网络传输基本流程
linux·网络
小张同学a.3 小时前
zabbix企业级监控平台4——分布式监控与grafana数据可视化
linux·运维·数据库·分布式·信息可视化·zabbix·grafana
Darkwanderor3 小时前
线程概念和Linux线程
linux·c语言·c++
GlueNa2SiO33 小时前
01-Docker入门与核心概念
笔记·docker·容器
酷可达拉斯3 小时前
自动化运维-从零开始编写ansible剧本(二)
linux·运维·服务器·centos·自动化
Darkwanderor3 小时前
Linux线程控制
linux·c语言·c++