Docker部署数据库系列

128次阅读
没有评论

共计 10520 个字符,预计需要花费 27 分钟才能阅读完成。

AI 智能摘要
本文详细列出了多种数据库(如 Redis、MongoDB、PostgreSQL、MySQL 等)的 Docker 部署方式和配置方法,包括命令执行、目录创建、密码设置、端口映射及安装过程。涉及国产数据库如 Kingbase、GBase8a 和华为高斯(GaussDB),以及 OceanBase、ClickHouse 和 IoTDB 等。摘要重点突出各数据库的主要配置项、启动方式、账号密码信息以及必要时的安装步骤,适用于 Linux 环境下进行容器化数据库配置和部署的参考。
— 此摘要由 AI 分析文章内容生成,仅供参考。

Redis

redis_data=/opt/redis
mkdir -p ${redis_data}/{conf,data}
# 创建配置文件
cat> ${redis_data}/conf/redis.conf<< EOF
# 关闭保护模式,允许远程连接
protected-mode no
# 开启 AOF 持久化
appendonly yes
# 密码
requirepass Hbis@123
# 数据库
databases 80
EOF

# 启动
docker run -d  \
  -p 6379:6379 \
  --restart always \
  --name=redis \
  -v  ${redis_data}/conf/redis.conf:/etc/redis/redis.conf \
  -v  ${redis_data}/data:/data \
  --privileged=true \
  redis:7.0 redis-server /etc/redis/redis.conf

Mongdb

mongo_data=/usr/local/mongo
mkdir -p ${mongo_data}/db
docker run -d \
    -p 27017:27017 \
    --restart=always \
    --name=mongodb36 \
    -e MONGO_INITDB_ROOT_USERNAME=root \
    -e MONGO_INITDB_ROOT_PASSWORD=Hbis@123 \
    -v ${mongo_data}/db:/data/db \
    mongo:3

Postgresql

docker run -p 15432:5432 --name sonarqube_postgres \
-u root --restart=always \
-v /etc/localtime:/etc/localtime \
-v /data/postgres:/var/lib/postgresql/data \
-e POSTGRES_USER=sonar \
-e POSTGRES_PASSWORD=sonar \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-d arm64v8/postgres:12.5

SqlServer

docker run \
  -e "ACCEPT_EULA=Y" \
  -e "MSSQL_SA_PASSWORD=Hbis@123" \
  -e "TZ=Asia/Shanghai" \
  -p 1433:1433 \
  --name sqlserver2017 \
  -d devcoderz2014/sqlserver-2017-multi:latest

Mysql

DATADIR="/opt/mysql/data"
mkdir -p $DATADIR

docker run \
    --name mysql \
    --restart=always \
    --privileged=true \
    -p 3306:3306 \
    -v ${DATADIR}:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD='Hbis@123' \
    -e MYSQL_ROOT_HOST='%' \
    -e TZ=Asia/Shanghai \
    -d mysql/mysql-server:8.0.28 \
    --authentication_policy=mysql_native_password \
    --max-connections=20000 \
    --max-connect-errors=5000 \
    --character-set-server=utf8mb4 \
    --lower-case-table-names=1 \
    --sql-mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'

Kingbase(国产)

mkdir -p /mnt/data
docker run -tid --privileged \
-p 421:54321 \
-v /mnt/data:/home/kingbase/userdata/ \
-e NEED_START=yes  \
-e DB_USER=kingbase  \
-e DB_PASSWORD=123456 \
-e DB_MODE=mysql  \
--name kingb1ase  \
registry.cn-hangzhou.aliyuncs.com/nwnusun/kingbase:kingbase_v008r006c008b0020_single_x86 /usr/sbin/init

Gbase8a(国产)

docker run \
    -itd \
    --name gbase8a \
    --hostname=gbase8a \
    --privileged=true \
    -p 5258:5258 \
    shihd/gbase8a:1.0
 // 账号密码:root  root

Oracle19c

docker run \
    -d \
    -p 1521:1521 \
    --name oracle19c \
    -d registry.cn-hangzhou.aliyuncs.com/nwnusun/oracle:19c

修改密码

docker exec -it --user root oracle19c bash
cat >/etc/profile <<EOF
docker exec -it --user root oracle19c bash
EOF

exit
surce /etc/profile
sqlplus / as sysdba
alter user system identified by system;
alter user sys identified by sys;

服务名:ORCLCDB

