# 第十二章 跨平台部署:Windows、Mac、云服务器通用技巧

12.1 不同系统的"坑":Windows家庭版与Mac M芯片适配

新手常踩的跨系统问题:Windows家庭版装不了Docker Desktop?Mac M芯片拉取镜像报错?其实都是适配问题,一招解决:

  • Windows家庭版:默认不支持Hyper-V,需要装WSL2并升级到WSL2内核。步骤:打开PowerShell输wsl --install→重启电脑→微软应用商店装Ubuntu→打开Docker Desktop,会自动识别WSL2。

  • Mac M芯片(ARM架构):拉取x86架构的镜像会报错"exec format error"。解决办法:要么拉取ARM架构的镜像(标签带"arm64v8",比如nginx:1.25.2-alpine-arm64v8),要么开启Docker的"罗斯塔"(Rosetta)模拟x86架构(Docker Desktop设置→Features in development→勾选"Use Rosetta for x86/amd64 emulation on Apple Silicon")。

  • Linux服务器(CentOS/Ubuntu):CentOS默认防火墙是firewalld,要开放Docker端口;Ubuntu要注意APT源更新,避免装旧版本Docker。通用安装命令用Docker官方脚本:curl -fsSL https://get.docker.com | sh

12.2 云服务器部署:阿里云/腾讯云/AWS实战

云服务器部署Docker和本地类似,但要注意安全和性能优化:

12.2.1 安全配置(必做!)

  1. 开放必要端口:在云服务器控制台的"安全组"里,只开放80(HTTP)、443(HTTPS)、22(SSH)端口,Docker的2375端口绝不能开放公网(会被黑客挖矿)。

  2. 非root用户运行Docker:避免用root操作Docker,创建docker用户组并添加当前用户:

    sudo groupadd docker
    sudo usermod -aG docker $USER
    newgrp docker  # 生效用户组
    

12.2.2 性能优化

  • 设置Docker镜像加速器:云服务器拉取Docker Hub镜像慢,用阿里云加速器(登录阿里云→容器镜像服务→镜像加速器,复制配置命令)。

  • 限制容器资源:避免单个容器占满服务器CPU和内存,启动时加--cpus=0.5(限制用0.5核CPU)、--memory=512m(限制用512MB内存):

    docker run -d --cpus=0.5 --memory=512m -p 80:80 nginx
    

12.3 离线环境部署:没有网络也能装Docker

内网服务器没有外网,怎么装Docker和镜像?两步搞定:

  1. 离线安装Docker:在有网的机器上下载Docker离线安装包(比如CentOS的docker-ce-24.0.5-1.el7.x86_64.rpm)和依赖包,用U盘拷贝到离线服务器,执行rpm -ivh *.rpm --force --nodeps安装。

  2. 离线导入镜像:有网机器拉取镜像并导出为tar包,拷贝到离线服务器导入:

    # 有网机器:拉取并导出
    docker pull nginx:alpine
    docker save -o nginx-alpine.tar nginx:alpine
    
    # 离线服务器:导入
    docker load -i nginx-alpine.tar
    

掌握这些跨平台部署技巧,无论是在本地开发环境还是云服务器生产环境,都能轻松应对各种部署挑战。

下一章,我们将学习Docker常见问题的排查方法。

更多推荐