
Rocky Linux 9 - BaseOS 0.0 B/s | 0 B 00:02
Errors during downloading metadata for repository 'baseos':
- Curl error (60): SSL peer certificate or SSH remote key was not OK for https://mirrors.rockylinux.org/mirrorlist?arch=x86_64\&repo=BaseOS-9 SSL certificate problem: unable to get local issuer certificate
错误:为仓库 'baseos' 下载元数据失败 : Cannot prepare internal mirrorlist: Curl error (60): SSL peer certificate or SSH remote key was not OK for https://mirrors.rockylinux.org/mirrorlist?arch=x86_64\&repo=BaseOS-9 SSL certificate problem: unable to get local issuer certificate
root@localhost \~#
问题解决:配置阿里源
bash
sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' -i.bak /etc/yum.repos.d/rocky*.repo

1.安装 Docker 清理系统并更新
bash
# 清理现有Docker安装(如果有)
sudo yum remove -y docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 更新系统
sudo yum update -y
- 安装依赖包
bash
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 \
curl \
wget
- 添加 Docker 官方仓库
bash
# 添加 Docker CE 稳定版仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
# 或者如果网络访问有问题,使用国内镜像
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/rhel/docker-ce.repo
# 启用仓库
sudo yum-config-manager --enable docker-ce-stable
- 安装 Docker CE
bash
# 查看可用版本
sudo yum list docker-ce --showduplicates | sort -r
# 安装最新版本
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 或者安装特定版本
# sudo yum install -y docker-ce-20.10.23 docker-ce-cli-20.10.23 containerd.io
- 启动并设置 Docker
bash
# 启动Docker服务
sudo systemctl start docker
# 设置开机自启
sudo systemctl enable docker
# 检查状态
sudo systemctl status docker
# 验证安装
sudo docker version
sudo docker info
- 配置 Docker(可选但推荐)
bash
# 1. 创建docker用户组并添加当前用户(避免每次sudo)
sudo groupadd docker 2>/dev/null || true
sudo usermod -aG docker $USER
# 2. 配置Docker镜像加速器(国内用户必须)
sudo mkdir -p /etc/docker
# 使用阿里云镜像加速器(推荐国内用户)
sudo tee /etc/docker/daemon.json << 'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://registry.docker-cn.com"
],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": ["overlay2.override_kernel_check=true"]
}
EOF
# 3. 重载配置并重启
sudo systemctl daemon-reload
sudo systemctl restart docker
# 4. 测试镜像加速
sudo docker pull hello-world
- Docker 常用命令
bash
# 基本命令
docker version # 查看版本
docker info # 查看信息
docker images # 列出镜像
docker ps # 列出运行的容器
docker ps -a # 列出所有容器
# 容器管理
docker run -it ubuntu bash # 运行容器
docker start <container> # 启动容器
docker stop <container> # 停止容器
docker rm <container> # 删除容器
docker rmi <image> # 删除镜像
# 网络和卷
docker network ls # 查看网络
docker volume ls # 查看卷
# 日志和监控
docker logs <container> # 查看日志
docker stats # 查看资源使用
- Docker Vlmcsd 提取此镜像
bash
Pull this image:提取此图像:
docker pull mogeko/vlmcsd:latest
Run with docker cli:使用 Docker CLI 运行:
docker run -d --name vlmcsd -p 1688:1688 --restart unless-stopped ghcr.io/mogeko/vlmcsd:latest
9.运行 vlmcsd 容器
bash
# 查看所有镜像
docker images
# 最简单的运行方式(前台运行)
docker run -it --rm mogeko/vlmcsd:latest
# 或者后台运行
docker run -d --name kms-server mogeko/vmsksd:latest
10.常用端口映射方式(推荐):
bash
# 将容器的1688端口映射到宿主机的1688端口
docker run -d \
--name kms-server \
-p 1688:1688 \
--restart unless-stopped \
mogeko/vlmcsd:latest
# 或者映射到其他端口(如16880)
docker run -d \
--name kms-server \
-p 16880:1688 \
--restart unless-stopped \
mogeko/vlmcsd:latest
# 如果需要UDP支持
docker run -d \
--name kms-server \
-p 1688:1688 \
-p 1688:1688/udp \
--restart unless-stopped \
mogeko/vlmcsd:latest
11.容器管理命令
bash
# 查看正在运行的容器
docker ps
# 查看所有容器(包括停止的)
docker ps -a
# 查看容器日志
docker logs kms-server
docker logs -f kms-server # 实时查看日志
# 停止容器
docker stop kms-server
# 启动已停止的容器
docker start kms-server
# 重启容器
docker restart kms-server
# 删除容器
docker rm kms-server
# 删除镜像
docker rmi mogeko/vlmcsd:latest
12 .测试KMS
bash
外部测试
yum install telnet -y ----安装 telnet
yum install net-tools -y ----安装 netstat
内部测试
# 进入容器内部
docker exec -it kms-server /bin/sh
# 在容器内部测试
vlmcsd -V
vlmcsd -h
# 从外部测试
# 安装kms客户端工具(如果有的话)
# 或者使用其他工具测试端口
nc -zv localhost 1688
telnet localhost 1688
测试 KMS 服务器是否正常工作
# 1. 检查端口监听
netstat -tlnp | grep 1688
ss -tlnp | grep 1688
# 2. 测试端口连通性
telnet 127.0.0.1 1688
# 或者
nc -zv 127.0.0.1 1688
# 3. 进入容器内部测试
docker exec -it vlmcsd /bin/sh
# 在容器内查看进程
ps aux
# 查看vlmcsd版本
vlmcsd -V
# 退出容器
exit
- 防火墙配置
bash
# Rocky Linux 8/9/10 使用firewalld
sudo firewall-cmd --zone=public --add-port=1688/tcp --permanent
sudo firewall-cmd --zone=public --add-port=1688/udp --permanent
sudo firewall-cmd --reload
# 或者临时关闭防火墙测试(仅测试用)
sudo systemctl stop firewalld
# 查看开放的端口
sudo firewall-cmd --list-ports
sudo firewall-cmd --list-all
14.管理容器
bash
# 停止容器
docker stop vlmcsd
# 启动容器
docker start vlmcsd
# 重启容器
docker restart vlmcsd
# 删除容器(先停止)
docker stop vlmcsd
docker rm vlmcsd
# 删除镜像
docker rmi ghcr.io/mogeko/vlmcsd:latest
# 更新镜像
docker pull ghcr.io/mogeko/vlmcsd:latest
docker stop vlmcsd
docker rm vlmcsd
docker run -d --name vlmcsd -p 1688:1688 --restart unless-stopped ghcr.io/mogeko/vlmcsd:latest
查看当前状态
# 查看所有相关信息
echo "=== 当前状态 ==="
echo "1. 容器状态:"
docker ps --filter "name=vlmcsd"
echo ""
echo "2. 端口监听:"
ss -tlnp | grep 1688 || netstat -tlnp | grep 1688
echo ""
echo "3. 服务器IP:"
ip addr show | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v "127.0.0.1"
echo ""
echo "4. 防火墙状态:"
sudo firewall-cmd --list-ports 2>/dev/null || echo "firewalld未运行"
echo ""
echo "KMS服务器已启动!"
echo "客户端使用IP: $(hostname -I | awk '{print $1}') 端口: 1688"
15.使用 telnet 测试 KMS 服务器:
bash
# 测试本地KMS服务器
telnet 127.0.0.1 1688
# 测试远程服务器
telnet 远程IP 1688
# 如果连接成功,按 Ctrl+] 然后输入 quit 退出
16.备份和恢复
bash
# 备份容器配置
docker inspect vlmcsd > vlmcsd-backup.json
# 备份镜像
docker save -o vlmcsd-backup.tar ghcr.io/mogeko/vlmcsd:latest
# 恢复镜像
docker load -i vlmcsd-backup.tar
# 导出容器为镜像
docker commit vlmcsd vlmcsd-backup
# 使用备份镜像运行
docker run -d --name vlmcsd-backup -p 1689:1688 vlmcsd-backup
17.故障排查
bash
# 1. 容器启动失败
docker logs vlmcsd # 查看错误信息
# 2. 端口冲突
netstat -tlnp | grep 1688 # 检查端口是否被占用
# 3. 检查容器内部
docker exec vlmcsd ps aux | grep vlmcsd
docker exec vlmcsd netstat -tulpn
# 4. 重启Docker服务
sudo systemctl restart docker
# 5. 清理无用资源
docker system prune -a # 清理所有无用镜像、容器、网络
# 6. 检查防火墙
sudo firewall-cmd --list-ports
sudo firewall-cmd --zone=public --add-port=1688/tcp --permanent
sudo firewall-cmd --reload
这样就完成了 docker-vlmcsd 的完整管理指南!