docker安装数据库(MySQL&Oracle&Redis)

106 阅读3分钟

安装MySQL

拉取镜像

docker pull mysql:5.7

启动容器

指定root的密码:-e MYSQL_ROOT_PASSWORD=password123456

指定docker镜像时区:-e TZ=Asia/Shanghai

参数解释:

–name:给新创建的容器命名,此处命名为mysqlserver

-e:配置信息,此处配置mysql的root用户的登陆密码

-p:端口映射,表示在这个容器中使用3306端口(第二个)映射到本机的端口号也为3306(第一个)

-d:成功启动容器后输出容器的完整ID

最后一个mysql指的是mysql镜像名字

docker run --name mysqlserver -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=password123456 -p 8306:3306 -d mysql:5.7

进入容器

docker exec -it mysqlserver /bin/bash

配置外网访问

ALTER USER 'root'@'%' IDENTIFIED BY 'password123456' PASSWORD EXPIRE NEVER; --修改加密规则 ,'password'改成你的密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password123456'; --更新一下用户的密码 ,'password'是你的密码
FLUSH PRIVILEGES; --刷新权限

安装Oracle

拉取镜像

docker pull oracleinanutshell/oracle-xe-11g

dockerHub 地址: ​hub.docker.com/r/oracleina…

启动容器

docker run -d -p 8521:1521 --name oracle11-xe -e ORACLE_ALLOW_REMOTE=true oracleinanutshell/oracle-xe-11g

oracle-xe-11g默认服务、账号、密码

  • 服务名:XE
  • 默认账户:system
  • 默认密码;oracle

用sqlplus登录oracle,至此,oracle11g安装成功!

# 进入容器
docker exec -it oracle11g bash

# 切换用户
su - oracle

# 第一种登录方式-无需密码
sqlplus / as sysdba

# 第二种登录方式-用户密码
sqlplus system/oracle(用户名/密码)

# 第三种登录方式-先登录再授权
sqlplus /nolog
conn sys/oracle as sysdba;

# 创建用户
create user [用户名] identified by [密码];

# 为用户授权(connect,resource,dba)
grant connect,resource,dba to [用户名];

将表空间文件挂载到本机目录上

  1. 进入镜像docker exec -it ae2a8b4dada3 bash

  2. 登录进oraclesqlplus system/oracle

  3. 查看表空间Select * FROM DBA_DATA_FILES;

image.png 默认在/u01/app/oracle/oradata/XE目录下,这里就不能将这个目录挂在到本机上,要新建新目录XED mkdir /u01/app/oracle/oradata/XED,并且设置目录权限,防止创建表空间提示无权限chmod 777 ./XED

  1. 重新run容器docker run -d -p 49161:1521 -v /opt/oradata/XED:/u01/app/oracle/oradata/XED --name oracle11-xe -e ORACLE_ALLOW_REMOTE=true oracleinanutshell/oracle-xe-11g 将本机的/opt/oradata/XED挂载到docke容器中/u01/app/oracle/oradata/XED

  2. 这样create tablespace mydb datafile '/u01/app/oracle/oradata/XED/mydb.dbf' size 100m autoextend on next 10m;创建的表空间就在本地主机上了

image.png

oracle-xe-11g这个镜像默认

Redis


拉取镜像

docker pull redis:alpine

image.png

启动

  • 设置密码,开启外网访问 docker run -d --privileged=true --restart=always -p 6379:6379 --name redis redis:alpine redis-server --requirepass "123456"

进入容器

docker exec -it 454ab52a7cff /bin/sh

找到redis-cli 运行

cd /usr/local/bin/ redis-cli

127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> get name
(error) NOAUTH Authentication required.
127.0.0.1:6379> 
127.0.0.1:6379> 
## 认证,密码
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> 
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> set name aa
OK
127.0.0.1:6379> 
127.0.0.1:6379> get name
"aa"
127.0.0.1:6379>