Docker vlmcsd 完整管理指南

Rocky Linux 9 - BaseOS 0.0 B/s | 0 B 00:02

Errors during downloading metadata for repository 'baseos':

错误:为仓库 '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
  1. 安装依赖包
bash 复制代码
sudo yum install -y yum-utils \
    device-mapper-persistent-data \
    lvm2 \
    curl \
    wget
  1. 添加 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
  1. 安装 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
  1. 启动并设置 Docker
bash 复制代码
# 启动Docker服务
sudo systemctl start docker
# 设置开机自启
sudo systemctl enable docker
# 检查状态
sudo systemctl status docker
# 验证安装
sudo docker version
sudo docker info
  1. 配置 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
  1. 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                    # 查看资源使用
  1. 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
  1. 防火墙配置
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 的完整管理指南!

相关推荐
SelectDB11 小时前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
曲幽18 小时前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
XIAOHEZIcode2 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220703 天前
如何搭建本地yum源(上)
运维
武子康3 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
大树885 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠5 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质6 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工6 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn866 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker