基于Docker Hub镜像的ProxySQL容器化部署与运行

简介:

基于Docker Hub镜像的ProxySQL容器化部署与运行:

1 拉取镜像

从Docker Hub中拉取ProxySQL数据库中间件镜像的方法如下。

# 拉取最新的镜像
[root]# docker pull proxysql/proxysql
# 拉取指定版本的镜像
[root]# docker pull proxysql/proxysql:2.0.7

可按需拉取最新或指定版本的ProxySQL镜像

2 创建外挂卷

例如,创建名为proxysql207_1的卷,用于保存持久化的配置数据,命令类似如下。

ProxySQL的配置虽然可以写成.cnf文件,但主要仍以SQLite3库的形式保存。为了避免容器异常后配置数据丢失,因此创建外挂卷以持久化配置。

[root]# docker volume create --name proxysql207_1

3 编辑初始配置文件

为了让ProxySQL能正常启动,且可以被远程配置,所以编辑如下配置文件(proxysql.cnf)。

datadir="/var/lib/proxysql"

admin_variables=
{
    admin_credentials="admin:admin;radmin:radmin"
    mysql_ifaces="0.0.0.0:6032"
}

mysql_variables=
{
    threads=4
    max_connections=2048
    default_query_delay=0
    default_query_timeout=36000000
    have_compress=true
    poll_timeout=2000
    interfaces="0.0.0.0:6033"
    default_schema="information_schema"
    stacksize=1048576
    server_version="5.5.30"
    connect_timeout_server=3000
    monitor_username="monitor"
    monitor_password="monitor"
    monitor_history=600000
    monitor_connect_interval=60000
    monitor_ping_interval=10000
    monitor_read_only_interval=1500
    monitor_read_only_timeout=500
    ping_interval_server_msec=120000
    ping_timeout_server=500
    commands_stats=true
    sessions_sort=true
    connect_retries_on_failure=10
}

4 启动容器

4.1 无配置数据的情况下启动容器

例如,基于proxysql:2.0.7镜像,启动名为proxysql207_1的容器,命令类似如下。

[root]# docker run --name proxysql207_1 \
-p 60321:6032 -p 60331:6033 \
-v /home/sid/config/proxysql/proxysql.cnf:/etc/proxysql.cnf -v proxysql207_1:/var/lib/proxysql \
-d proxysql/proxysql:2.0.7

--name:指定了容器名称;
-p:指定了docker环境内外端口映射关系。该示例中,将ProxySQL的管理端口(6032)及SQL端口(6033),分别映射至docker环境外的60321及60331端口上;
-v:指定了docker环境内外存储映射关系。该示例中,将初始配置文件映射为/etc/proxysql.cnf,作为ProxySQL初次启动的配置文件;同时,将名为proxysql207_1的docker volumn挂载至容器内的/var/lib/proxysql目录下,从而实现配置持久化

注意:ProxySQL启动时,主要是从DISK库中读取配置加载到MEMORY并最终加载到RUNTIME生效。
注意proxysql.cnf配置文件的挂载应先于/var/lib/proxysql目录的挂载,因为只有配置文件正确了,才能生成正确的配置数据库

-d:在后台运行容器

4.2 已有配置数据的情况下启动容器

假设,ProxySQL的配置数据已经存于名为proxysql207_1的docker volumn内,则基于proxysql:2.0.7镜像,启动名为proxysql207_1的容器,命令类似如下。

[root]# docker run --name proxysql207_1 \
-p 60321:6032 -p 60331:6033 \
-v proxysql207_1:/var/lib/proxysql \
-d proxysql/proxysql:2.0.7

--name:指定了容器名称;
-p:指定了docker环境内外端口映射关系。该示例中,将ProxySQL的管理端口(6032)及SQL端口(6033),分别映射至docker环境外的60321及60331端口上;
-v:指定了docker环境内外存储映射关系。该示例中,无需再指定启动配置文件,只需将名为proxysql207_1的docker volumn挂载至容器内的/var/lib/proxysql目录下,即可重用配置

注意:ProxySQL启动时,主要是从DISK库中读取配置加载到MEMORY并最终加载到RUNTIME生效。

-d:在后台运行容器

5 修改配置

当容器启动后,便可以如下命令,登陆ProxySQL管理端,按需进行配置。

[root]# mysql -h127.0.0.1 -P60321 -uradmin -pradmin --prompt "ProxySQL Admin>"

参考资料:

  1. https://hub.docker.com/r/proxysql/proxysql
目录
相关文章
|
4月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
1946 4
|
4月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
226 5
|
4月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
5月前
|
存储 Docker Python
docker 部署 sftp
本文介绍SFTP服务的部署与配置,包括users.conf用户配置规则、Docker容器运行命令及上传目录权限说明,重点解析atmoz/sftp镜像的chroot机制与子目录映射,确保用户登录后正确访问/upload目录,并提供Python脚本实现文件上传示例。
500 12
docker 部署 sftp
|
5月前
|
运维 Linux 数据库
基于 Docker 部署 n8n 指南,新手一看就会
本教程详解如何通过 Docker 快速部署开源自动化工具 n8n,适合新手快速上手。内容涵盖官方部署步骤、常见难点及第三方一键部署方案,助你高效搭建自动化工作流平台。
1904 6
|
4月前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
1383 7

相关产品

  • 容器服务Kubernetes版