通过Docker安装各类数据库是件轻松愉悦的事情。
安装环境
[root@centos7 ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@centos7 ~]# uname -r
3.10.0-1062.12.1.el7.x86_64
[root@centos7 ~]# hostname
centos7
[root@centos7 ~]# ifconfig
…inet 192.168.31.247 netmask 255.255.255.0
…
Oracle篇
- 登录docker hub
先到官网注册,然后用这个账户密码运行下面的命令,登录
1 | docker login |
- 拉取镜像
镜像挺大,需要良好的网络环境,否则容易拉取失败
1 | docker pull store/oracle/database-enterprise:12.2.0.1 |
- 运行容器
启动的很慢,耐心等待,状态会从starting->unhealthy->healthy,执行docker ps -a
可以查看状态。
1 | docker run --name oracle12 --restart=always -p 1521:1521 -d store/oracle/database-enterprise:12.2.0.1 |
默认的sid为ORCLCDB,用户sys,密码Oradoc_db1
- 本地连接
1 | docker exec -it oracle12 bash -c "source /home/oracle/.bashrc; sqlplus /nolog" |
1 | conn /as sysdba |
- 远程连接
这里使用Navicat Premium 12进行测试
Mysql篇
- 拉取镜像
1 | docker pull mysql:5.7 |
- 运行容器
1 | sudo docker run --name mysql5.7 --restart=always -p 3306:3306 -e 'MYSQL_ROOT_PASSWORD=123456' -d mysql:5.7 |
参数解释:
--name mysql5.7
定义容器名
--restart=always
容器自动启动
-p 3306:3306
映射端口
-e MYSQL_ROOT_PASSWORD=123456
设置root数据库密码
-d
后台运行容器
- 本地连接
这里的本地指的是在容器内连接mysql
1 | sudo docker exec -it mysql5.7 bash |
1 | mysql -uroot -p123456 |
如果是安装mysql8.0版本,还需要执行:
1 | use mysql; |
1 | alter user 'root'@'%' identified with mysql_native_password by '123456'; |
把密码加密方式改成mysql_native_password
- 远程连接
这里使用Navicat Premium 12进行测试
Mssql篇
- 拉取镜像
这个镜像已经作废(迁移)
docker pull microsoft/mssql-server-linux
1 | docker pull mcr.microsoft.com/mssql/server:2017-latest |
- 运行容器
1 | docker run --name mssql2017 --restart=always -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=javalog.cn' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2017-latest |
- 本地连接
1 | docker exec -it mssql2017 /bin/bash |
1 | /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'javalog.cn' |
- 创建数据库
1 | CREATE DATABASE testDB |
- 远程连接
这里使用Navicat Premium 12进行测试
Redis篇
- 拉取镜像
1 | sudo docker pull redis:5 |
- 运行容器
创建相关目录
1 | mkdir -vp /usr/local/docker/redis/data |
下载redis官方的默认配置文件
1 | wget -P /usr/local/docker/redis http://download.redis.io/redis-stable/redis.conf |
启动redis
1 | sudo docker run --name redis5 --restart=always -v /usr/local/docker/redis/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/redis/data:/data -p 6379:6379 -d redis:5 redis-server /etc/redis/redis.conf --appendonly yes |
参数解释:
-v /usr/local/docker/redis/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/redis/data:/data
宿主机与容器进行目录映射,可以直接操作宿主机上的文件就同步到容器内
--appendonly yes
数据持久化到本地
- 本地连接
1 | sudo docker exec -it redis5 /bin/bash |
1 | redis-cli |
- 远程连接
这里使用Another.Redis.Desktop.Manager进行测试
- 需要修改配置文件:
vi /usr/local/docker/redis/redis.conf
- 允许远程连接
bind 127.0.0.1 -> #bind 127.0.0.1
protected-mode yes -> protected-mode no- 增加密码验证
# requirepass foobared -> requirepass 123456
- 重启redis服务
docker restart redis5
官方地址
参考:
https://blog.csdn.net/stevensxiao/article/details/102986503
https://segmentfault.com/a/1190000014232366
https://www.cnblogs.com/sablier/p/11605606.html
https://wangxin1248.github.io/linux/2018/07/ubuntu18.04-install-redis.html
https://blog.csdn.net/weixin_42456466/article/details/87270959