Docker运行MySql、Redis、Nginx服务

Docker运行MySql、Redis、Nginx服务

MySql服务

  1. 访问docker hub
    Docker hub 👈搜索Mysql
    网址:https://registry.hub.docker.com/
    这里我们用8.0.1这个版本
  2. 下载MySql镜像
#下载镜像
docker pull mysql:8.0.1
  1. 运行MySql服务
(1)启动mysql 开放端口映射(3306) 指定root用户密码才行 -e(environment环境)
docker run -p 3306:3306  -e MYSQL_ROOT_PASSWORD=123456 --name mysql801  mysql:8.0.1 
(2)启动mysql 开放端口映射(3306) 指定root用户密码-e MYSQL_ROOT_PASSWORD=xx 后台运行 -d 指定名称--name
docker run -p 3306:3306  -e MYSQL_ROOT_PASSWORD=123456 -d --name mysql801  mysql:8.0.1
(3)启动mysql 端口映射(3306) 指定root用户密码-e MYSQL_ROOT_PASSWORD=xx 后台运行-d 指定名称--name 总是运行--restart=always
docker run -p 3306:3306  -e MYSQL_ROOT_PASSWORD=123456 -d --name mysql801 --restart=always  mysql:8.0.1
(4)启动mysql 端口映射(3306) 指定root用户密码-e MYSQL_ROOT_PASSWORD=xx 后台运行-d 指定名称--name 总是运行--restart=always 挂在数据卷到宿主机-v mysqlData:/var/lib/mysql
docker run -p 3306:3306  -e MYSQL_ROOT_PASSWORD=123456 -d --name mysql801 --restart=always -v mysqlData:/var/lib/mysql mysql:8.0.1
注意:docker根据别名(mysqlData)创建的目录默认在:/var/lib/docker/volumes/路径下

4.备份数据库内容导出sql文件(navicat也可以导出)

利用mysql官方命令
备份全部数据
docker exec (mysql容器id)sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/all-database.sql
备份指定库中数据
docker exec (mysql容器id)sh -c 'exec mysqldump --databases 库名 -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/all-database.sql
备份指定库中结构不要数据:
docker exec (mysql容器id)sh -c 'exec mysqldump --no-data --databases 库名 -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/xxx.sql
执行Sql文件到mysql中
docker exec -i (mysql容器id)sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /root/xxx.sql

Redis服务

  1. 访问docker hub
    Docker hub 👈搜索Redis
    网址:https://registry.hub.docker.com/
    这里我们用6.0这个版本
  2. 下载Redis镜像
#下载镜像
docker pull redis:6.0
  1. 运行Redis服务
启动redis 映射端口(6379)
docker run -p 6379:6379 redis:6.0
启动redis 映射端口(6379) 后台运行-d 指定名称--name 总是启动--restart=always
docker run -p 6379:6379 -d --name redis-demo --restart=always redis:6.0
==============================================================================================
redis内存持久化
	a.rdb快照持久化:Redis将某一时刻的数据使用快照文件的形式写入磁盘
	b.aof日志文件持久化:Redis服务将所有redis客户端的写操作以命令的形式记录到日志文件中 AOF更加安全everysec
=============================================================================================
启动redis 映射端口(6379) 后台运行-d 指定名称--name 总是启动--restart=always 开启持久化 redis-server --appendonly yes
docker run -p 6379:6379 -d --name redis-demo --restart=always redis:6.0 redis-server --appendonly yes

4.自定义配置文件启动redis(挂载数据卷)

(1)下载对应版本压缩包获取压缩包中的配置文件,修改相应配置,并与容器进行数据卷挂在同步启动时使用同步后的配置文件启动
docker run -p 6379:6379 -d --name redis-demo --restart=always -v /root/redisData:/data redis:6.0 redis-server /data/redis.conf
(2)与上面方式一样但是只是覆盖部分配置,新建配置文件书写修改属性即可(如下图)推荐
docker run -p 6379:6379 -d --name redis-demo --restart=always -v /root/redisData:/data redis:6.0 redis-server /data/redis.conf

在这里插入图片描述
Nginx服务

  1. 访问docker hub
    Docker hub 👈搜索Nginx
    网址:https://registry.hub.docker.com/
    这里我们用nginx:1.25.3这个版本
  2. 下载Redis镜像
#下载镜像
docker pull nginx:1.25.3
  1. 运行Redis服务
启动nginx 映射端口(80)
docker run -p 80:80 nginx:1.25.3 
启动nginx 映射端口(80) 后台启动-d 总是启动--restart=always 指定名称--name nginx-demo
docker run -p 80:80 -d --restart=always --name nginx-demo nginx:1.25.3
启动nginx 映射端口(80) 后台启动-d 总是启动--restart=always 指定名称--name nginx-demo 加载指定nginx配置-v 容器挂在目录(/etc/nginx/nginx.conf)
a:实现反向代理 负载均衡先向容器内复制一份我们需要的配置文件
mkdir /root/nginxconf   #新建路径
docker cp 容器id:/etc/nginx/nginx.conf /root/nginxconfnginx.conf
docker run -p 80:80 -d --restart=always --name nginx-demo -v /root/nginxconf/nginx.conf:/etc/nginx/nginx.conf nginx:1.25.3
b.使用nginx做服务器(用于服务器挂在的内容不同)
docker run -p 80:80 -d --restart=always --name nginx-demo -v /root/html:/usr/share/nginx/html nginx:1.25.3
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值