docker部署mysql nginx redis

一.创建网络

# 创建网络
docker network create liming
# 查看网络
docker network ls

在这里插入图片描述

二.部署mysql

删除并重新创建mysql容器,并完成本地目录挂载:

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

配置MySQL的默认编码

[client]
default_character_set=utf8mb4
[mysql]
default_character_set=utf8mb4
[mysqld]
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'

在这里插入图片描述
初始化SQL脚本目录中增加sql脚本

在这里插入图片描述

我们直接将初始化SQL脚本和配置文件上传至虚拟机的/software目录下:

在这里插入图片描述

本地目录挂载

# 1.删除原来的MySQL容器
docker rm -f mysql

# 2.进入software目录
cd /software

# 3.创建并运行新mysql容器,挂载本地目录
docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  -v ./mysql/data:/var/lib/mysql \
  -v ./mysql/conf:/etc/mysql/conf.d \
  -v ./mysql/init:/docker-entrypoint-initdb.d \
  mysql

# 将mysql容器加入到自己的网络
docker network connect liming mysql

# 4.查看root目录,可以发现~/mysql/data目录已经自动创建好了
ls -l mysql
# 结果:
total 12
drwxr-xr-x 2 root    root 4096 Nov  6 16:16 conf
drwxr-xr-x 7 polkitd root 4096 Nov  6 16:20 data
drwxr-xr-x 2 root    root 4096 Nov  6 16:16 init

# 查看data目录,会发现里面有大量数据库数据,说明数据库完成了初始化
ls -l data

# 5.查看MySQL容器内数据
# 5.1.进入MySQL
docker exec -it mysql mysql -uroot -p123
# 5.2.查看编码表
show variables like "%char%";
# 5.3.结果,发现编码是utf8mb4没有问题
+--------------------------+--------------------------------+
| Variable_name            | Value                          |
+--------------------------+--------------------------------+
| character_set_client     | utf8mb4                        |
| character_set_connection | utf8mb4                        |
| character_set_database   | utf8mb4                        |
| character_set_filesystem | binary                         |
| character_set_results    | utf8mb4                        |
| character_set_server     | utf8mb4                        |
| character_set_system     | utf8mb3                        |
| character_sets_dir       | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+

# 6.查看数据
# 6.1.查看数据库
show databases;
# 结果,hmall是黑马商城数据库
+--------------------+
| Database           |
+--------------------+
| hmall              |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)
# 6.2.切换到hmall数据库
use hmall;
# 6.3.查看表
show tables;
# 结果:
+-----------------+
| Tables_in_hmall |
+-----------------+
| address         |
| cart            |
| item            |
| order           |
| order_detail    |
| order_logistics |
| pay_order       |
| user            |
+-----------------+
# 6.4.查看address表数据
+----+---------+----------+--------+----------+-------------+---------------+-----------+------------+-------+
| id | user_id | province | city   | town     | mobile      | street        | contact   | is_default | notes |
+----+---------+----------+--------+----------+-------------+---------------+-----------+------------+-------+
| 59 |       1 | 北京     | 北京   | 朝阳区    | 13900112222 | 金燕龙办公楼   | 李佳诚    | 0          | NULL  |
| 60 |       1 | 北京     | 北京   | 朝阳区    | 13700221122 | 修正大厦       | 李佳红    | 0          | NULL  |
| 61 |       1 | 上海     | 上海   | 浦东新区  | 13301212233 | 航头镇航头路   | 李佳星    | 1          | NULL  |
| 63 |       1 | 广东     | 佛山   | 永春      | 13301212233 | 永春武馆       | 李晓龙    | 0          | NULL  |
+----+---------+----------+--------+----------+-------------+---------------+-----------+------------+-------+
4 rows in set (0.00 sec)

三.部署nginx(采用数据卷方式)

创建nginx容器并完成两个挂载:

  • 把/software/nginx/conf挂载到/etc/nginx/nginx.conf
  • 把/software/nginx/html挂载到/usr/share/nginx/html
# 1.拉取Nginx镜像
docker pull nginx

