MySql服务
#下载镜像
docker pull mysql:8.0.1
(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服务
#下载镜像
docker pull redis:6.0
启动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
#下载镜像
docker pull nginx:1.25.3
启动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