Docker部署mysql,并配置远程连接
这里使用docker search
命令在docker官方的镜像仓库中查找我们需要的mysql镜像。
docker search mysql
下面就是查找的结果,截图没有截全。
docker_search.png
我这里就选官方的mysql镜像,进行拉取:
docker pull mysql
接下来,看一下镜像的详细信息:
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
mysql.png
远程连接成功!
作者:风吹柳_柳随风
链接:https://www.jianshu.com/p/e7ac0717be00
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
以上是 Docker部署mysql,并配置远程连接 的全部内容, 来源链接: utcz.com/z/515841.html