Sign inSign up

rogerq/ivorysql

By rogerq

Updated over 3 years ago

Ivorysql is based on postgresql

Image
2

427

rogerq/ivorysql repository overview

IvorySQL 容器构建运行体验


导读

当今容器运行应用已经越来越火,只要主机上能运行 Docker,就可以通过镜像来运行应用,不需要考虑环境是否满足应用的运行条件。今天就给大家分享一下使用镜像运行 ivorysql 数据库。如果你容器运行过 postgresql,那就比较容易上手了,几乎是一样的体验,稍微有点差别,后面会说明。

友情提示:这里的镜像不是官方制作,仅供测试体验。

Here we go!!! >>>


1. Docker 环境准备

这里笔者的环境是CentOS7.9Windows10

1.1 Linux Docker

CentOS7.9 推荐使用 YUM 安装。

1.1.1 设置 Docker 的 YUM 资源库

安装yum-utils包(它提供实用程序“yum-config-manager”)并设置资源库。

sudo yum install -y yum-utils &&
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
1.1.2 安装 Docker Engine

安装最新版本的Docker EnginecontainerdDocker Compose

sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

这个命令会安装 Docker,但不会启动 Docker。

1.1.3 查看版本并启动

启动命令:

systemctl start docker

1.2 Windows Docker

这里提供参考连接:Windows Docker 安装,不再详细描述步骤。

2. 构建镜像

构建使用的Dockerfiledocker-entrypoint.sh文件已经上传GitHub,感兴趣的可以下载自己构建。

Github链接:https://github.com/blatwo/dockerfiles/tree/main/ivorysql/centos7-x86_64

构建命令:

docker build -t ivorysql:v2.1 .

3. 运行镜像

本章节根据上面两个 Docker 环境分别说明如何运行。笔者根据前面的构建脚本已经构建好并上传到了docker hub可以在线直接使用。

3.1 Linux 环境

Linux 环境的 Docker 在线构建示例:

docker run -dit --name=my-ivorysql -p 5333:5333 \
           -v /home/ivorsql-2/data:/var/lib/ivorysql/ivorysql-2/data \
           -e TZ="Asia/Shanghai" \
           -e LANG="en_US.utf8" \
           -e POSTGRES_HOST_AUTH_METHOD="md5" \
           -e POSTGRES_INITDB_ARGS="-E 'UTF8' --compatible-mode=oracle" \
           -e POSTGRES_PASSWORD="666666" \
           rogerq/ivorysql

3.2 Windows 环境

Windows10 环境的 Docker desktop 在线构建示例:

docker run -dit --name=my-ivorysql -p 5333:5333 `
           -v D:\dockerdata\ivorsql-2\data:/var/lib/ivorysql/ivorysql-2/data `
           -e TZ="Asia/Shanghai" `
           -e LANG="en_US.utf8" `
           -e POSTGRES_HOST_AUTH_METHOD="md5" `
           -e POSTGRES_INITDB_ARGS="-E 'UTF8' --compatible-mode=oracle" `
           -e POSTGRES_PASSWORD="666666" `
           rogerq/ivorysql

3.3 参数说明

说明

  1. 由于不同版本的 data 目录路径不一样,最新的v2.1对应的是/var/lib/ivorysql/ivorysql-2/data

  2. 如果选择v1.5,请使用:/var/lib/ivorysql/ivorysql-1/data

  3. 如果要多个 ivorysql 同时运行于同一台宿主机,注意本地端口和存储路径要不同;

  4. --name=ivorysql:指明容器的名称,后面对容器的操作可以使用这个名称来标识;

  5. 使用选项-p 将容器端口(右边端口号5333)映射到宿主机(左边端口号),然后可以通过宿主机的端口服务访问;

  6. 使用选项-v将容器的目录映射到宿主机的存储路径,这样就不用担心丢失数据;

  7. 环境变量POSTGRES_PASSWORD用来指定==DBA用户==的密码;

  8. 如果要默认开启==Oracle==模式,则修改环境变量:-e POSTGRES_INITDB_ARGS="==-E 'UTF8' --compatible-mode=oracle=="。

4. 常见操作

容器运行的 ivorysql 只配置了listen_addresses,和客户端验证允许外部主机访问。

额外的配置操作可以通过客户端工具执行命令,或者有必要则进入容器修改,进入容器的命令如下:

docker exec -it ivorysql bash

先从宿主机登录psql:

docker exec -it ivorysql gosu ivorysql psql

然后就可以执行psql相关命令了。例如:查看版本

ivorysql=# select version();

                                                        version
------------------------------------------------------------------------------------------------
 PostgreSQL 15.2 (IvorySQL 2.2) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit
(1 row)

改完配置,如果需要重启,则重启一下容器即可。重启命令如下:

docker restart ivorysql

<<< There you go!!!

结论

使用 Docker 镜像运行 IvorySQL 数据库是一种简单且有效的管理数据库环境的方法。通过使用 Docker,你可以确保数据库在不同系统上一致地运行,并且可以轻松部署和管理。使用 Docker 运行 IvorySQL 数据库可以简化开发和运维流程,并且可以提高应用程序的可移植性和可扩展性。总之,使用 Docker 镜像运行IvorySQL数据库是一种高效和实用的方法。

笔者水平有限,有技术问题可以留言,感谢阅读😊。

Tag summary

Content type

Image

Digest

sha256:1f55b3589

Size

193.6 MB

Last updated

over 3 years ago

docker pull rogerq/ivorysql