使用Docker安装MySQL和Nginx

在 Docker 中安装 MySQLNginx 非常简单,只需使用 docker run 命令即可快速部署。以下是详细步骤:


1. 安装 MySQL

(1)拉取 MySQL 镜像

docker pull mysql:8.0  # 推荐使用 8.0 或 5.7 版本

(2)运行 MySQL 容器

docker run -d \--name mysql \-p 3306:3306 \-e MYSQL_ROOT_PASSWORD=your_password \  # 设置 root 密码-e MYSQL_DATABASE=testdb \             # 可选:初始化数据库-e MYSQL_USER=testuser \               # 可选:创建用户-e MYSQL_PASSWORD=testpass \           # 可选:用户密码-v /data/mysql:/var/lib/mysql \        # 挂载数据卷(持久化存储)mysql:8.0 \--character-set-server=utf8mb4 \       # 设置字符集--collation-server=utf8mb4_unicode_ci  # 设置排序规则
参数说明:
  • -d:后台运行
  • --name mysql:容器名称
  • -p 3306:3306:映射主机 3306 端口到容器的 3306
  • -e MYSQL_ROOT_PASSWORD:必须设置 root 密码
  • -v /data/mysql:/var/lib/mysql:数据持久化(防止容器删除后数据丢失)

(3)测试 MySQL 连接

docker exec -it mysql mysql -uroot -p

输入密码后,进入 MySQL Shell,说明安装成功。


2. 安装 Nginx

(1)拉取 Nginx 镜像

docker pull nginx:latest

(2)运行 Nginx 容器

