Docker中创建并配置MySQL、nginx、redis等容器

Docker中安装并配置MySQL、nginx、redis等

文章目录


一、创建nginx容器

①:拉取镜像

sh 复制代码
# 下载最新版本的nginx的镜像
docker pull nginx:latest

# 或指定版本
docker pull nginx:1.25.3

②:运行nginx镜像

1.运行

sh 复制代码
# 最新版本的nginx的镜像
docker run --name nginx -p 80:80 -d nginx
sh 复制代码
# 指定版本运行
docker run --name nginx -p 80:80 -d nginx:1.25.3
sh 复制代码
# 参数详解
- --name nginx 指定容器的名称
- -p 80:80 映射端口
- -d 守护进程运行

2.查看运行的镜像

sh 复制代码
docker ps

③:从nginx容器中映射nginx配置文件到本地

1.创建本地文件夹

sh 复制代码
mkdir -p /usr/local/nginx

2.从容器nginx里复制配置文件到本地

sh 复制代码
docker cp nginx:/etc/nginx/ /usr/local/nginx
docker cp nginx:/usr/share/nginx/html /usr/local/nginx

3.查看复制后的本地文件


可以看到文件复制成功!

④:重启nginx并重新配置nginx的挂载

1.删除容器

sh 复制代码
# 先停止在删除
docker stop nginx 
docker rm nginx

# 或 直接删除
docker rm -f nginx

2.重新启动nginx 并挂载到本地

sh 复制代码
docker run \
-p 80:80 \
--name nginx \
--restart=always \
-v /usr/local/nginx/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx/html:/usr/share/nginx/html \
-v /usr/local/nginx/logs:/var/log/nginx \
-d nginx:1.25.3
sh 复制代码
# 命令分析
docker run 
-p 80:80                            # 将主机的 80 端口映射到容器的 80 端口
--name nginx                         # 指定容器的名称为 "nginx"
--restart=always                     # 容器停止后自动重新启动
-v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf #将主机的 /usr/local/nginx/nginx 目录挂载到容器的 /etc/nginx 目录
-v /usr/local/nginx/html:/usr/share/nginx/html  # 将主机的 /usr/local/nginx/html 目录挂载到容器的 /usr/share/nginx/html 目录
-v /usr/local/nginx/logs:/var/log/nginx  # 将主机的 /usr/local/nginx/logs 目录挂载到容器的 /var/log/nginx 目录
-d nginx:1.25.3                      # 使用镜像 nginx:1.25.3,并以后台模式运行容器

3.查看运行的容器

sh 复制代码
docker ps

4.修改文件 浏览器访问测试

  • 修改首页
  • 访问(文件映射成功!)

二、创建redis容器

①:拉取redis镜像

sh 复制代码
# 拉取最新镜像
docker pull redis

# 或指定版本
docker pull redis:5.0

②:创建挂载目录

sh 复制代码
# 创建redis配置目录
mkdir -p /usr/local/redis/conf

# 进入到该目录
cd /usr/local/redis/conf

③:下载redis的配置文件

redis中文官方网站:http://www.redis.cn/download.html

下载后解压出来并复制到虚拟机中

④:修改默认配置信息

sh 复制代码
vi /usr/local/redis/redis.conf

# 配置信息 分析
bind 127.0.0.1 # 这行要注释掉,解除本地连接限制
protected-mode no # 默认yes,如果设置为yes,则只允许在本机的回环连接,其他机器无法连接。
daemonize no # 默认no 为不守护进程模式
requirepass 123456 # 设置密码
appendonly yes # 持久化

⑤:创建并启动redis容器

1.创建运行程序