用户名:system

密码:system

Dameng(国产)

docker run \
    -d \
    -p 30236:5236 \
    --restart=always \
    --name=dm8_test \
    --privileged=true \
    -e LD_LIBRARY_PATH=/opt/dmdbms/bin \
    -e PAGE_SIZE=16 \
    -e EXTENT_SIZE=32 \
    -e LOG_SIZE=1024 \
    -e UNICODE_FLAG=1 \
    -e CASE_SENSITIVE=1  \
    -e INSTANCE_NAME=dm8_test \
    -v /opt/dm_data:/opt/dmdbms/data \
    registry.cn-hangzhou.aliyuncs.com/nwnusun/dmeng:dm8_20230808_rev197096_x86_rh6_64
  • CASE_SENSITIVE 默认大小写敏感

账号:SYSDBA 密码:SYSDBA001

Oscar

https://www.cnblogs.com/hxlasky/p/18053462

网上一些镜像没有合适的,那就安装包部署吧

下载安装包

wget http://www.shentongdata.com/old_bak/iso/wzsyx/ShenTong7.0_linux64.rar 
wget https://nwnusun.oss-cn-beijing.aliyuncs.com/ShenTong7.0_linux64.zip?Expires=1731378929&OSSAccessKeyId=TMP.3KhDKuXYMRHeY6AgRVx5ZyyUkd87i4PphhCWRaBK6BqKGXLBJ3zUo9rXAWnrThV9JZm1kqDRzofJSSrz6riDA1d2fKmuzN&Signature=RQxV%2FKcHe1lcLcCyNjtjXcLTQZk%3D

安装步骤

如果下载的是 rar 压缩包

wget http://www.rarlab.com/rar/rarlinux-x64-5.6.0.tar.gz
tar -zxvf rarlinux-x64-5.6.0.tar.gz
cd rar
make 
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib

开始安装

chmod 755 setup
./setup -console

选项步骤

[root@localhost ShenTong7.0_linux64]# ./setup -console
Command line arguments: -console 
Select your language
0  [x] chn
1  [ ] eng
Input selection: 
1
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Target Path
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Select the installation path:  [/opt/ShenTong] 

The target directory will be created: 
/opt/ShenTong
----------------------------------------------------
Enter O for OK, C to Cancel: 
o
----
full
----
Enter Y for Yes, N for No: 
You can choose whether to set the agent password or not
0  [x] No password require(use default password)
1  [ ] Please input a password
Input selection: 
0

You can choose whether to register ha service or not
0  [x] no
1  [ ] yes
Input selection:
0
choose jre version
0  [x] jre1.8
1  [ ] jre1.6
Input selection:
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Setup Shortcuts
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

----------------------------------
Create shortcuts in the Start-Menu
----------------------------------
Enter Y for Yes, N for No: 
----------------------------------
Create shortcuts in the Start-Menu
----------------------------------
Enter Y for Yes, N for No: 
n
------------------------------------------
Create additional shortcuts on the desktop
------------------------------------------
Enter Y for Yes, N for No: 
n
------------------------------
create shortcut for: all users
------------------------------
Enter Y for Yes, N for No: 
n

whether create db
0  [x] no
1  [ ] yes
Input selection: 
1
DB Name: [] 
HXL            ## 必须大写, 小写好像不管用, 数据库无法启动
DB Encoding: [] 
utf8
DB Others: []



Installation was successful
Application installed on /opt/ShenTong
[ Writing the uninstaller data ... ]
[ Console installation done ]

查看数据库已经启动

[root@localhost opt]# ss -nlp|grep 2003
u_str  LISTEN     0      4096   /tmp/.s.oscar.2003 82276                 * 0                   users:(("oscar",pid=15278,fd=14))
tcp    LISTEN     0      4096      *:2003                  *:*                   users:(("oscar",pid=15278,fd=13))
[root@localhost opt]#

[root@localhost opt]# ps -ef|grep oscar
root     12392     1  0 13:45 pts/2    00:00:00 /opt/ShenTong/bin/oscaragent -e /opt/ShenTong
root     15278     1  0 14:57 pts/0    00:00:01 /opt/ShenTong/bin/oscar -o normal -d HXL
root     15440  3096  0 15:00 pts/2    00:00:00 grep --color=auto oscar

若是 oscaragent 没有启动的话, 可以使人如下方式进行手工启动

/etc/init.d/oscaragentd start

