windows server 2022 安装 Linux Docker 我的小站Ean7的小站为什么不选择windows安装TimescaleDB 的一些高级工具例如 TimescaleDB Toolkit在 Windows 上支持有限官方建议某些场景使用 Docker/Linux。项目Windows原生Ubuntu Docker安装⭐⭐⭐⭐⭐⭐⭐⭐维护⭐⭐⭐⭐⭐⭐⭐升级稍麻烦方便备份迁移一般方便工业服务器长期运行可以更常见1. 打开服务器管理器进入服务器管理器 ↓ 添加角色和功能 ↓ 下一步选择基于角色或基于功能的安装2. 选择服务器选择当前 Windows Server。3. 添加角色勾选☑ Hyper-V想·弹出需要添加管理工具选择添加功能继续。然后都默认设置只是默认存储点击Hyper-V └── 默认存储会看到两个路径虚拟硬盘文件位置默认一般C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks建议改例如D:\Hyper-V\Virtual Hard Disks虚拟机配置文件位置默认C:\ProgramData\Microsoft\Windows\Hyper-V建议改D:\Hyper-V\Virtual Machines最后点击安装后重启1. 打开Hyper-V管理器在搜索框中搜索Hyper-V管理器2. 创建虚拟交换机右侧虚拟交换机管理器选择外部绑定你的物理网卡。注意一定要选对宿主机上的网卡例如Intel Ethernet Adapter保存。3. 新建虚拟机右侧新建 ↓ 虚拟机名称例如ubuntu-docker代数选择第二代内存你的服务器128GB建议16384MB即16GB后面可调整。网络选择刚才创建的外部交换机硬盘建议200GB动态扩展即可。安装选择从可启动的映像文件安装操作系统挂载例如(下载地址)ubuntu-22.04.5-desktop-amd64.iso完成创建。启动虚拟机启动进入安装界面。如果报错The signed imageshashis not allowed(DB)意思UEFI Secure Boot 拒绝加载当前 ISO 的启动文件。解决方法1. 关闭虚拟机在 Hyper-V 管理器右键你的 Ubuntu 虚拟机关闭2. 打开设置右键Ubuntu虚拟机 ↓ 设置3. 找到安全取消☐ 启用安全启动安装时一直默认直到最后设置用户名和密码以及选择安装openssh网络一般自动DHCP安装后查看ipaddr例如192.168.0.20记录。创建用户例如用户名docker密码 ******建议勾选Install OpenSSH Server这样以后SSH管理。Hyper-v的终端太难用了使用其他的ssh远程终端SSH进入Ubuntu先更换镜像源sudonano/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更新sudoaptupdatesudoaptupgrade-y1. 添加阿里云 Docker GPG 密钥sudomkdir-p/etc/apt/keyringscurl-fsSLhttps://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg\|sudogpg--dearmor-o/etc/apt/keyrings/docker.gpg检查ls-l/etc/apt/keyrings/docker.gpg应该存在。2. 添加 Docker 软件源sudotee/etc/apt/sources.list.d/docker.listEOF deb [archamd64 signed-by/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy stable EOF查看cat/etc/apt/sources.list.d/docker.list应该显示deb[archamd64 signed-by/etc/apt/keyrings/docker.gpg]https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy stable3. 更新 aptsudoaptupdate正常应该看到Hit: https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy InRelease如果看到Err: https://download.docker.com说明旧源还存在需要删除sudorm-f/etc/apt/sources.list.d/docker.sources或者ls/etc/apt/sources.list.d/看看有没有其他 docker 源。4. 安装 Dockersudoaptinstalldocker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin5. 启动 Docker 服务建议加安装完成后sudosystemctlenabledockersudosystemctl startdocker查看systemctl statusdocker应该Active: active(running)6. 测试 Dockersudodockerrun hello-world成功会看到Hello from Docker!This message shows that your installation appears to be working correctly.如果在拉取镜像阶段失败错误failed to resolve referencedocker.io/library/hello-world:latestdial tcp199.59.148.7:443: connect: connection refused说明✅ Docker daemon 正常运行✅ Docker 命令正常❌ 访问 Docker Hub (registry-1.docker.io) 被拒绝这是国内访问 Docker 官方服务的问题。解决方法配置 Docker 镜像加速器编辑 Docker 配置sudomkdir-p/etc/dockersudonano/etc/docker/daemon.json填入{registry-mirrors:[https://docker.m.daocloud.io,https://dockerproxy.com,https://mirror.ccs.tencentyun.com]}保存。重启 Dockersudosystemctl daemon-reloadsudosystemctl restartdocker查看是否生效dockerinfo找到Registry Mirrors: https://docker.m.daocloud.io/ https://dockerproxy.com/ https://mirror.ccs.tencentyun.com/再次测试sudodockerrun hello-world正常会输出Hello from Docker!This message shows that your installation appears to be working correctly.7. 可选免 sudo 使用 Docker默认每次需要sudodockerps如果希望普通用户直接dockerps执行sudousermod-aGdocker$USER然后重新登录exit重新 SSH 登录即可。验证dockerps