切换主题
Docker 软件部署
Redis
- 下载 Redis 镜像
| 命令 | 描述 |
|---|---|
| docker pull redis | 下载最新版 Redis 镜像 (其实此命令就等同于 : docker pull redis:latest ) |
| docker pull redis:xxx | 下载指定版本的 Redis 镜像 (xxx 指具体版本号) |
shell
# 下载镜像
docker pull redis
# 检查当前所有Docker下载的镜像
docker images创建 Redis 配置文件
2.1 注意
- 启动前需要先创建 Redis 外部挂载的配置文件 ( /home/redis/conf/redis.conf )
- 之所以要先创建 , 是因为 Redis 本身容器只存在 /etc/redis 目录 , 本身就不创建 redis.conf 文件
- 当服务器和容器都不存在 redis.conf 文件时, 执行启动命令的时候 docker 会将 redis.conf 作为目录创建 , 这并不是我们想要的结果 。
shell
## 创建目录
mkdir -p /opt/redis/conf
mkdir -p /opt/redis/data
## 创建文件
touch /opt/redis/conf/redis.conf- 创建 Redis 容器并启动
shell
# Docker 创建 Redis 容器命令
docker run \
--restart=always \
--log-opt max-size=100m \
--log-opt max-file=2 \
-p 6379:6379 \
--name redis \
-v /opt/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /opt/redis/data:/data \
-d redis redis-server /etc/redis/redis.conf \
--appendonly yes \
--requirepass 123456| 命令 | 功能 |
|---|---|
| docker run | 这是 Docker 用来创建并运行一个新的容器的命令 |
| --restart=always | 如果容器退出,这个选项会使得它自动重启 |
| --log-opt max-size=100m | 这是对容器日志的设置,最大大小为 100MB |
| --log-opt max-file=2 | 这是对容器日志文件的设置,最多可以有 2 个日志文件 |
| -p 6379:6379 | 这是端口映射的设置,将宿主机的 6379 端口映射到容器的 6379 端口 |
| --name redis | 这是给新创建的容器命名的选项,名字是 "redis" |
| -v /opt/myredis/redis.conf:/etc/redis/redis.conf | 这是对容器内的文件系统的挂载设置,将宿主机上的 /opt/myredis/redis.conf 文件挂载到容器内的 /etc/redis/redis.conf 位置 |
| -v /opt/myredis/data:/data | 这是另一个文件系统的挂载选项,将宿主机上的 /opt/myredis/data 目录挂载到容器内的 /data 目录 |
| -d | 这是 Docker 的分离模式,新创建的进程将会在后台运行 |
| redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass 123456 | 这是容器内要运行的命令,启动 Redis 服务,使用 /etc/redis/redis.conf 配置文件,设置追加写入(appendonly)为 yes,设置密码为 "123456" |
- Redis 配置文件修改
shell
# 修改 /opt/redis/conf/redis.conf
protected-mode no
bind 0.0.0.0| 命令 | 功能 |
|---|---|
| protected-mode no | 关闭 protected-mode 模式,此时外部网络可以直接访问 (docker 貌似自动开启了) |
| bind 0.0.0.0 | 设置所有 IP 都可以访问 (docker 貌似自动开启了) |
- REM 远程连接
shell
# 重启redis服务
docker restart redisMinio
- 下载 Minio 镜像
| 命令 | 描述 |
|---|---|
| docker pull minio/minio | 下载最新版 Minio 镜像 (其实此命令就等同于 : docker pull minio/minio:latest ) |
| docker pull minio/minio:RELEASE.2023-10-24T04-42-36Z | 下载指定版本的 Minio 镜像 (RELEASE.2023-10-24T04-42-36Z 指具体版本号) |
- 创建目录
启动前需要先创建 Minio 外部挂载的配置文件( /home/minio/config),和存储上传文件的目录( /home/minio/data)
shell
mkdir -p /home/minio/config
mkdir -p /home/minio/data- 创建 Minio 容器并运行
多行模式
shell
docker run -p 9000:9000 -p 9090:9090 \
--net=host \
--name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=minioadmin" \
-e "MINIO_SECRET_KEY=minioadmin" \
-v /home/minio/data:/data \
-v /home/minio/config:/root/.minio \
minio/minio server \
/data --console-address ":9090" -address ":9000"单行模式
shell
docker run -p 9000:9000 -p 9090:9090 --net=host --name minio -d --restart=always -e "MINIO_ACCESS_KEY=minioadmin" -e "MINIO_SECRET_KEY=minioadmin" -v /home/minio/data:/data -v /home/minio/config:/root/.minio minio/minio server /data --console-address ":9090" -address ":9000"9090 端口指的是 minio 的客户端端口
MINIO_ACCESS_KEY :账号
MINIO_SECRET_KEY :密码(账号长度必须大于等于 5,密码长度必须大于等于 8 位)
- 访问操作
访问:http://ip:9090/login 用户名:minioadmin 密码 :minioadmin
MySQL
- 下载 Minio 镜像
| 命令 | 描述 |
|---|---|
| docker pull mysql | 下载最新版 MySQL 镜像 (其实此命令就等同于 : docker pull mysql:latest ) |
| docker pull mysql:8.0.33 | 下载指定版本的 MySQL 镜像 (8.0.33 指具体版本号) |
- 创建目录
shell
mkdir -p /home/mysql/{conf,data,log}- 创建配置文件
shell
cd /home/mysql/conf
vim my.cnftxt
[client]
#设置客户端默认字符集utf8mb4
default-character-set=utf8mb4
[mysql]
#设置服务器默认字符集为utf8mb4
default-character-set=utf8mb4
[mysqld]
#配置服务器的服务号,具备日后需要集群做准备
server-id = 1
#开启MySQL数据库的二进制日志,用于记录用户对数据库的操作SQL语句,具备日后需要集群做准备
log-bin=mysql-bin
#设置清理超过30天的日志,以免日志堆积造过多成服务器内存爆满。2592000秒等于30天的秒数
binlog_expire_logs_seconds = 2592000
#解决MySQL8.0版本GROUP BY问题
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
#允许最大的连接数
max_connections=1000
# 禁用符号链接以防止各种安全风险
symbolic-links=0
# 设置东八区时区
default-time_zone = '+8:00'按键盘 esc 键退出输入,输入:wq 保存退出
- 启动 MySQL 容器
shell
docker run \
-p 3306:3306 \
--restart=always \
--name mysql \
--privileged=true \
-v /home/mysql/log:/var/log/mysql \
-v /home/mysql/data:/var/lib/mysql \
-v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.0.33| 命令 | 功能 |
|---|---|
| -p | 表示端口映射 |
| --restart=always | 表示容器退出时总是重启 |
| --name | 表示容器命名 |
| --privileged=true | 表示赋予容器权限修改宿主文件权利 |
| -v /home/mysql/log:/var/log/mysql | 表示容器日志挂载到宿主机 |
| -v /home/mysql/data:/var/lib/mysql | 表示容器存储文件挂载到宿主机 |
| -v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf | 表示容器配置文件挂载到宿主机 |
| -e MYSQL_ROOT_PASSWORD=a12bCd3_W45pUq6 | 表示设置 mysql 的 root 用户密码,建议用强密码 |
| -d | 表示后台运行 |