Docker 容器运行 IvorySQL

如今很多应用都开始以容器的方式运行了,只要主机上能运行 Docker,就可以通过它来运行应用,不需要考虑环境是否满足应用的运行条件。今天由邱臣君老师给大家分享一下如何使用Docker镜像运行 IvorySQL 数据库。如果您使用容器运行过 PostgreSQL,那就比较容易上手,几乎是一样的体验,稍微有点差别,后面会说明。

1. Docker环境准备

笔者的环境是CentOS7.9和Windows10。

1.1 Linux Docker

CentOS7.9 推荐使用 YUM 安装。

第一步:设置 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

第二步:安装 Docker Engine

安装最新版本的Docker Engine、containerd和Docker Compose:

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

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

第三步:查看版本并启动

启动命令:

systemctl start docker

1.2 Windows Docker

这里提供参考连接,不再详细描述步骤。

Windows Docker 安装参考链接:

https://www.runoob.com/docker/windows-docker-install.html

2. 构建镜像

构建使用的Dockerfile和docker-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/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\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 目录路径不一样,最新的IvorySQL v2.1对应的是/var/lib/ivorysql/ivorysql-2/data;

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

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

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

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

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

  7. 默认开启Oracle模式,可以修改环境变量:-e POSTGRES_INITDB_ARGS="-E 'UTF8' --compatible-mode=oracle"

  8. 命令最后的` rogerq/ivorysql `为镜像位置,请自行替代为用户自有目录

4. 常见操作

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

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

docker exec -it my-ivorysql bash

先从宿主机登录psql:

docker exec -it my-ivorysql gosu ivorysql psql

然后就可以执行psql相关命令了。

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

docker restart my-ivorysql

5. 如何停止和删除容器

当完成使用IvorySQL数据库后,可以使用 `docker stop` 和 `docker rm` 命令停止和删除容器。

以下是如何停止和删除容器的示例:

docker stop my-ivorysql
docker rm my-ivorysql

在这个示例中,我们使用 `docker stop` 命令停止 "my-ivorysql" 容器,并使用 `docker rm` 命令删除它。

结论

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

友情提示:本文的镜像不是官方制作,仅供体验测试奥~有任何技术问题欢迎留言,感谢阅读。


关于IvorySQL

IvorySQL是由瀚高开发,基于PostgreSQL的一款具备强大Oracle兼容能力的开源数据库。紧跟PG社区,快速进行版本迭代,保持与最新版本PostgreSQL数据库内核同步,并支持丰富的PostgreSQL周边工具和扩展。

IvorySQL致力于创建包容和热情的社区,坚持开放,自由,共享的精神,保持专注、专业性。

官方网址:

https://www.ivorysql.org/zh-cn/

社区仓库:

https://github.com/IvorySQL/IvorySQL

IvorySQL社区欢迎并赞赏所有类型的贡献,期待您的加入!

还有,别忘了在GitHub给我们一个 ⭐奥~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值