远程连接docker mysql_2.Docker部署mysql,并配置远程连接

本文介绍了如何使用Docker部署MySQL并配置远程连接。首先通过docker search和docker pull获取官方mysql镜像,接着创建数据卷并启动容器,绑定端口和数据卷。在启动容器时设置环境变量MYSQL_ROOT_PASSWORD。然后通过docker container exec进入容器,创建允许远程访问的用户。最后测试远程连接,确认设置成功。
摘要由CSDN通过智能技术生成

2.1.获取mysql镜像

这里使用docker search命令在docker官方的镜像仓库中查找我们需要的mysql镜像。

docker search mysql

下面就是查找的结果,截图没有截全。

e7ac0717be00?from=timeline&isappinstalled=0

docker_search.png

我这里就选官方的mysql镜像,进行拉取:

docker pull mysql

接下来,看一下镜像的详细信息:

e7ac0717be00?from=timeline&isappinstalled=0

mysql_detail.png

上图我截取了一些比较重要的信息,可以看出暴露的端口是3306,还有一些环境变量,数据卷是/var/lib/mysql,端口与数据卷是启动容器时需要进行绑定的,端口用于远程访问,数据卷用于持久化数据。

2.2.启动容器

在启动容器之前,我先创建一个数据卷来进行持久化,当然也可以直接-v进行指定,我这里就将数据卷交给docker进行管理:

docker volume create mysql

查看创建的volume:

docker volume ls

显示:

DRIVER        VOLUME NAME

local        mysql

说明创建成功了,接下来启动容器:

docker container run -p 3306:3306 --mount source=mysql,destination=/var/lib/mysql -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=password --name mysql -d mysql

简要说明:

1.docker container run:启动一个容器并运行。以前版本直接用docker run,后来我估计是为了更细分职责,docker添加了manager command,即docker container,docker image等等。这样符合了模块化的思想,职责更明确(个人想法,有错请各位大佬更正)。

2.-p 3306:3306:宿主机的3306端口与容器的3306端口进行绑定。这样外部可以通过访问宿主机的3306端口进而访问到容器中的3306端口。

3.--mount source=mysql,destination=/var/lib/mysql:数据卷进行绑定。source是指的上面我们在宿主机创建出来的volume,destination即我们要与容器中的哪个数据卷进行绑定。当然绑定数据卷还可以用-v 宿主机数据卷:容器数据卷进行绑定。

4.-v /etc/localtime:/etc/localtime:设定容器的时间与宿主机保持一致。

5.-e MYSQL_ROOT_PASSWORD=password:设置容器的环境变量。相当于在容器中export MYSQL_ROOT_PASSWORD=password的作用。

6.--name mysql:设置容器的名称mysql。注意:容器名称是唯一的。

7.-d:告诉容器在后台运行。

8.mysql:告诉容器运行的镜像名为mysql。

2.3.设置远程访问

刚起的mysql容器不具备远程连接的功能,需要我们进入容器中进行设置,首先我们先进入启动的mysql容器:

docker container exec -it mysql bash

这时你会进入容器的终端界面,启动mysql的连接命令即可:

mysql -uroot -p

这里的-p的值就是上面你创建容器时设置的环境变量MYSQL_ROOT_PASSWORD的值。由于我这里不想root对外,所以创建了一个用于开发使用的用户(这里把localhost改为%就能远程访问啦):

create user '[用户名称]'@'%' identified by '[用户密码]';

flush privileges; --立即启用修改

然后测试一下:

mysql -h [localhost] -u[usrname] -p

e7ac0717be00?from=timeline&isappinstalled=0

mysql.png

远程连接成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值