如今很多应用都开始以容器的方式运行了,只要主机上能运行 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 参数说明
-
由于不同版本的 data 目录路径不一样,最新的IvorySQL v2.1对应的是/var/lib/ivorysql/ivorysql-2/data;
-
如果选择IvorySQL v1.5,请使用:/var/lib/ivorysql/ivorysql-1/data;
-
使用选项-p 将容器端口(右边端口号5333)映射到宿主机(左边端口号),然后可以通过宿主机的端口服务访问;
-
如果要多个 IvorySQL数据库同时运行于同一台宿主机,注意本地端口和存储路径要不同;
-
--name= my-ivorysql:指明容器的名称,后面对容器的操作可以使用这个名称来标识;
-
环境变量POSTGRES_PASSWORD用来指定DBA用户的密码;
-
默认开启Oracle模式,可以修改环境变量:-e POSTGRES_INITDB_ARGS="-E 'UTF8' --compatible-mode=oracle"
-
命令最后的` 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给我们一个 ⭐奥~