在使用阿里云 ACK(容器服务 Kubernetes 版)部署 WordPress(基于龙蜥操作系统的官方镜像)时,我们遇到了一些实际问题:

  • 压测过程中 无法正常创建新的容器实例
  • WordPress 后台上传的图片 偶尔无法显示

这些问题严重影响了线上应用的稳定性,因此我们尝试了将镜像拉取方式切换为自建私有镜像仓库,并将 WordPress 镜像手动上传至阿里云容器镜像服务(ACR),最终顺利解决了问题。

❗问题背景

  1. 使用阿里云官方提供的 WordPress 龙蜥镜像部署 ACK 无状态应用
  2. 启动无状态应用后压测时,容器实例频繁失败,Pod 创建不上
  3. 上传 WordPress 媒体文件时,图片有概率显示不出来或变为断图
  4. 推测为镜像本身问题或拉取过程不稳定,因此改用 ACR 私有镜像方式部署

🛠 开通阿里云容器镜像服务(ACR)

阿里云 ACR 容器镜像服务默认未开通,首次使用需要手动开通服务,并且设置镜像仓库密码,用户名为阿里云登录账号相同名称。

🧱 创建命名空间和私有仓库

  1. 进入 ACR 控制台 ➜ 实例管理 ➜ 选择 个人版实例

5BBA5DD4598F4A599D9344F1672E721C.png
2. 创建命名空间(名称可自定义,例如 myspace

0C455E1F833543F4A27AFB0390BE661D.png
3. 创建镜像仓库,填写以下信息

C36B6779431E491A861EC38A89687997.png
3469EE110F674FBE9735121D5872CF2E.png

🖥 在本地ECS推送WordPress镜像

你需要一台能访问公网的 ECS 实例来执行镜像构建和推送。

示例环境:CentOS 7.9

安装 Docker

yum install -y docker

配置镜像加速器(提升拉取速度)

打开 ACR 控制台 ➜ 镜像加速器,按文档配置(直接复制粘贴)

EA0E75DD13BF42ACAEF27C3C5261684E.png

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://w9nik998.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

拉取 WordPress 官方镜像

B819C2ED24914F04896CBAD0B1F53A57.png

docker pull wordpress

📦 将WordPress镜像推送至ACR

7872CC6AFC4E44C987FFAD098BF1CE5E.png

根据镜像仓库的命令操作,期间需要输入仓库密码。

8F7477B00FCD40D4A83BB85B7713795C.png

推送完成后,回到镜像仓库页面,即可在镜像版本中看到该镜像。

871E0590FA6441BA8E68761F41706529.png

🚀 在ACK中使用自定义镜像部署无状态应用

在 ACK 中创建无状态应用,使用自定义镜像:

6DB0564E97F84A868638CE695EAA70AF.png

F636E77BB825457EB00DD2828433E93F.png

完成后一定要设置镜像密钥,不然ACK无法拉取镜像。

5314A9599C804F3BA64D0A3C7ED8B653.png

创建后,ACK 将从 ACR 拉取镜像并部署 WordPress,无需再依赖公网镜像源。

✅ 部署效果与总结

  • 📌 容器创建速度明显提升
  • 📌 WordPress 图片上传稳定性大幅改善
  • 📌 避免了拉取龙蜥镜像过程中的网络波动或镜像问题

📝 总结建议

  • 阿里云 ACK 虽然提供了官方镜像,但线上稳定性仍需验证,建议关键项目使用自定义镜像
  • ACR 是强大可靠的镜像仓库,推荐结合企业级项目使用
  • 推送自定义镜像后还能自定义 Dockerfile,进一步精简或安全加固镜像