在 Ubuntu 上的 Docker 容器中安装 MySQL,你可以通过以下步骤进行操作:
- 拉取 MySQL 官方镜像
Docker 提供了一个官方的 MySQL 镜像,我们可以从 Docker Hub 拉取该镜像来运行 MySQL 容器。
首先,拉取 MySQL 镜像:
docker pull mysql:latest
这将会从 Docker Hub 拉取最新版的 MySQL 镜像。如果你想使用特定版本,可以指定版本号,例如 mysql:5.7。
- 启动 MySQL 容器
拉取完镜像后,可以启动一个 MySQL 容器。使用 docker run 命令来启动容器并设置相关配置。
以下命令会启动一个 MySQL 容器,并设置 MySQL 的 root 密码:
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest
参数说明:
–name mysql-container:指定容器的名称为 mysql-container,你可以自定义容器名。
-e MYSQL_ROOT_PASSWORD=my-secret-pw:设置 MySQL 的 root 用户密码,my-secret-pw 是密码,你可以根据需要替换。
-d:在后台启动容器。
mysql:latest:使用拉取的 MySQL 镜像(你也可以指定版本,如 mysql:5.7)。
3. 检查 MySQL 容器是否运行
启动容器后,可以使用 docker ps 查看容器是否正在运行:
docker ps
输出示例:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abc123def456 mysql:latest “docker-entrypoint.s…” 2 minutes ago Up 2 minutes 3306/tcp mysql-container
4. 连接到 MySQL 容器
你可以通过 docker exec 命令进入到运行 MySQL 的容器并与 MySQL 进行交互。
连接到容器的 bash 环境:
docker exec -it mysql-container bash
进入容器后,使用 mysql 命令行客户端连接 MySQL:
mysql -u root -p
然后输入你在启动容器时设置的 root 密码(例如:my-secret-pw)。
- 映射端口到主机(可选)
如果你想通过主机访问 MySQL 服务,需要将容器的 3306 端口映射到主机的某个端口。可以在运行容器时使用 -p 参数进行端口映射:
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 -d mysql:latest
这会将容器的 3306 端口映射到主机的 3306 端口。你现在可以通过主机的 IP 和端口(例如 localhost:3306)连接到 MySQL。
- 持久化 MySQL 数据(可选)
为了避免容器删除时丢失数据,可以将容器的 MySQL 数据目录挂载到宿主机上。
使用 -v 参数来挂载目录:
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -v /my/local/data:/var/lib/mysql -p 3306:3306 -d mysql:latest
参数说明:
-v /my/local/data:/var/lib/mysql:将宿主机上的 /my/local/data 目录挂载到容器中的 MySQL 数据目录 /var/lib/mysql,这样即使容器被删除,数据仍然保存在宿主机上。
7. 通过 MySQL 客户端连接 MySQL 容器
如果你在宿主机上安装了 MySQL 客户端工具,也可以直接通过宿主机的 MySQL 客户端连接到 Docker 容器中的 MySQL 数据库:
mysql -h 127.0.0.1 -P 3306 -u root -p
输入容器中设置的密码,就可以通过宿主机访问 MySQL 数据库了。
总结
使用 docker pull mysql:latest 拉取 MySQL 镜像。
使用 docker run 启动 MySQL 容器并设置密码和端口映射。
使用 docker exec 进入容器并通过 MySQL 命令行连接数据库。
这样就可以在 Ubuntu 上的 Docker 容器中运行 MySQL 了。