当使用 Docker Compose 部署 MySQL 时遇到依赖版本不一致的问题,通常有以下几种解决方案:
ERROR: for mysql Cannot create container for service mysql: Conflict. The container name "/mysql" is already in use
ERROR: pull access denied for mysql, repository does not exist or may require 'docker login'
ERROR: no matching manifest for linux/amd64 in the manifest list entries
在 docker-compose.yml
中明确指定 MySQL 版本,避免使用 latest
标签:
services:
mysql:
image: mysql:8.0 # 指定具体版本
environment:
MYSQL_ROOT_PASSWORD: example
# 停止并删除旧容器
docker-compose down
# 删除未使用的卷
docker volume prune
如果使用 Apple Silicon (M1/M2) 芯片,可能需要指定平台:
services:
mysql:
image: mysql:8.0
platform: linux/amd64 # 强制使用amd64架构
environment:
MYSQL_ROOT_PASSWORD: example
# 测试能否拉取镜像
docker pull mysql:8.0
# 如有必要,配置Docker代理
version: '3.8'
services:
mysql:
image: mysql:8.0.33
platform: linux/amd64
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: yourpassword
MYSQL_DATABASE: yourdb
MYSQL_USER: user
MYSQL_PASSWORD: userpassword
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
restart: unless-stopped
volumes:
mysql_data:
docker-compose.yml
文件语法是否正确docker-compose config
验证配置docker-compose up --build
netstat -tulnp | grep 3306
如果问题仍然存在,请提供具体的错误信息以便进一步分析。