如何用Docker搭建外部可以访问的mysql

发布时间:2022-05-31 11:20:24 作者:zzz
来源:亿速云 阅读:1024

如何用Docker搭建外部可以访问的MySQL

在现代的软件开发中,Docker已经成为了一个不可或缺的工具。它可以帮助开发者快速搭建和部署各种服务,包括数据库。MySQL作为最流行的关系型数据库之一,也可以通过Docker轻松部署。本文将详细介绍如何使用Docker搭建一个外部可以访问的MySQL服务。

1. 安装Docker

在开始之前,确保你的系统上已经安装了Docker。如果还没有安装,可以参考以下步骤进行安装。

在Ubuntu上安装Docker

sudo apt-get update
sudo apt-get install docker.io
sudo systemctl start docker
sudo systemctl enable docker

在CentOS上安装Docker

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

在macOS上安装Docker

你可以从Docker官网下载Docker Desktop并安装。

2. 拉取MySQL镜像

Docker Hub上有官方的MySQL镜像,我们可以直接拉取并使用。

docker pull mysql:latest

3. 运行MySQL容器

拉取镜像后,我们可以通过以下命令运行一个MySQL容器。

docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -d -p 3306:3306 mysql:latest

参数解释

4. 验证MySQL服务

运行容器后,我们可以通过以下命令验证MySQL服务是否正常运行。

docker ps

你应该能看到类似以下的输出:

CONTNER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                    NAMES
123456789abc   mysql:latest   "docker-entrypoint.s…"   10 seconds ago   Up 9 seconds    0.0.0.0:3306->3306/tcp   mysql-container

这表明MySQL容器已经成功运行,并且宿主机的3306端口已经映射到容器的3306端口。

5. 连接到MySQL

现在,你可以通过任何MySQL客户端连接到这个MySQL服务。假设你的宿主机IP地址为192.168.1.100,你可以使用以下命令连接到MySQL:

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

输入之前设置的密码my-secret-pw,你应该能够成功连接到MySQL。

6. 持久化数据

默认情况下,Docker容器中的数据是临时的,容器删除后数据也会丢失。为了持久化MySQL数据,我们可以将宿主机的目录挂载到容器的数据目录。

docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -d -p 3306:3306 -v /path/to/host/dir:/var/lib/mysql mysql:latest

参数解释

7. 配置远程访问

默认情况下,MySQL容器只允许本地访问。如果你希望从外部网络访问MySQL,需要修改MySQL的配置。

进入MySQL容器

docker exec -it mysql-container bash

登录MySQL

mysql -u root -p

修改用户权限

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'my-secret-pw';
FLUSH PRIVILEGES;

退出MySQL和容器

exit
exit

重启MySQL容器

docker restart mysql-container

现在,你应该可以从外部网络访问MySQL服务了。

8. 使用Docker Compose

如果你需要更复杂的配置,可以使用Docker Compose来管理MySQL服务。创建一个docker-compose.yml文件:

version: '3.1'

services:
  db:
    image: mysql:latest
    container_name: mysql-container
    environment:
      MYSQL_ROOT_PASSWORD: my-secret-pw
    ports:
      - "3306:3306"
    volumes:
      - /path/to/host/dir:/var/lib/mysql

然后运行以下命令启动服务:

docker-compose up -d

9. 总结

通过Docker,我们可以快速搭建一个外部可以访问的MySQL服务。本文介绍了从安装Docker、拉取MySQL镜像、运行容器、持久化数据到配置远程访问的完整流程。希望这篇文章能帮助你轻松搭建和管理MySQL服务。

推荐阅读:
  1. 外部访问
  2. 解决mysql禁止外部访问方案简析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

docker mysql

上一篇:CentOS7中配置Docker的yum源并安装使用的方法

下一篇:Docker容器如何修改配置文件

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》