# 2.创建容器
docker run -d --name nginx -p 80:80 nginx

# 3.再software创建文件
mkdir -p ./nginx/{conf,html,logs}

# 4.将容器内的nginx.conf与default.conf文件分别拷贝到宿主机/software/nginx和/software/nginx/conf下,分别执行 cp:命令代表复制 nginx:是我们nginx容器的ID
docker cp nginx:/etc/nginx/nginx.conf ./        
docker cp nginx:/etc/nginx/conf.d/default.conf ./conf/

# 5.删除刚才创建的容器
docker rm -f nginx

# 6.重新创建nginx容器
# -v 挂载目录,格式 -v: 表示将宿主机目录与容器目录之间进行共享,
# --privileged=true 容器内部对挂载的目录拥有读写等特权
docker run -d \
	--name nginx \
	-p 80:80 \
	-v /software/nginx/nginx.conf:/etc/nginx/nginx.conf \
	-v /software/nginx/logs:/var/log/nginx \
	-v /software/nginx/html:/usr/share/nginx/html \
	-v /software/nginx/conf:/etc/nginx/conf.d \
	--privileged=true \
	nginx

在这里插入图片描述

在这里插入图片描述

四.部署redis

# 第1步,拉取Nginx镜像
docker pull redis

# 第2步,创建并允许Nginx容器
docker run -d \
 --name redis \
 -p 6379:6379 \
 --network liming \
 redis

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/127138.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

玄子Share-HTML5知识手册

玄子Share-HTML5知识手册 前言: 这一版 HTML 笔记,算是我写的第四版了,第三版对照课本编写,第四版则是对照 MDN 官方文档编写,不论是术语亦或专业性,都更上一层 文章依托 MDN 文档,拓展了大量课…

网络营销利器:海外IP代理如何助力你的网络营销?如何选择?

在当今数字化的时代,网络营销已经成为企业营销策略的重要组成部分。而对于进去海外市场的跨境玩家来说,海外的推广营销是重中之重。然而,在开展网络营销的过程中,我们常常会遇到各种挑战,如地域限制、访问速度慢等。 …

理解透彻API接口电商API接口有哪些?你需要一分钟看这篇文章

什么是API呢?老实说啊,象征非常基础的概念,我原本以为大家都已经非常接楚,但是被突然这么一问呢,觉得有必要来认真复习一下这个概念,因为在我看来啊,技术上的问题呢,就没有高低贵贱之…

Docker Desktop 和 WSL2 位置迁移

迁移 WSL2 安装位置 WSL2 默认安装在 C 盘,我们可以通过以下步骤迁移安装位置 通过以下命令列出已安装的 Linux 发行版: wsl -l -v可以看到已安装了 Ubuntu-22.04,其运行状态为:Stopped 如果运行状态为 Running,需…

洛谷 Equalize the Remainders

洛谷没提供中文题面,这里大致翻译一下: 可以进行的操作:任选一个数加一。 一共有n个整数,还有一个约数m,n个数都对m进行求余,累计余数的数量,要求每个余数都有n/m个。 对于样例1的输入&#xff…

JavaScript使用Ajax

Ajax(Asynchronous JavaScript and XML)是使用JavaScript脚本,借助XMLHttpRequest插件,在客户端与服务器端之间实现异步通信的一种方法。2005年2月,Ajax第一次正式出现,从此以后Ajax成为JavaScript发起HTTP异步请求的代名词。2006…

bilibili快速升满级(使用Docker 容器脚本)

部署bilibili升级运行容器脚本 docker run --name"bili" -v /bili/Logs:/app/Logs -e Ray_DailyTaskConfig__Cron"30 9 * * *" -e Ray_LiveLotteryTaskConfig__Cron"40 9 * * *" -e Ray_UnfollowBatchedTaskConfig__Cron"…

传来喜讯,优维又获奖了!!!

优维科技作为国内DevOps领域的行业领先企业,从诞生之日起,就一直致力于为中国企业提供一流的数字化运维服务,不断深耕核心技术,向客户提供专业强大的产品与服务。多年来,不仅获得了大量客户认可,更是屡次获…