sh 复制代码
docker run --name redis \
-p 6379:6379 \
--restart=always \
-v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /usr/local/redis:/data \
-d redis redis-server /etc/redis/redis.conf --appendonly yes
sh 复制代码
# 命令分析
docker run 
--name redis                        # 指定容器的名称为 "redis"
-p 6379:6379                       # 将主机的 6379 端口映射到容器的 6379 端口
--restart 						  #always 选项将容器配置为始终自动重启
-v /usr/local/redis/redis.conf:/etc/redis/redis.conf  # 将主机的 /usr/local/redis/redis.conf 文件挂载到容器的 /etc/redis/redis.conf 文件
-v /usr/local/redis:/data           # 将主机的 /usr/local/redis 目录挂载到容器的 /data 目录
-d redis                            # 使用 redis 镜像,并以后台模式运行容器
redis-server /etc/redis/redis.conf --appendonly yes  # 运行容器内的 redis-server 命令,指定配置文件为 /etc/redis/redis.conf,并启用 appendonly 模式(持久化方式)

2.查看运行的容器

⑥:连接测试


三、创建MySQL容器

①:拉取MySQL镜像

sh 复制代码
# 拉取最新镜像
docker pull mysql

# 或指定版本
docker pull mysql:8.0

②:创建挂载目录

sh 复制代码
# 创建目录
mkdir -p /usr/local/mysql/data
mkdir -p /usr/local/mysql/init
mkdir -p /usr/local/mysql/conf

完成本地目录挂载:

  • 挂载/usr/local/mysql/data到容器内的/var/lib/mysql目录
  • 挂载/usr/local/mysql/init到容器内的/docker-entrypoint-initdb.d目录(初始化的SQL脚本目录)
  • 挂载/usr/local/mysql/conf到容器内的/etc/mysql/conf.d目录(这个是MySQL配置文件目录)

③:创建并运行新mysql容器,挂载本地目录

1.创建并运行mysql容器

sh 复制代码
docker run -d \
  --name mysql \
  -p 3306:3306 \
  --restart=always \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -v /usr/local/mysql/data:/var/lib/mysql \
  -v /usr/local/mysql/conf:/etc/mysql/conf.d \
  -v /usr/local/mysql/init:/docker-entrypoint-initdb.d \
  mysql:8.0
sh 复制代码
# 命令分析
-d 参数将容器运行在后台;
--name 参数指定容器的名称为 "mysql";
-p 参数将容器的 MySQL 服务端口映射到主机的 3306 端口;
--restart always 选项将容器配置为始终自动重启
-e 参数设置容器的时区为 "Asia/Shanghai",并设置 MySQL 超级用户的密码为 "123456";
-v 参数将主机上的目录挂载到容器内部的目录中,其中 /usr/local/mysql/data 目录用于存储 MySQL 数据,/usr/local/mysql/conf 目录存储 MySQL 配置文件,/usr/local/mysql/init 目录存储初始化 SQL 文件;
指定使用 MySQL 8.0 镜像。

2.查看运行中的容器

3.挂载的目录下有很多数据

④:连接测试

1.可以看到mysql库中user表里面root用户是运行所有机器连接的

相关推荐
不学无术の码农1 小时前
Ubuntu 22.04 (WSL2) 上使用 Docker 安装 Nacos 3.0.0
ubuntu·docker
AnnyYoung3 小时前
从Dockerfile 构建docker镜像——保姆级教程
docker·容器·eureka
一眼青苔3 小时前
如何在MySQL中实现类似Redis的PING命令的功能来检测连接状态?
数据库·redis·mysql
何怀逸3 小时前
安装 Docker
运维·docker·容器
码码哈哈0.03 小时前
2025最新:3分钟使用Docker快速部署单节点Redis
redis·docker·eureka
hweiyu003 小时前
MySQL性能分析工具:SHOW PROCESSLIST
数据库·mysql
Sahas10195 小时前
debian安装docker
docker·eureka·debian
may_一一6 小时前
Docker中mysql镜像保存与导入
mysql·docker·容器
liuze4086 小时前
使用 docker 安装 nacos3.x
运维·docker·容器