跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

Docker 容器实战:MySQL、Redis 部署与资源管理

综述由AI生成Docker 容器实战教程,涵盖 MySQL 和 Redis 的镜像拉取、容器运行及端口映射配置,演示了如何在 Ubuntu 容器中编译 C++ 程序,并展示了使用 docker stats 和 update 命令监控及更新容器 CPU 和内存资源限制的方法。

leon发布于 2026/3/15更新于 2026/6/336 浏览
Docker 容器实战:MySQL、Redis 部署与资源管理

MySQL 容器化安装

我们可以先在 Docker Hub 上查看对应的 MySQL 镜像,拉取对应的镜像:

拉取 mysql5.7 版本的镜像:

docker pull mysql:5.7

运行容器,并设置密码和端口映射:

docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 8090:3306 -d mysql:5.7

使用以下命令查看容器是否在运行:

docker ps 

进入容器的端口界面:

docker exec -it mysql bash 

然后登录上 MySQL:

bash-4.2# mysql -p 

看一下数据库列表:

在这里插入图片描述

还可以通过 Workbench 软件远程访问到 MySQL 容器:

在这里插入图片描述

设置好映射端口和主机 IP 后,输入密码就能远程访问:

在这里插入图片描述

输入 show databases 进行查看:

在这里插入图片描述

docker stop mysql
docker rm mysql 

释放空间。

注意事项: 端口映射:如果需要从主机访问 MySQL 服务,可以在创建容器时使用-p 参数映射端口。 数据持久化:为了保证数据不丢失,可以使用-v 参数挂载数据目录到主机。 安全性:不要在生产环境中使用默认的 root 密码和端口,以及不要将敏感信息暴露在环境中。

Redis 容器化安装

在 Docker Hub 上搜索 Redis 镜像,可以使用以下命令:

docker search redis 

拉取 redis7.0 版本的镜像:

docker pull redis:7.0

运行容器 redis,并设置端口映射:

docker run --name redis -p 8089:6379 -d redis:7.0

进入 redis 容器运行界面,并运行 redis:

root@VM-8-12-ubuntu:~# docker exec -it redis bash
root@545e7a6a42ec:/data# redis-cli 

设置一个 key:

在这里插入图片描述

也可以通过软件 Redis Desktop Manager 远程访问 Redis 容器:

释放空间:

docker stop redis
docker rm redis 

注意事项: 安全性:不要在生产环境中使用默认的密码和端口,以及不要将敏感信息暴露在环境中。可以通过修改 redis.conf 配置文件来设置密码和其他安全选项。 资源限制:根据实际需求为 Redis 容器分配适当的 CPU、内存和磁盘资源。可以使用 Docker 的–cpus、–memory 和–storage-opt 等参数来限制容器的资源使用。 备份与恢复:定期备份 Redis 数据,并测试恢复过程以确保数据的安全性和可恢复性。

C++ 容器简单制作

拉取一个 ubuntu22.04 的镜像:

docker pull ubuntu:22.04

运行 ubuntu 容器:

docker run --name mygcc -it ubuntu:22.04 bash 

在 ubuntu 镜像中下载 vim:

apt update
apt install gcc vim -y 

然后编辑一个 demo.c C 文件:

#include<stdio.h>
int main(){
    printf("hello docker!\n");
    return 0;
}

编译代码并生成可执行程序:

gcc -o demo demo.c 

在这里插入图片描述

退出并删除 mygcc 容器:

exit
docker rm mygcc 

容器资源更新

运行容器 mynginx,映射端口为 8080,后台运行:

docker run -d --name mynginx1 -p 8080:80 nginx:1.23.4

对于命令 docker top 加上 aux 就能查看 cpu 和内存资源:

在这里插入图片描述

也可通过指令 docker stats 来实时查看不断追踪资源使用情况:

docker stats 

在这里插入图片描述

通过资源更新将内存上限调为 300m:

docker update -m 300m --memory-swap 600m mynginx1 

查看资源使用情况可以看到内存上限变为 300m:

在这里插入图片描述

进入 mynginx1 运行端口:

docker exec -it mynginx1 bash 

我们在容器中执行一个命令,打满 cpu:

for i in `seq 1 $(cat /proc/cpuinfo | grep "physical id"|wc -l)`;do dd if=/dev/zero of=/dev/null & done 

cat /proc/cpuinfo |grep 'physical id' | wc -l 可以获得 CPU 的个数,我们将其表示为 N

seq 1 N 用来生成 1 到 N 之间的数字,通过 for 循环 不断执行命令 1-N;

for i in seq 1 N; 就是循环执行命令,从 1 到 N

dd if=/dev/zero of=/dev/null 执行 dd 命令,输出到/dev/null,实际上只占用 CPU,没有 IO 操作

由于连续执行 N(是 CPU 个数) 的 dd 命令,且使用率为 100%,这时调度器会调度每个 dd 命令在不同的 CPU 上处理,最终就实现所有 CPU 占用率 100%

更新容器 mynginx1 的 cpu 上限为 10%:

docker update --cpu-period=100000 --cpu-quota=10000 mynginx1 

在这里插入图片描述

停止运行的容器,并释放资源:

docker stop mynginx1
docker rm mynginx1 

目录

  1. MySQL 容器化安装
  2. Redis 容器化安装
  3. C++ 容器简单制作
  4. 容器资源更新
  5. cat /proc/cpuinfo |grep “physical id” | wc -l 可以获得 CPU 的个数,我们将其表示为 N
  6. seq 1 N 用来生成 1 到 N 之间的数字,通过 for 循环 不断执行命令 1-N;
  7. for i in seq 1 N; 就是循环执行命令,从 1 到 N
  8. dd if=/dev/zero of=/dev/null 执行 dd 命令,输出到/dev/null,实际上只占用 CPU,没有 IO 操作
  9. 由于连续执行 N(是 CPU 个数) 的 dd 命令,且使用率为 100%,这时调度器会调度每个 dd 命令在不同的 CPU 上处理,最终就实现所有 CPU 占用率 100%
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • C++ 引用、inline 与 nullptr 详解
  • VSCode 配置 GitHub Copilot 使用 OpenAI 兼容模型
  • OpenClaw gateway start 报 401 Invalid API key 环境变量配置问题
  • AI 编程告别免费时代:Trae 计费变革与开发者应对策略
  • 网络安全专业在校生兼职途径与接单指南
  • DeepSeek-R1-Distill-Llama-8B 模型安全与对抗攻击防护
  • IDEA 中将项目提交到 Gitee 仓库
  • Python 工厂模式封装 Webhook 群聊机器人
  • GitHub 热门:支持国内股票分析的 AI 开源项目
  • AI 产品经理如何构建金融场景大模型产品架构
  • 知识图谱增强大模型 GraphRAG 全面综述:架构、应用与未来方向
  • SpringAI 结合 Ollama 本地部署 Deepseek 实现对话机器人
  • 节点小宝 4.0 实测:告别网管式运维,打造极简远程工作流
  • RAG 优化方案与实践详解
  • LLM、RAG、MCP、AI Agent:图文详解
  • Rust 错误处理与测试:打造健壮可维护应用的核心实践
  • WhisperX 语音识别工具核心优势与应用解析
  • 基于 YOLOv8 的无人机枸杞病害检测数据集与训练实战
  • 从传统产品经理转型为 AI 产品经理的路径与方法
  • 基于 FastGPT 与 MCP 协议构建工具增强型 AI Agent

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online