宠物商城系统

源码下载地址 支持:远程部署/安装/调试、讲解、二次开发/修改/定制 宠物商城系统,支持登录、注册、浏览、搜索、详情页、加入购物车。比较简单

WPS的JS宏基础(二)

数据的输入和输出 InputBox(‘请输入内容’) //输入框 alert(‘a’) //简单消息框 MsgBox(‘b’) //进阶消息框 Debug.Print(‘c’) //立即窗口 Console.log(‘d’) //立即窗口 编写规则与注释 1.严格遵循大小写规范 2.每条语句之间用分号分隔 3.复合语句块(块中…

[C/C++]数据结构 链表OJ题:环形链表(如何判断链表是否有环)

题目描述: 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&…

容器数据卷+MYSQL实战

什么是容器数据卷? 让我们回忆一下docker理念: 就是将应用和环境打包成一个镜像 数据? 如果数据都在容器中,那么我们删除容器,数据就会丢失 !需求:数据持久化就完美了 对于MYSQL&#xff0…

Spring Data JPA 项目配置与QueryDSL集成

一、说明 Spring Data JPA通过Spring Initializer创建时勾选相关依赖即可引入,QueryDSL需要单独引入。Spring JPA针对QueryDSL有比较好的兼容性,可以实现优雅的SQL构建。 二、设置JPA默认配置(yaml格式) spring:jpa:hibernate:…

开发人员请注意:在 PyPI 上的 Python 包中发现 BlazeStealer 恶意软件

1、开发人员请注意:在 PyPI 上的 Python 包中发现 BlazeStealer 恶意软件 一组新的恶意 Python 包已经滑入 Python 包索引 (PyPI) 存储库,其最终目的是从受感染的开发人员系统中窃取敏感信息。这些软件包伪装成看似无害的混淆工具…

大厂面试题-MySQL为什么使用B+Tree作为索引结构

从几个方面来回答: 首先,常规的数据库存储引擎,一般都是采用B树或者B树来实现索引的存储。 (如图)因为B树是一种多路平衡树,用这种存储结构来存储大量数据,它的整个高度会相比二叉树来说,会矮很多。 而对…

2023年电工(中级)证模拟考试题库及电工(中级)理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2023年电工(中级)证模拟考试题库及电工(中级)理论考试试题是由安全生产模拟考试一点通提供,电工(中级)证模拟考试题库是根据电工&…

NOIP2023模拟12联测33 B. 游戏

NOIP2023模拟12联测33 B. 游戏 文章目录 NOIP2023模拟12联测33 B. 游戏题目大意思路code 题目大意 期望题 思路 二分答案 m i d mid mid ,我们只关注学生是否能够使得被抓的人数 ≤ m i d \le mid ≤mid 那我们就只关心 a > m i d a > mid a>mid 的房…

【沁恒 CH32V208 开发板免费试用】+ U盘/ SD NAND读写与多功能数码相框

CH32V208继承了沁恆产品一贯的传统,即U盘的读写功能。这使得尽管CH32V208的闪存要比CH32V307的小一倍,但有了U盘读写功能的支持就可有效地缓解用户对存储空间的需求。它除了支持U盘的读取,还支持对CS SD NAND (贴片式TF卡/SD卡) 这类器件的使…

【微软技术栈】C#.NET 正则表达式源生成器

本文内容 已编译的正则表达式源生成在源生成的文件中何时使用 正则表达式 (regex) 是一个字符串,它使开发人员能够表达要搜索的模式,使其成为搜索文本和提取结果作为已搜索字符串子集的一种很常见的方法。 在 .NET 中,System.Text.RegularE…

bootstrap-fileinput拦截文件上传处理失败,根据后台返回数据处理

bootstrap-fileinput如何拦截后台数据,自定义处理业务逻辑 需要后台返回error字段,失败示例,注意:error必须有内容,不然默认也是成功, bootstrap-fileinput失败验证只需要 error 字段,其他附加…