开发者社区> autopenguin> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

基于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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
docker安装和运行mysql
docker安装和运行mysql
0 0
Docker 如何运行一个容器
大家好,我是阿萨。昨天我们学习了使用Dockerfile 创建镜像,以及给docker 打标签。有了镜像之后,就是运行容器了。今天我们就学习下如何运行容器。
0 0
通过docker制作jar镜像并运行
通过docker制作jar镜像并运行
0 0
Docker容器运行GUI程序的方法(直接进入Docker容器运行或通过SSH连接Docker容器运行)
Docker容器运行GUI程序的方法(直接进入Docker容器运行或通过SSH连接Docker容器运行)
0 0
【亲测有效】运行docker ps 出现Got permission denied问题的解决方案
【亲测有效】运行docker ps 出现Got permission denied问题的解决方案
0 0
利用 docker 运行 qrcode 获取内网文本内容
利用 docker 运行 qrcode 获取内网文本内容
0 0
Docker 运行底层原理 | 学习笔记
快速学习 Docker 运行底层原理
0 0
Docker 运行底层原理|学习笔记
快速学习 Docker 运行底层原理
0 0
【Docker】Springboot微服务打包成Docker镜像发布运行
【Docker】Springboot微服务打包成Docker镜像发布运行
0 0
【Docker 基础教程】Docker命令运行原理及一些简单的操作命令
【Docker 基础教程】Docker命令运行原理及一些简单的操作命令
0 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
玩转Docker社区–“码头工人”的技术进阶心得
立即下载
Docker 镜像原理和最佳实践
立即下载
4天实战 轻松玩转docker
立即下载