停掉数据库设置大小写不敏感

/etc/init.d/oscardb_HXLd stop

vi /opt/ShenTong/admin/HXL.conf
name_case_sensitive=false

/etc/init.d/oscardb_HXLd start

数据库:HXL 用户:sysdba 密码:szoscar55

Hana

创建数据目录

mkdir -p /opt/hana

在目录 /opt/hana 创建hana.json 文件,写入密码

{
"master_password" : "<password>"
}

设置权限

chmod 777 -R /opt/hana

启动容器

docker run \
    -d \
    -h 8c27b456f339 \
    -p 39013:39013 \
    -p 39017:39017 \
    -p 39041-39045:39041-39045 \
    -p 1128-1129:1128-1129 \
    -p 59013-59014:59013-59014 \
    -v /opt/hana:/hana/mounts \
    --ulimit nofile=1048576:1048576 \
    --sysctl kernel.shmmax=18446744073692774399 \
    --sysctl net.ipv4.ip_local_port_range='40000 60999' \
    --sysctl kernel.shmmni=524288 \
    --sysctl kernel.shmall=18446744073692774399 \
    --name hana \
    store/saplabs/hanaexpress:2.00.045.00.20200121.1 \ 
    # 或者 registry.cn-hangzhou.aliyuncs.com/nwnusun/hana:2.00.045.00.20200121.1
    --passwords-url file:///hana/mounts/hana.json \
    --agree-to-sap-license

启动成功后,输出如下

listence: 48s
    Pre start: 94s
    HANA startup: 63s
    (Post start) Tenant creation: 243s
    (Post start) License import: 0s
    (Post start) Hook /hana/hooks/post_start/201_hxe_optimize: 30s
    (Post start) Hook /hana/hooks/post_start/203_set_hxe_info: 0s
    Post start: 278s
    Overall: 436s
Ready at: Fri Nov  8 09:04:31 UTC 2024
Startup finished!
Ready at: Fri Nov  8 09:04:31 UTC 2024
Startup finished!

端口:39017

用户名:SYSTEM

密码:Hbis@123

DB2

docker run \
    -itd \
    --name mydb2 \
    --privileged=true \
    -p 50000:50000 \
    -e LICENSE=accept \
    -e DB2INST1_PASSWORD=Hbis@123 \
    -e DBNAME=testdb \
    -v /opt/db2:/database \
    ibmcom/db2

用户:db2inst1 密码:Hbis@123 数据库:testdb

Oceanbase

docker run \
    -p 2881:2881 \
    --name obstandalone \
    -e MINI_MODE=1 \
    -d \
    oceanbase/oceanbase-ce

登录容器,修改密码

docker exec -it obstandlone bash 
obclient -uroot -h127.1 -P2881 // 连接数据库
ALTER USER 'root' IDENTIFIED BY 'Hbis@123'; // 修改密码

Guass DB(华为高斯)

docker run \
    --name opengauss \
    --privileged=true \
    -d \
    -e GS_PASSWORD=Hbis@123 \
    -p 8090:5432 \
    enmotech/opengauss:latest

用户:gaussdb 密码:Hbis@123

Clickhouse

docker run \
    --restart=always \
    -d \
    --name clickhouse-server \
    --ulimit nofile=262144:262144 \
    -p 8123:8123 \
    -p 9000:9000 \
    -p 9009:9009 \
    -v /usr/local/src/clickhouse/users.xml:/etc/clickhouse-server/users.xml \  # 注意文件从容器 copy
    -v /usr/local/src/clickhouse/config.xml:/etc/clickhouse-server/config.xml \
    yandex/clickhouse-server

修改密码

进入容器
docker exec -it clickhouse-server /bin/bash
1、安装 vim 工具
apt-get update
apt-get install vim -y
2、获取加密后的密码
修改 clickhouse 的用户密码需要在 users.xml 中配置
需要注意的是: 密码必须为加密过的形式, 否则会一直连不上。我们这次采用 SHA256 的方式加密
root@f74af558dad4:/# PASSWORD=$(base64 < /dev/urandom | head -c8); echo "654321"; echo -n "654321" | sha256sum | tr -d '-'
654321
481f6cc0511143ccdd7e2d1b1b94faf0a700a8b49cd13922a70b5ae28acaa8c5
3、修改 users.xml
vi /etc/clickhouse-server/users.xml
将 <password></password>  #注意没有注释的地方
改为
<password_sha256_hex>481f6cc0511143ccdd7e2d1b1b94faf0a700a8b49cd13922a70b5ae28acaa8c5</password_sha256_hex>
4、使用密码登陆验证
root@f74af558dad4:cd /etc/clickhouse-server# clickhouse-client -h 127.0.0.1 -d default -m -u default --password '654321'
ClickHouse client version 20.10.2.20 (official build).
Connecting to database default at 127.0.0.1:9000 as user default.
Connected to ClickHouse server version 20.10.2 revision 54441.
 
