美文网首页
2.Docker部署mysql,并配置远程连接

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

作者: 风吹柳_柳随风 | 来源:发表于2018-08-11 13:07 被阅读0次

    参考:https://blog.csdn.net/smartdt/article/details/78126324

    2.1.获取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

    远程连接成功!

    相关文章

      网友评论

          本文标题:2.Docker部署mysql,并配置远程连接

          本文链接:https://www.haomeiwen.com/subject/bymrbftx.html