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
相关推荐
沫璃染墨2 分钟前
从零入门计算机网络系列(十一):HTTP协议进阶——从重定向原理到GET/POST与Fiddler抓包
linux·服务器·开发语言·网络·c++·tcp/ip·html
kingx31 小时前
Windows Server 2008 应急加固实战:7 项入侵痕迹排查与修复
数据库·windows·提权·应急响应·加固
是枚小菜鸡儿吖1 小时前
Home Assistant跨品牌智能家居教程:Docker部署、米家接入、vivo桥接与远程访问
docker·容器·智能家居
AI_Lab012 小时前
宝塔用了两年,有没有必要换成轻量方案?
linux·运维·服务器
by209992 小时前
Linux GDB 调试与 CGDB 使用
linux·运维·服务器·经验分享
星恒随风2 小时前
Linux网络编程:应用层协议究竟是什么?从网络计算器到TCP Socket抽象基类完整实现
linux·网络·笔记·tcp/ip
螺蛳粉 螺蛳粉4 小时前
第 02 篇:镜像分层与 containerd 2.x 实战:SystemdCgroup 与 pause 镜像配置踩坑(底座认知 02)
docker·云原生·容器·kubernetes·etcd·containerd·kube-apiserver
海域云SeaArea_4 小时前
Windows Server 2008 R2 从零安装 IIS7.5(二):php.ini 配置
开发语言·windows·php
wefg15 小时前
【Docker】镜像相关指令
运维·docker·容器
feng_you_ying_li5 小时前
linux之网络层
linux·运维·网络