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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM