Docker 之 Mysql、SqlSever、Redis、MongoDB

一些知识:Docker入门的亿点点学习

1 Mysql

参考:DockerHub Mysql
参考:Docker 安装mysql容器数据卷挂载到宿主机

# 拉取mysql镜像
docker pull mysql:latest
# 启动容器
docker run -itd --name mysql -p 3306:3306 \
    	--restart=always \
    	-v /root/software/mysql/config:/etc/mysql \
    	-v /root/software/mysql/data:/var/lib/mysql \
     	-v /root/software/mysql/mysql-files:/var/lib/mysql-files \
    	-e MYSQL_ROOT_PASSWORD=123456 \
    	mysql
# 3306暴露端口
# 挂载数据config data mysql-files
# MYSQL_ROOT_PASSWORD 密码
# restart=always 自动启动

# 进入mysql
docker exec -it 容器id/容器名称 /bin/bash 
# 登录
mysql -u root -p
# 查看数据库版本信息      
status
select version();
# 退出mysql
exit;

2 SqlSever

参考:Docker 运行 SQL Server 容器映像
参考:DockerHub Microsoft SQL Server
参考:CentOS中使用Docker安装SqlServer以及遇到的那些坑

# 拉取镜像
docker pull mcr.microsoft.com/mssql/server:2019-latest
# 启动
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=123@Password" \
        -p 1433:1433 --name sqlsever -h sqlsever \
        -v /root/software/sqlsever/data:/var/opt/mssql/data 
        -v /root/software/sqlsever/log:/var/opt/mssql/log 
        -v /root/software/sqlsever/secrets:/var/opt/mssql/secrets 
        -d mcr.microsoft.com/mssql/server:2019-latest

3 Redis

客户端:AnotherRedisDesktopManager
参考:DockerHub Rdis
配置文件:redis.conf

docker pull redis 
docker run \
    --name redis \
    --restart=always \
    --privileged=true \
    -v /root/software/redis/redis.conf:/etc/redis/redis.conf \
    -v /root/software/redis/data:/data \
    -d -p 6379:6379 \
    redis \
    /etc/redis/redis.conf

# 容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限 --privileged=true 
# 映射配置文件 -v /root/software/redis.conf:/etc/redis/redis.conf 
# 注意提前下载 redis.conf 配置文件
# 映射数据目录 -v /root/software/data:/data 
# 以配置文件方式启动(为容器内配置文件==映射的宿主机配置文件)/etc/redis/redis.conf 			

注意事项 更改配置文件 非常重要

bind 127.0.0.1,前面加 #  [才可以远程访问]
requirepass "密码" # 配置密码

远程访问
密码

持久化配置

# RDB
save       900    1       #900秒内有至少1个键被更改则进行快照;
save       300    10      #300秒内有至少10个键被更改则进行快照;
save       60     10000        #60秒内有至少10000个键被更改则进行快照。

# AOF
appendonly  yes			#开启AOF持久化功能;
appendfilename appendonly.aof	#AOF持久化保存文件名;
appendfsync always			#每次执行写入都会执行同步,最安全也最慢;
#appendfsync everysec		#每秒执行一次同步操作;
#appendfsync no    		#不主动进行同步操作,而是完全交由操作系统来做,每30秒一次,最快也最不安全;
auto-aof-rewrite-percentage 100	#当AOF文件大小超过上一次重写时的AOF文件大小的百分之多少时会再次进行重写,如果之前没有重写过,则以启动时的AOF文件大小为依据;
auto-aof-rewrite-min-size 64mb	#允许重写的最小AOF文件大小配置写入AOF文件后,要求系统刷新硬盘缓存的机制

# 混合持久化   可以通过bgrewriteaof手动重写aof。
aof-use-rdb-preamble yes   #配置混合持久化

4 MongoDB

参考:DockerHub MongoDB
参考:Docker 安装 MongoDB

docker pull mongo
docker run --name mongo -p 27017:27017 \
        -v /root/software/mongo/data:/data \
        -d mongo \
        --auth

docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
>  db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')
posted @ 2022-02-15 22:26  Boring246  阅读(65)  评论(0)    收藏  举报