Skip to content

Docker 软件部署

Redis

  1. 下载 Redis 镜像
命令描述
docker pull redis下载最新版 Redis 镜像 (其实此命令就等同于 : docker pull redis:latest )
docker pull redis:xxx下载指定版本的 Redis 镜像 (xxx 指具体版本号)
shell
# 下载镜像
docker pull redis

# 检查当前所有Docker下载的镜像
docker images
  1. 创建 Redis 配置文件

    2.1 注意

    1. 启动前需要先创建 Redis 外部挂载的配置文件 ( /home/redis/conf/redis.conf )
    2. 之所以要先创建 , 是因为 Redis 本身容器只存在 /etc/redis 目录 , 本身就不创建 redis.conf 文件
    3. 当服务器和容器都不存在 redis.conf 文件时, 执行启动命令的时候 docker 会将 redis.conf 作为目录创建 , 这并不是我们想要的结果 。
shell
## 创建目录
mkdir -p /opt/redis/conf
mkdir -p /opt/redis/data

## 创建文件
touch /opt/redis/conf/redis.conf
  1. 创建 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"
  1. 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 貌似自动开启了)
  1. REM 远程连接
shell
# 重启redis服务
docker restart redis

Minio

  1. 下载 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 指具体版本号)
  1. 创建目录

启动前需要先创建 Minio 外部挂载的配置文件( /home/minio/config),和存储上传文件的目录( /home/minio/data)

shell
mkdir -p /home/minio/config
mkdir -p /home/minio/data
  1. 创建 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 位)

  1. 访问操作

访问:http://ip:9090/login 用户名:minioadmin 密码 :minioadmin

MySQL

  1. 下载 Minio 镜像
命令描述
docker pull mysql下载最新版 MySQL 镜像 (其实此命令就等同于 : docker pull mysql:latest )
docker pull mysql:8.0.33下载指定版本的 MySQL 镜像 (8.0.33 指具体版本号)
  1. 创建目录
shell
mkdir -p /home/mysql/{conf,data,log}
  1. 创建配置文件
shell
cd /home/mysql/conf
vim my.cnf
txt
[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 保存退出

  1. 启动 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表示后台运行