Docker搭建MySQL服务

Docker开源镜像

前面咱们已经安装好了Docker,也简单了解了Docker。那么咱们能够尝试搭建一个MySQL服务。mysql

要搭建服务就要启动服务容器,要建立容易就要有镜像,Docker提供了一个相似Github的开源平台,提供开源镜像,放心可靠。(毕竟你们都看着源码呢)sql

Docker开源镜像传送门docker


大概步骤

1. 下载MySQL镜像
2. 建立运行容器数据库

好像很简单是吧?bash


详细步骤

第零步,查看Docker MySQL文档

MySQL文档地址:
https://hub.docker.com/_/mysql/markdown


第一步,拉取MySQL镜像

$ sudo docker pull mysql

以后docker会自动拉取(下载)MySQL镜像。tcp

等待一样是漫长的。。。ide

注意,若提示拉取失败就重复几回,总有一次会成功的。。。没办法,墙内的人民很辛苦测试

拉取成功后咱们查看一下:ui

$ sudo docker images

01


第二步,建立并启动一个MySQL容器

输入如下命令:

$ sudo docker run --name pwc-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql

02

  • –name:给新建立的容器命名,此处命名为pwc-mysql
  • -e:配置信息,此处配置mysqlroot用户的登录密码
  • -p:端口映射,此处映射主机3306端口容器pwc-mysql的3306端口
  • -d:成功启动容器后输出容器的完整ID,例如上图 73f8811f669ee...
  • 最后一个mysql指的是mysql镜像名字

到这里咱们查看容器运行状态:

$ sudo docker ps

03

上图能够看到容器的简写ID,容器的源镜像,建立时间,状态,端口映射信息,容器名字等。


第三步,测试链接MySQL

这里我使用navicat远程链接,链接MySQL前须要防火墙开放端口或者关闭防火墙。

开放端口:

$ sudo firewall-cmd --add-port=3306/tcp

关闭防火墙:

$ sudo systemctl stop firewalld

接着使用navicat链接
04

链接成功,也能够进行相关数据库操做,所以MySQL服务搭建成功!


其余

1.能够启动多个MySQL服务,由于咱们启动的是容器,容器能够有多个,只要容器名字映射段端口不同就能够了,例如:

$ sudo docker run --name dbdb -e MYSQL_ROOT_PASSWORD=123456 -p 6666:3306 -d mysql

2.查看全部容器(启动状态或者关闭状态)

$ sudo docker ps -a

3.启动和关闭容器

启动命令:

$ sudo docker start pwc-mysql   //经过指定容器名字
$ sudo docker start 73f8811f669e  //经过指定容器ID

关闭命令:

$ sudo docker stop pwc-mysql   //经过指定容器名字
$ sudo docker stop 73f8811f669e  //经过指定容器ID

3.修改MySQL配置文件有两种方法:

  • 一是进入容器,修改容器里的MySQL的配置文件,而后从新启动容器,例如:

    $ sudo docker exec -it pwc-mysql /usr/bin/bash

    而后能够进入容器的命令行模式,接着修改 /etc/mysql/my.cnf 文件便可

  • 二是挂载主机的mysql配置文件,官方文档以下:

    The MySQL startup configuration is specified in the file /etc/mysql/my.cnf, and that file in turn includes any files found in the /etc/mysql/conf.d directory that end with .cnf. Settings in files in this directory will augment and/or override settings in /etc/mysql/my.cnf. If you want to use a customized MySQL configuration, you can create your alternative configuration file in a directory on the host machine and then mount that directory location as /etc/mysql/conf.d inside the mysql container.

    If /my/custom/config-file.cnf is the path and name of your custom configuration file, you can start your mysql container like this (note that only the directory path of the custom config file is used in this command):

    $ docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

    This will start a new container some-mysql where the MySQL instance uses the combined startup settings from /etc/mysql/my.cnf and /etc/mysql/conf.d/config-file.cnf, with settings from the latter taking precedence.

我大概能够看懂,相信你们均可以的

相关文章
相关标签/搜索