努力
奋斗

阿里云ECS如何安装docker的mysql镜像?

服务器

在阿里云 ECS 上安装 Docker 并运行 MySQL 镜像,可以分为以下几个步骤:


✅ 一、前提条件

  1. ECS 实例已运行(推荐 CentOS 7+/Ubuntu 18.04+)
  2. 拥有 root 或 sudo 权限
  3. 开放安全组端口:确保 ECS 安全组中放行了 MySQL 默认端口 3306(TCP),否则外部无法连接。

✅ 二、安装 Docker

1. 更新系统包

sudo yum update -y          # CentOS/RHEL
# 或
sudo apt update && sudo apt upgrade -y  # Ubuntu/Debian

2. 安装 Docker Engine

CentOS/RHEL:

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker

Ubuntu/Debian:

sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker

3. 验证 Docker 是否安装成功

docker --version
docker run hello-world

如果看到 Hello from Docker! 表示安装成功。


✅ 三、拉取并运行 MySQL 镜像

1. 拉取 MySQL 官方镜像

docker pull mysql:8.0

可选版本:mysql:5.7、mysql:latest 等

2. 创建本地目录用于数据持久化(推荐)

mkdir -p ~/mysql-data
chmod 777 ~/mysql-data   # 简化权限设置,生产环境建议更严格

3. 启动 MySQL 容器

docker run --name mysql-container 
  -e MYSQL_ROOT_PASSWORD=your_secure_password 
  -e MYSQL_DATABASE=mydb 
  -e MYSQL_USER=dbuser 
  -e MYSQL_PASSWORD=dbpassword 
  -v ~/mysql-data:/var/lib/mysql 
  -p 3306:3306 
  -d mysql:8.0

参数说明:

参数 说明
--name 容器名称
-e MYSQL_ROOT_PASSWORD root 用户密码(必填)
-e MYSQL_DATABASE 初始化时创建的数据库名
-e MYSQL_USER / MYSQL_PASSWORD 创建普通用户和密码(可选)
-v ~/mysql-data:/var/lib/mysql 数据卷挂载,防止容器删除后数据丢失
-p 3306:3306 映射主机端口到容器端口
-d 后台运行

✅ 四、验证 MySQL 是否正常运行

1. 查看容器状态

docker ps

应看到类似输出:

CONTAINER ID   IMAGE       COMMAND                  CREATED         STATUS         PORTS                    NAMES
abc123def456   mysql:8.0   "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes   0.0.0.0:3306->3306/tcp   mysql-container

2. 进入容器内部测试连接

docker exec -it mysql-container mysql -u root -p

输入你设置的 MYSQL_ROOT_PASSWORD,若能登录成功,则 MySQL 运行正常。

3. 从宿主机连接 MySQL(可选)

mysql -h 127.0.0.1 -P 3306 -u root -p

或通过远程客户端(如 Navicat、DBeaver)连接 ECS 公网 IP 的 3306 端口。


✅ 五、常见问题排查

1. 无法远程连接?

  • 检查 阿里云安全组 是否放行 3306 端口(入方向 TCP)。
  • 检查 MySQL 是否监听所有地址:
SHOW VARIABLES LIKE 'bind_address';
-- 应为 '*' 或 '0.0.0.0'

若为 127.0.0.1,需修改 MySQL 配置或使用 --bind-address=0.0.0.0 启动。

2. 容器启动失败?

查看日志:

docker logs mysql-container

常见原因:端口冲突、密码不符合复杂度要求、磁盘空间不足等。

3. 数据持久化问题?

确保 -v 挂载路径存在且权限正确。也可使用 Docker Volume:

docker volume create mysql-data
docker run ... -v mysql-data:/var/lib/mysql ...

✅ 六、(可选)使用 Docker Compose 管理

创建 docker-compose.yml:

version: '3.8'
services:
  mysql:
    image: mysql:8.0
    container_name: mysql-container
    environment:
      MYSQL_ROOT_PASSWORD: your_secure_password
      MYSQL_DATABASE: mydb
      MYSQL_USER: dbuser
      MYSQL_PASSWORD: dbpassword
    volumes:
      - ./mysql-data:/var/lib/mysql
    ports:
      - "3306:3306"
    restart: always

启动:

docker compose up -d

✅ 总结

步骤 命令
安装 Docker yum/apt install docker
启动服务 systemctl start docker
拉取镜像 docker pull mysql:8.0
运行容器 docker run ... mysql:8.0
验证 docker ps, docker exec

如需更高可用性,可考虑使用 阿里云 RDS MySQL 替代自建,但 Docker 方式适合开发、测试或小规模部署场景。

如有具体问题(如权限、网络、性能优化),欢迎继续提问!

未经允许不得转载:轻量云Cloud » 阿里云ECS如何安装docker的mysql镜像?