docker run -d \--name nginx \-p 80:80 \-p 443:443 \-v /data/nginx/html:/usr/share/nginx/html \  # 挂载静态网站目录-v /data/nginx/conf:/etc/nginx/conf.d \     # 挂载自定义配置nginx:latest
参数说明:
  • -p 80:80:映射 HTTP 端口
  • -p 443:443:映射 HTTPS 端口(如需 SSL)
  • -v /data/nginx/html:/usr/share/nginx/html:挂载网站文件
  • -v /data/nginx/conf:/etc/nginx/conf.d:挂载自定义配置(如 default.conf

(3)测试 Nginx

访问 http://你的服务器IP,如果看到 Welcome to nginx!,说明安装成功。


3. 管理容器

查看运行中的容器

docker ps

停止/启动/重启容器

docker stop nginx    # 停止
docker start nginx   # 启动
docker restart nginx # 重启

删除容器(谨慎操作)

docker rm -f nginx mysql  # 强制删除

4. 进阶:使用 Docker Compose 管理(推荐)

如果同时管理 MySQL 和 Nginx,推荐使用 docker-compose.yml 编排:

version: '3'
services:mysql:image: mysql:8.0container_name: mysqlports:- "3306:3306"environment:MYSQL_ROOT_PASSWORD: your_passwordvolumes:- /data/mysql:/var/lib/mysqlrestart: alwaysnginx:image: nginx:latestcontainer_name: nginxports:- "80:80"- "443:443"volumes:- /data/nginx/html:/usr/share/nginx/html- /data/nginx/conf:/etc/nginx/conf.drestart: always

启动

docker-compose up -d

停止

docker-compose down

5. 常见问题

(1)MySQL 无法远程连接?

检查 MySQL 是否允许远程访问:

docker exec -it mysql mysql -uroot -p

执行:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';
FLUSH PRIVILEGES;

(2)Nginx 配置修改后如何生效?

docker exec -it nginx nginx -s reload

总结

服务命令访问方式
MySQLdocker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0mysql -h 服务器IP -uroot -p
Nginxdocker run -d --name nginx -p 80:80 -v /data/nginx/html:/usr/share/nginx/html nginxhttp://服务器IP

推荐使用 Docker Compose 管理多个容器,更方便维护! 🚀

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

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

相关文章

线上活动丨主动式语音 AI:全双工、对话轮次管理、VAD 技术交流会丨RTE Meetup

一同探索语音驱动的下一代人机交互界面,voice agent builder 的小规模深度交流会。 当用户走在街上时,AI 可以主动提醒他们注意未察觉的来车或骑行者,甚至推荐附近不为人知的特色咖啡馆。 同样,如果系统检测到用户持续表达消极情绪…

如何用内网穿透远程访问Everything?实现随时随地快速检索文件

Everything 是一款高效的文件搜索工具,但默认仅支持局域网内使用。使用 花生壳(内网穿透),我们可以实现远程访问Everything,在外网也能快速检索和管理本地文件。 本教程将详细介绍如何配置花生壳映射,并设…

Docker 入门教程(六):联合文件系统(UnionFS)

文章目录 🐳 Docker 入门教程(六):联合文件系统(UnionFS)一、联合文件系统(UnionFS)二、Docker 镜像的层级结构三、写层(Copy-on-Write)四、镜像构建缓存机制…

SQL在一个表中所有列查询某个值

使用场景:知道表名,同时知道这个表中含有某个字符串,但是不知道这个字符串是在表的哪些列,在列比较多的情况下,查询很麻烦,通过以下语句或者封装的存储可以查出字符串在哪些列出现。结果集里 ContainsValue…

【Outline】纯Docker部署指南

本文介绍了使用Docker部署Outline知识管理系统的完整流程。 主要内容包括: 部署PostgreSQL 12数据库并创建用户;安装Redis 6缓存服务;配置Minio对象存储服务替代AWS S3;搭建SSO单点登录服务器;准备Outline容器镜像和环…

终止分区表变更操作时误删数据字典缓存导致MySQL崩溃分析

终止分区表变更操作时误删数据字典缓存导致MySQL崩溃分析 1. 问题简述 在 MySQL 中,当终止一个处于 committing alter table to storage engine 阶段的分区表操作时,InnoDB 会尝试进行回滚并清理数据字典缓存。不幸的是,过程中发生了误删表…

进程关系与守护进程全解析

进程关系和守护进程 进程组 每一个进程除了有一个进程ID(PID)之外还属于一个进程组。进程组是一个或者多个进程的集合, 一个进程组可以包含多个进程,每一个进程组也有一个唯一的进程组ID(PGID), 并且这个PGID 类似于进程ID, 同样…

PyAutoGUI 测试框架

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】

Git安装避坑指南

Git高速下载 程序员面试资料大全|各种技术书籍等资料-1000G 一、安装前准备:避免环境冲突 1. 检查系统残留(Windows) # 检查旧版Git残留 where git where git.exe# 检查环境变量 $env:PATH -split ; | Select-String git# 清理…

MATLAB中的并行加速技术与工具

文章目录 MATLAB中的并行加速技术与工具1. 多线程计算(隐式并行)2. Parallel Computing Toolbox (并行计算工具箱)2.1 parfor (并行for循环)2.2 spmd (单程序多数据)2.3 parfeval (异步并行执行) 3. GPU计算4. 分布式计算 (MATLAB Parallel Server)5. 批…

GR00T N1.5 技术报告 -- Nvidia -- 2025.6.11 -- 开源

0. 前言 GR00T N1 的详细介绍 Isaac-GR00T 在6.11 进行了全面升级,从 N1 进化为 N1.5,但基本还是基于之前的架构,官方发布了一个技术报告,并更新了github库,之前的N1也做了独立版本 N1 N 1.5 github 技术报告 model…

SRS WebRTC 入门

什么是 SRS WebRTC? SRS (Simple Realtime Server) 是一个支持 WebRTC 流媒体的开源媒体服务器。它允许你建立基于 WebRTC 的低延迟直播和实时通信应用。 快速开始 1. 安装 SRS bash # 使用 Docker 快速安装 docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080…

从手机随拍到标准扫描件:AI如何智能校正证件照片(Python+OpenCV)

目录 一、概述二、解决方案2.1 核心挑战:AI眼中的“三座大山”2.2 设计思路:给AI一个“智能提示”2.3 实现流程:四步搞定 三、代码实现3.1 依赖库3.2 代码 四、结语 一、概述 在当今的线上业务中,要求用户上传身份证、驾驶证等证…

基于OpenCV图像分割与PyTorch的增强图像分类方案

在图像分类任务中,背景噪声和复杂场景常常会对分类准确率产生负面影响。为了应对这一挑战,本文介绍了一种结合OpenCV图像分割与PyTorch深度学习框架的增强图像分类方案。通过先对图像进行分割提取感兴趣区域(Region of Interest,R…

华为云对象存储OBS 支持安卓/iOS/鸿蒙UTS组件

华为云对象存储OBS 支持安卓/iOS/鸿蒙UTS组件 介绍使用前须知vue代码调用示例权限说明API调用说明初始化配置(openClient)创建桶(createBucket)列举桶(listBuckets)删除桶(deleteBucket&#xf…

Buildroot 2025.05 中文手册【AI高质量翻译】

译文在 Github 仓库 和 Gitee 仓库 保持最新,其它平台发的文档可能不会与之同步。 希望能够共同维护这个 仓库的 Buildroot 手册 中文译文,帮助更多人真正深入学习理解,更好的工作、生活和创造。 关于 AI 提示词 以及 更多工具 的收集&#…

采用ArcGIS10.8.2 进行插值图绘制

一、最终成果图展示 二、软件下载 链接: 百度网盘 请输入提取码 密码:azay 三、软件安装 1、在安装之前需要关闭电脑的防火墙及杀毒软件 设置-隐私和安全性-Windows安全中心-防火墙和网络保护 2、软件解压 (1)【ArcGIS_Desktop_1082_180......】“以管理员身份运行”…

Python网安-zip文件暴力破解(仅供学习)

目录 源码在这里 需要的模块 准备一个密码本和需要破解的ZIP文件 一行一行地从密码文件中读取每个密码。 核心部分 注意,需要修改上段代码注释里的这段具有编码问题的代码: 源码在这里 https://github.com/Wist-fully/Attack/tree/cracker 需要的…

如何让ChatGPT模仿人类写作,降低AIGC率?

在AI技术日益普及的当下,ChatGPT 等大语言模型已成为许多学术与写作任务中的得力助手。然而,学境思源,随着各类“AI检测系统”的出现,一键生成论文初稿!我们也遇到一个新的问题:如何让AI写作看起来不像AI写…

科大讯飞2025AI开发者大赛-用户新增赛道时间规则解析

根据训练集中的时间规则,对测试集中的数据推断用户标签(新用户或老用户)。 时间规则如下: 针对训练集和测试集中都存在的did: 找到在训练集中标记为新用户最晚的时间点,则测试集中对应did的数据在此时间点前全部为新用…