1. 龙蜥系统与Docker的完美组合第一次在龙蜥OpenAnolis系统上折腾Docker时我踩了不少坑。这个基于RHEL/CentOS的操作系统在国内开发者圈子里越来越火但很多人在配置Docker时还是会遇到各种问题。今天我就把这两年积累的实战经验整理成这份保姆级教程帮你避开我踩过的那些坑。龙蜥系统最大的优势在于它对国内环境的适配性。相比原版CentOS它预装了更适合中文用户的工具链软件源访问速度也快得多。而Docker作为当前最流行的容器化解决方案在龙蜥上的表现相当稳定。我管理的十几台生产服务器都跑在OpenAnolisDocker的组合上最久的已经稳定运行400多天没出过问题。这个教程适合三类人刚接触龙蜥的系统管理员、需要搭建容器化环境的开发者以及想要优化现有Docker性能的技术人员。我会从最基础的安装开始一直讲到生产环境级别的优化配置所有命令都经过实测验证你可以放心跟着操作。2. 从零开始安装Docker2.1 系统准备在安装Docker之前我们需要先做好系统准备工作。打开终端输入以下命令检查系统版本cat /etc/os-release你应该能看到类似OpenAnolis OS 8.x的输出。我建议使用8.5或更高版本这些版本的内核对容器支持更完善。接下来更新系统sudo dnf update -y这里有个小技巧如果你发现更新速度慢可以先用sudo dnf install -y anolis-repos-extras安装扩展源里面包含了国内镜像站点配置。2.2 清理旧版本很多教程会跳过这步但我强烈建议先清理可能存在的旧版本Docker。执行以下命令sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine \ docker-selinux我曾经因为没清理干净导致新老版本冲突花了整整一天排查问题。清理完成后安装必要的依赖sudo yum install -y yum-utils device-mapper-persistent-data lvm22.3 配置阿里云镜像源国内直接访问Docker官方源速度很慢我们用阿里云的镜像源替代sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i sdownload.docker.commirrors.aliyun.com/docker-ce /etc/yum.repos.d/docker-ce.repo这两条命令先是添加阿里云源然后把配置文件里的官方地址都替换成阿里云镜像。最后更新缓存sudo yum makecache fast3. Docker安装与验证3.1 核心组件安装现在是安装Docker的时候了运行sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin这里安装了五个核心组件docker-ceDocker引擎docker-ce-cli命令行工具containerd.io容器运行时buildx-plugin多架构构建支持compose-plugin容器编排工具安装完成后启动Docker服务sudo systemctl start docker3.2 基础验证验证安装是否成功有几个关键步骤。首先检查服务状态sudo systemctl status docker你应该能看到active (running)的状态。然后运行一个测试容器sudo docker run hello-world如果看到Hello from Docker!的欢迎信息说明安装成功。最后设置开机自启sudo systemctl enable docker4. 生产级优化配置4.1 镜像加速配置国内访问Docker Hub速度很不稳定我们需要配置镜像加速。先创建配置文件sudo tee /etc/docker/daemon.json -EOF { registry-mirrors: [ https://mirrors.tuna.tsinghua.edu.cn, https://ustc-edu-cn.mirror.aliyuncs.com, https://ccr.ccs.tencentyun.com ], max-concurrent-downloads: 10, live-restore: true } EOF这里我精选了三个最稳定的国内镜像源还添加了两个优化参数max-concurrent-downloads增加并行下载数live-restore守护进程崩溃时保持容器运行应用配置并重启sudo systemctl daemon-reload sudo systemctl restart docker4.2 存储驱动优化龙蜥系统默认使用overlay2存储驱动但我们可以进一步优化。检查当前驱动docker info | grep Storage Driver如果显示devicemapper建议切换到overlay2。编辑/etc/docker/daemon.json添加storage-driver: overlay2, storage-opts: [ overlay2.override_kernel_checktrue ]overlay2性能更好资源占用更低是我在生产环境的首选。4.3 安全加固生产环境必须考虑安全性。首先限制容器权限sudo tee -a /etc/docker/daemon.json -EOF { userns-remap: default, no-new-privileges: true } EOF这两个选项会userns-remap启用用户命名空间隔离no-new-privileges禁止容器内提权然后调整默认ulimitsudo mkdir -p /etc/systemd/system/docker.service.d sudo tee /etc/systemd/system/docker.service.d/limits.conf -EOF [Service] LimitNOFILE1048576 LimitNPROC1048576 EOF最后重新加载配置sudo systemctl daemon-reload sudo systemctl restart docker5. 日常管理与维护5.1 日志管理Docker默认日志会占满磁盘需要限制大小。编辑daemon.json添加log-driver: json-file, log-opts: { max-size: 100m, max-file: 3 }这会将每个容器日志限制在100MB最多保留3个文件。5.2 资源限制防止单个容器耗尽资源很重要。创建容器时可以使用这些参数docker run -it --cpus 2 --memory 4g --memory-swap 4g nginx这限制了容器最多使用2个CPU核心和4GB内存不含交换分区。5.3 常用命令速查这里是我整理的实用命令组合# 查看容器资源使用 docker stats # 批量清理停止的容器 docker container prune # 查看镜像层历史 docker history image # 导出容器文件系统 docker export container container.tar # 性能分析 docker run --rm -it --net host --pid host alpine sh6. 网络优化技巧龙蜥系统的网络栈针对容器做了特别优化。我们可以通过几个参数进一步提升性能。编辑/etc/docker/daemon.json添加mtu: 1500, iptables: false, ip-masq: false这些配置适合大多数国内云服务器环境。如果是物理机可以把mtu调到9000需要交换机支持。测试网络性能可以用docker run --rm networkstatic/netshoot ping -c 4 www.baidu.com如果发现延迟高尝试更换网络驱动docker network create --drivermacvlan my_network7. 构建优化实践在龙蜥上构建镜像时这些技巧能大幅提升速度。首先创建构建专用配置mkdir -p ~/.docker tee ~/.docker/config.json -EOF { builder: { gc: { enabled: true, defaultKeepStorage: 20GB } } } EOF然后使用Buildx的多阶段构建docker buildx create --use docker buildx build --platform linux/amd64,linux/arm64 -t your-image .我常用的一些构建优化参数# 使用阿里云镜像 RUN sed -i s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g /etc/apk/repositories # 并行安装软件 RUN --mounttypecache,target/var/cache/apk \ apk add --no-cache package1 package2