[转帖]Docker 容器运行 ivorysql 之体验

docker,容器,运行,ivorysql,体验 · 浏览次数 : 0

小编点评

**1. Docker 环境准备** **1.1 Linux 环境** * 使用二进制文件压缩包安装 Docker * 使用 Docker 官方提供的参考文档进行安装 **1.2 Windows 环境** * 使用 Docker Desktop 进行安装 **2. 运行 ivorysql 镜像** **2.1 Linux 环境** * 使用 `docker run` 命令运行 ivorysql 镜像 * 指定容器名称 *映射容器端口 * 配置环境变量 `POSTGRES_PASSWORD` **2.2 Windows 环境** * 使用 `docker run` 命令运行 ivorysql 镜像 * 使用 `docker run` 命令指定容器名称和端口映射 * 配置环境变量 `POSTGRES_PASSWORD` **3. 常见操作** * 容器运行的 ivorysql 只配置了 `listen_addresses`,允许外部主机访问 * 可以通过 `docker exec` 命令进入容器并使用 `psql` 命令连接数据库 * 可以通过 `docker exec` 命令修改容器配置,重启容器时自动加载配置

正文

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

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

Here we go!!! >>>


1. Docker 环境准备

这里笔者的环境是CentOS7.9Windows10。这里提供参考链接,不再详细描述步骤。

1.1 Linux Docker

参考方法:使用二进制文件压缩包安装

1.2 Windows Docker

参考方法:Windows Docker 安装

2. 运行 ivorysql 镜像

下面根据上面两个 Docker 环境分别说明如何运行。

2.1 Linux 环境

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

docker run -dit --rm --name=ivorysql -p 5333:5333 \
           -v /home/ivorsql:/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

    2.2 Windows 环境

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

    docker run -dit --name=ivorysql -p 5333:5333 `
               -v D:\dockerdata\ivorsql:/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
    

      2.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”。

      3. 常见操作

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

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

      docker exec -it ivorysql bash
      

        先从宿主机登录psql:

        docker exec -it ivorysql gosu ivorysql psql
        

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

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

          docker restart ivorysql
          

            <<< There you go!!!

            后记

            文章有点过于简单,后续会持续完善,有问题建议也可以在评论区提或私信皆可。感谢阅读😊。

            文章知识点与官方知识档案匹配,可进一步学习相关知识

            与[转帖]Docker 容器运行 ivorysql 之体验相似的内容:

            [转帖]Docker 容器运行 ivorysql 之体验

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

            [转帖]docker容器跨主机网络overlay

            https://www.cnblogs.com/machangwei-8/p/15757120.html 目录 拉取镜像,运行容器 浏览器上访问Consul 修改host1,host2的docker daemon配置文件 创建网络 验证 在overlay中运行容器 运行 查看一下这两个网卡 查看生成

            [转帖]Docker容器无法访问网络问题(网段冲突)

            近日在使用docker在腾讯云服务器上部署项目 运行容器时死活访问不了网络,不论是外网还是内网。 最后找到原因是docker容器ip网段与服务器内网ip网段冲突导致的 使用此命令查看到 ifconfig 1 可以看到ip段冲突了 咱们重建docker的ip段 首先删除docker的网卡docker0

            [转帖]Docker限制容器的资源

            docker在默认运行容器的情况下,是不会对运行的容器进行资源限制的,在自己的实验环境的话是随便你怎么弄的,不过在生产中是一定会对docker运行的容器进行资源限制的,如果不限制的话在生产中会带来很多弊端的。例如当资源没有做限制时,资源用完了后会导致其他的容器无法运行,在生产中的话是会部署几十个或者

            [转帖]docker容器自动重启,看完这篇彻底明白了

            一. JVM内存区域的划分 1.1 java虚拟机运行时数据区 java虚拟机运行时数据区分布图: JVM栈(Java Virtual Machine Stacks): Java中一个线程就会相应有一个线程栈与之对应,因为不同的线程执行逻辑有所不同,因此需要一个独立的线程栈,因此栈存储的信息都是跟当

            [转帖]docker编译speccpu2017

            实验步骤: 1.下载docker和speccpu2017 2.docker下载镜像,创建容器 3.将下载的宿主机speccpu2017拷贝到docker创建的容器中(docker cp) 4.在docker容器(docker exec)中编译运行speccpu2017 下载docker yum in

            [转帖]如何在一个Docker中同时运行多个程序进程?

            https://cloud.tencent.com/developer/article/1683445 我们都知道Docker容器的哲学是一个Docker容器只运行一个进程,但是有时候我们就是需要在一个Docker容器中运行多个进程 那么基本思路是在Dockerfile 的CMD 或者 ENTRYP

            [转帖]Docker、containerd的关系

            Docker、containerd的关系 containerd囊括了单机运行一个容器时所需要的一切: 为了能够支持多种OCI Runtime,containerd 内部使用containerd-shim,每启动一个容器都会创建一个新的containerd-shim进程,指定容器ID,Bundle目录

            [转帖]docker 镜像分层原理及容器写时复制

            https://xie.infoq.cn/article/19c98e8b15ff9f610a2ee26bd 一、镜像分层与容器层 在进行docker pull 下载镜像的时候,通过下图可以看到镜像是分层下载并解压的。如 nginx:1.20.2 的镜像,其镜像是分为 6 层。 当我们运行一个新的容

            [转帖]nsenter 工具的使用

            一、背景 对于运行在后台的docker容器,我们经常需要做的事情是进入到容器中,docker为我们提供了docker exec 、docker attach 命令,并且还提供了nsenter工具,外部工具供我们使用。 docker attach存在的问题是:当多个窗口同时attach到同一个容器时,