f74af558dad4 :) show databases;
 
SHOW DATABASES
 
┌─name───────────────────────────┐
│ _temporary_and_external_tables │
│ default                        │
│ system                         │
└────────────────────────────────┘
 
3 rows in set. Elapsed: 0.003 sec.
 

用户:default 密码:654321 端口:8123

Iotdb

以获取 1.3.2 版本为例,拉取镜像命令

docker pull apache/iotdb:1.3.2-standalone

创建 docker bridge 网络

docker network create --driver=bridge --subnet=172.18.0.0/16 --gateway=172.18.0.1  iotdb
编写 docker-compose yml 文件

这里我们以把 IoTDB 安装目录和 yml 文件统一放在 /docker-iotdb 文件夹下为例:

文件目录结构为:/docker-iotdb/iotdb, /docker-iotdb/docker-compose-standalone.yml

docker-iotdb:├── iotdb  #iotdb 安装目录
│── docker-compose-standalone.yml #单机版 docker-compose 的 yml 文件

完整的 docker-compose-standalone.yml 内容如下:

version: "3"
services:
  iotdb-service:
    image: apache/iotdb:1.3.2-standalone #使用的镜像
    hostname: iotdb
    container_name: iotdb
    restart: always       
    ports:
      - "6667:6667"
    environment:
      - cn_internal_address=iotdb
      - cn_internal_port=10710
      - cn_consensus_port=10720
      - cn_seed_config_node=iotdb:10710
      - dn_rpc_address=iotdb
      - dn_internal_address=iotdb
      - dn_rpc_port=6667
      - dn_internal_port=10730
      - dn_mpp_data_exchange_port=10740
      - dn_schema_region_consensus_port=10750
      - dn_data_region_consensus_port=10760
      - dn_seed_config_node=iotdb:10710
    privileged: true
    volumes:
        - ./iotdb/data:/iotdb/data
        - ./iotdb/logs:/iotdb/logs
        - /dev/mem:/dev/mem:ro
    networks:
      iotdb:
        ipv4_address: 172.18.0.6
networks:
  iotdb:
    external: true
启动 Iotdb

使用下面的命令启动:

cd /docker-iotdb
docker-compose -f docker-compose-standalone.yml up -d #后台启动
验证部署

查看日志,有如下字样,表示启动成功

docker logs -f iotdb-datanode #查看日志命令
2024-07-21 08:22:38,457 [main] INFO  o.a.i.db.service.DataNode:227 - Congratulations, IoTDB DataNode is set up successfully. Now, enjoy yourself!
Docker 部署数据库系列

进入容器,查看服务运行状态

查看启动的容器

docker ps

Docker 部署数据库系列

进入容器, 通过 cli 登录数据库, 使用 show cluster 命令查看服务状态

docker exec -it iotdb  /bin/bash         #进入容器
./start-cli.sh -h iotdb                  #登录数据库
IoTDB> show cluster                      #查看服务状态

可以看到服务状态都是 running, 说明 IoTDB 部署成功。

Docker 部署数据库系列

映射 /conf 目录(可选)

后续如果想在物理机中直接修改配置文件,可以把容器中的 /conf 文件夹映射出来,分三步:

步骤一:拷贝容器中的 /conf 目录到/docker-iotdb/iotdb/conf

docker cp iotdb:/iotdb/conf /docker-iotdb/iotdb/conf

步骤二:在 docker-compose-standalone.yml 中添加映射

    volumes:
        - ./iotdb/conf:/iotdb/conf   #增加这个 /conf 文件夹的映射
        - ./iotdb/data:/iotdb/data
        - ./iotdb/logs:/iotdb/logs
        - /dev/mem:/dev/mem:ro

步骤三:重新启动 IoTDB

docker-compose  -f docker-compose-standalone.yml  up  -d
正文完
 0
评论(没有评论)