接着上一篇文章 CentOS7安装Docker,并开启2375端口(适用于开发人员) 来说。 我们在安装完 Docker 后,在开发工程中,使用 Docker 部署了一些服务,在外部无法访问时,可以临时使用 Nginx 代理来完成对这些服务的通信。 运行 MySQL 拉取 mysql5.7 镜像 docker pull ..

Docker 安装 MySQL, 并使用 Nginx 实现端口转发

接着上一篇文章 CentOS7安装Docker,并开启2375端口(适用于开发人员) 来说。
我们在安装完 Docker 后,在开发工程中,使用 Docker 部署了一些服务,在外部无法访问时,可以临时使用 Nginx 代理来完成对这些服务的通信。
运行 MySQL

拉取 mysql5.7 镜像

docker pull mysql:5.7

图片.png

创建 MySQL 数据持久化路径

mkdir -p /home/docker/mysql

运行 MySQL

docker run --name mysql \
  --hostname mysql \
  -v /home/docker/mysql:/var/lib/mysql \
  -e MYSQL_DATABASE=babydb01 \
  -e MYSQL_USER=baby \
  -e MYSQL_PASSWORD=baby \
  -e MYSQL_ROOT_PASSWORD=root \
  -d mysql:5.7 \
  --character-set-server=utf8mb4 \
  --collation-server=utf8mb4_unicode_ci

由于没有加入-p 参数,对外无访问端口,无法在虚拟机系统外部访问。

图片.png

查看 docker 容器的 ip,可以看到 IP 是 172.17.0.2

docker inspect MySQL --format='{{.NetworkSettings.IPAddress}}'

图片.png

外部访问的问题可以使用 Nginx 做转发来解决(实际生产不用多此一举)。

部署 Nginx

创建 Nginx 目录

mkdir -p /home/docker/nginx

拉取 nginx 镜像

docker pull nginx:alpine

图片.png

编辑 nginx.conf

VIM /home/docker/nginx/nginx.conf

写入以下内容(conf 文件全部内容)

worker_processes 1;
events {
    worker_connections 1024;
}
stream {
    server {
        listen 3306;
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass 172.17.0.2:3306;
    }
}

运行 Nginx,

docker run --name nginx \
  --hostname nginx \
  -v /home/docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
  -p 50086:3306 -d nginx:alpine

可以看到 nginx 将 3306 端口转发到了 50086 端口。

图片.png

使用 baby 用户,通过 navicat 连接 MySQL 检验一下,

图片.png

可以看到 MySQL 连接成功。还可以看到初始化时创建的表

图片.png

到这里,使用 Docker 部署 MySQL,并使用 Nginx 进行转发就部署完了。

以上是我个人的使用经验,如果有什么错误,请大家指正。

  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包括系统。

    258 引用 • 572 回帖 • 590 关注
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    472 引用 • 477 回帖 • 837 关注
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    228 引用 • 438 回帖 • 607 关注
回帖
请输入回帖内容...