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

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

文章目录

  • Docker中安装并配置MySQL、nginx、redis等
  • 一、创建nginx容器
    • ①:拉取镜像
    • ②:运行nginx镜像
    • ③:从nginx容器中映射nginx配置文件到本地
    • ④:重启nginx并重新配置nginx的挂载
  • 二、创建redis容器
    • ①:拉取redis镜像
    • ②:创建挂载目录
    • ③:下载redis的配置文件
    • ④:修改默认配置信息
    • ⑤:创建并启动redis容器
    • ⑥:连接测试
  • 三、创建MySQL容器
    • ①:拉取MySQL镜像
    • ②:创建挂载目录
    • ③:创建并运行新mysql容器,挂载本地目录
    • ④:连接测试


一、创建nginx容器

①:拉取镜像

# 下载最新版本的nginx的镜像
docker pull nginx:latest# 或指定版本
docker pull nginx:1.25.3

在这里插入图片描述

②:运行nginx镜像

1.运行

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

在这里插入图片描述

2.查看运行的镜像

docker ps

在这里插入图片描述

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

1.创建本地文件夹

mkdir -p /usr/local/nginx

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

docker cp nginx:/etc/nginx/ /usr/local/nginx
docker cp nginx:/usr/share/nginx/html /usr/local/nginx

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

可以看到文件复制成功!

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

1.删除容器

# 先停止在删除
docker stop nginx 
docker rm nginx# 或 直接删除
docker rm -f nginx

在这里插入图片描述

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

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
# 命令分析
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.查看运行的容器

docker ps

在这里插入图片描述

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

  • 修改首页

在这里插入图片描述

  • 访问(文件映射成功!)在这里插入图片描述

二、创建redis容器

①:拉取redis镜像

# 拉取最新镜像
docker pull redis# 或指定版本
docker pull redis:5.0

在这里插入图片描述

②:创建挂载目录

# 创建redis配置目录
mkdir -p /usr/local/redis/conf# 进入到该目录
cd /usr/local/redis/conf

③:下载redis的配置文件

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

在这里插入图片描述

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

在这里插入图片描述

④:修改默认配置信息

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.创建运行程序

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
# 命令分析
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镜像

# 拉取最新镜像
docker pull mysql# 或指定版本
docker pull mysql:8.0

在这里插入图片描述

②:创建挂载目录

# 创建目录
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容器

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
# 命令分析
-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用户是运行所有机器连接的

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大语言模型系列-BERT

文章目录 前言一、BERT的网络结构和流程1.网络结构2.输入3.输出4.预训练Masked Language ModelNext Sentence Predictionloss 二、BERT创新点总结 前言 前文提到的GPT-1开创性的将Transformer Decoder架构引入NLP任务,并明确了预训练(学习 text 表征&am…

vim 编辑器如何同时注释多行以及将多行进行空格

一、场景 YAML文件对空格的要求非常严格,因此在修改YAML时,我们可能需要批量添加空格。 二、操作步骤 请注意:您的所有操作都将以第一行为基准。也就是说,第一行有多少个空格,下面的行就会模仿添加相同数量的空格。…

Spring WebSocket实现实时通信的详细教程

简介 WebSocket 是基于TCP/IP协议,独立于HTTP协议的通信协议。WebSocket 连接允许客户端和服务器之间的全双工通信,以便任何一方都可以通过已建立的连接将数据推送到另一方。 我们常用的HTTP是客户端通过「请求-响应」的方式与服务器建立通信的&#x…

Ubuntu 22.04.1 LTS VirtualBox7.0 解决虚拟机窗口失去焦点一段时间后,虚拟机显示不刷新问题

故障描述: virtualbox安装在ubuntu系统上,虚拟机内安装了windows操作系统。使用中发现,当linux系统窗口被激活,如firefox浏览器,虚拟机的显示一段时间后会暂停刷新,鼠标划入虚拟机窗口后,才会立…

mysql数据迁移报错Specified key was too long; max key length is 767 bytes

目录 场景: 说明: 疑问: 解决: 验证: 场景: 线上项目支持的过程中遇到mysql库表结构和数据由A库迁移到B库上提示Specified key was too long; max key length is 767 bytes报错,第一次遇到特此…

Rust之旅 - Rust概念、Windows安装、环境配置

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 系列专栏目录 [Java项目…

生成式对抗网络GAN

Generative Adversarial Nets由伊恩古德费洛(Ian J.Goodfellow)等人于2014年发表在Conference on Neural Information Processing Systems (NeurIPS)上。NeurIPS是机器学习和计算神经科学领域的顶级国际学术会议之一。 1. GAN在哪些领域大放异彩 图像生…

目标检测--02(Two Stage目标检测算法1)

Two Stage目标检测算法 R-CNN R-CNN有哪些创新点? 使用CNN(ConvNet)对 region proposals 计算 feature vectors。从经验驱动特征(SIFT、HOG)到数据驱动特征(CNN feature map),提高特…

【计算机网络】(1)OSI七层模型、协议、交换技术、路由器技术

文章目录 计算机网络功能与分类计算机网络的定义计算机网络的功能计算机网络的指标计算机网络的性能指标计算机网络的非性能指标 计算机网络的分布范围以及拓扑结构划分图计算机网络分类总线型拓扑星型拓扑环形图拓扑树型拓扑分布式拓扑 通信技术信道物理信道逻辑信道 发信机OS…

基于Java网上鲜花商城系统设计与实现(源码+部署文档)

博主介绍: ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到 Java项目精品实…

全开源多城市同城信息小程序源码(Laravel 框架),同城分类信息发布便民小程序系统【非DZ】

同城生活分类信息小程序,人才招聘、房产二手 多城市地区同城分类信息发布,商家入驻等功能 小程序前后端代码开源无加密,可进行二次开发 【源码运行要求】 1、需要已认证的微信小程序 2、已备案的域名及服务器空间 推荐使用宝塔面板LinuxPHP…

C#用Convert.ToString(Int32, Int32)和Convert.Tolnt64(String, Int32)进行数值转换

目录 一、Convert.ToString(Int32, Int32) 方法 1.定义 2. 示例 二、Convert.ToInt64(String, Int32) 1.定义 2.实例 三、用Convert.ToString(Int32, Int32)和Convert.Tolnt64(String, Int32)进行数值转换 1.Main() 2.类库 3.生成效果 使用Convert.ToString(Int32…