如何在半小时内部署5种主流数据库

原创
2022/03/20 17:54
阅读数 29

今天在一台云服务器上使用Docker部署了Oracle、MySQL、PostgreSQL、MongoDB、Redis五种常用的的数据库。覆盖了这些数据库的各种主流的版本,共19个实例。常规情况下,如果要部署这么多数据库,可能至少需要1到2天时间,使用容器部署压缩到了半个小时之内完成,现在把容器化部署这些数据库的步骤和命令分享出来,参考命令30分钟内即可部署完这些数据库。特别合适想快速熟悉各个数据库环境的同学,或者DBA想测试验证某个数据库功能的时候,不用大费周折,快速部署验证测试,用完快速销毁。当然仅限于学习和测试验证,不建议在生产环境使用。

Docker环境准备

# yum -y install docker
# systemctl start docker

Docker部署Oracle

创建Oracle11g容器

# docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
# docker run --name docker-oracle11g -p 1621:1521 -d  --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

创建后Oracle容器里的root默认密码:helowin,容器Oracle用户密码:oracle,oracle sid: helowin

进入Oracle容器

# docker exec -it docker-oracle11g bash

使用sqlplus登录Oracle数据库

$ sqlplus / as sysdba

Docker部署MySQL

创建容器,以下命令分别创建MySQL5.5、MySQL5.6、MySQL5.7、MySQL8.0四个版本的MySQL数据库实例。

# docker run --name docker-mysql5.5 --publish 3506:3306 -e MYSQL_ROOT_PASSWORD=root -d --restart=always mysql:5.5

# docker run --name docker-mysql5.6 --publish 3607:3306 -e MYSQL_ROOT_PASSWORD=root -d --restart=always mysql:5.6

# docker run --name docker-mysql5.7 --publish 3708:3306 -e MYSQL_ROOT_PASSWORD=root -d --restart=always mysql:5.7

# docker run --name docker-mysql8.0 --publish 3809:3306 -e MYSQL_ROOT_PASSWORD=root -d --restart=always mysql:8.0

进入mysql容器,以docker-mysql5.5容器为例

# docker exec -it docker-mysql5.5 bash

登录MySQL添加用户密码

# mysql -uroot -proot
mysql> grant select,super,process on *.* to 'monitor'@'%' identified by '123456';
mysql> flush privileges;

Docker部署PostgreSQL

创建容器,以下命令分别创建PG10.1、PG11.2、PG12.2三个版本的数据库实例。

docker run --name docker-postgres10.1  -p 5436:5432 -e POSTGRES_PASSWORD=postgres -d --restart=always postgres:10.1

docker run --name docker-postgres11.2  -p 5437:5432 -e POSTGRES_PASSWORD=postgres -d --restart=always postgres:11.2

docker run --name docker-postgres12.2  -p 5438:5432 -e POSTGRES_PASSWORD=postgres -d --restart=always postgres:12.2

进入postgres容器

docker exec -it docker-postgres10.1 bash

登录postgres数据库,创建账号和授权

su - postgres
$ psql
postgres=# create user monitor with password '123456';
postgres=# grant all privileges on database  postgres to monitor;

Docker部署Redis

创建容器,以下命令分别创建Redis3.0、Redis4.0、Redis5.0、Redis6.0四个版本的Redis实例,不开启认证。

docker run --name docker-redis3.0-no -p 6369:6379 -d --restart=always redis:3.0 redis-server --appendonly yes 

docker run --name docker-redis4.0-no -p 6469:6379 -d --restart=always redis:4.0 redis-server --appendonly yes 

docker run --name docker-redis5.0-no -p 6569:6379 -d --restart=always redis:5.0 redis-server --appendonly yes 

docker run --name docker-redis6.0-no -p 6669:6379 -d --restart=always redis:6.0 redis-server --appendonly yes 

如果Redis需要开启密码认证,可用通过--requirepass参数配置

docker run --name docker-redis3.0 -p 6389:6379 -d --restart=always redis:3.0 redis-server --appendonly yes --requirepass "123456"

docker run --name docker-redis4.0 -p 6489:6379 -d --restart=always redis:4.0 redis-server --appendonly yes --requirepass "123456"

docker run --name docker-redis5.0 -p 6589:6379 -d --restart=always redis:5.0 redis-server --appendonly yes --requirepass "123456"

docker run --name docker-redis6.0 -p 6689:6379 -d --restart=always redis:6.0 redis-server --appendonly yes --requirepass "123456"

进入redis容器

docker exec -it docker-redis3.0 bash

进入容器后就可用登录redis

# redis-cli -a 123456

Docker部署MongoDB

创建容器,以下命令分别创建Mongo3.6、Mongo4.4、Mongo5.0三个版本的Mongo实例。

docker run --name docker-monogb3.6  -p 28017:27017 -d  --restart=always mongo:3.6

docker run --name docker-monogb4.4  -p 28018:27017 -d  --restart=always mongo:4.4

docker run --name docker-monogb5.0  -p 28019:27017 -d  --restart=always mongo:5.0

创建后之后进入mongodb容器

docker exec -it docker-monogb3.6 bash

登录mongo数据库,创建账号

mongo --host=127.0.0.1 --port=27017

> use admin
switched to db admin
> db.createUser({user:'monitor',pwd:'123456',roles:['root']})
Successfully added user: { "user" : "monitor", "roles" : [ "root" ] }

部署完成,使用docker ps看看效果吧,想用哪个用哪个,哇。

Image description

Image description

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部