[Docker#8] 容器配置 | Mysql | Redis | C++ | 资源控制 | 命令对比

server/2024/11/18 12:33:22/

目录

一:Mysql 容器化安装

二:Redis 容器化安装

Redis 简介

Redis 容器创建

三:C++容器制作

四:容器资源更新

常见问题


一:Mysql 容器化安装

进入 mysql 的镜像网站,查找 mysql 的镜像

mysql docker hub 官网,可以看到有这么多的 tag

选择使用最多的 5.7 版本,拉取镜像

docker pull mysql:5.7

启动一个 MySQL 容器,并指定密码和端口开放

docker run --name mysql -e MYSQL_ROOT_PASSWORD=maxhouroot -p 8200:3306 -d mysql:5.7

进入容器登录,验证 MySQL 是否正常运行

 

如果对外开放了 3877 端口,可以通过 GUI 工具远程登录到界面上

  • 例如使用 MySQL Workbench 连接。

释放空间

docker stop mysql
docker rm mysql

二:Redis 容器化安装

Redis 简介

Redis 出现的原因

  • 在 Web 应用发展的初期,关系型数据库受到了较为广泛的关注和应用,因为那时 Web 站点基本上访问和并发不高、交互也较少。
  • 随着访问量的提升,使用关系型数据库的 Web 站点在性能上出现了瓶颈,主要瓶颈在磁盘的I/O 上。
  • 随着互联网技术的进一步发展,对性能有了更高的需求,主要体现在低延迟的读写速度和支撑海量的数据和流量。

Redis 是什么

  • Redis 全称 Remote Dictionary Server,中文名为远程字典服务器
  • Redis 是一个使用 ANSI C 编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库。

Redis 的特性

  • 基于内存运行,性能高效
  • 支持分布式,理论上可以无限扩展
  • key-value 存储系统
  • 开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API

Redis 的应用场景

  • 缓存系统(“热点”数据:高频读、低频写)
  • 计数器
  • 消息队列系统
  • 实时排行榜
  • 社交网络

Redis 生活案例

  • Redis 就像一个新华字典,可以根据某个字符快速找到字典对应的字。
Redis 容器创建

拉取 Redis 镜像

docker pull redis

启动 Redis 容器

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

进入 Redis 容器并验证

 exec -it redis redis-cli
127.0.0.1:6379> ping
PONG

操作可视化:

用到的是 Another Redis Desktop Manager

释放空间

docker stop redis
docker rm redis

通过以上步骤,可以成功地将 MySQL 和 Redis 容器化,并进行基本的操作和验证


三:C++容器制作

下载 Ubuntu 镜像

docker pull ubuntu:22.04

启动容器

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

配置国内镜像源加速

sed -i 's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.list

安装 gcc 和 vim

apt update
apt install gcc vim -y

编辑代码

mkdir src
cd src
vim demo.c

输入以下内容:

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

编译代码

gcc demo.c -o demo

在容器中运行

./demo

退出容器

exit

恢复容器

docker restart mygcc

清理容器释放空间

docker stop mygcc
docker rm mygcc

四:容器资源更新

运行一个 Nginx 容器

docker run -d --name mynginx5 -p 80:80 nginx:1.22.1

查看容器中的进程

docker top mynginx5 aux

查看资源的动态变化

docker stats

更新容器的最大内存

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

执行命令打满 CPU

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

配置只能使用 10% 的 CPU

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

查看 CPU 使用情况

docker stats

停止容器,释放资源

docker stop mynginx5
docker rm mynginx5

常见问题

docker createdocker startdocker run 有什么区别?

  • docker create:从 Docker 镜像创建一个全新的容器,但不会立即运行
  • docker start:启动任何已停止的容器。如果使用 docker create ,可以使用此命令启动。
  • docker run:(=create+start) 创建并立即启动一个新的容器。如果在系统上找不到所需镜像,会从 Docker Hub 中拉取。

docker importdocker load 有什么区别?

  • docker save:将一个镜像导出为文件,使用 docker load 导入为镜像,保存所有历史记录。(迁移时建议使用这个)
  • docker export:将一个容器导出为文件,使用 docker import 导入为新的镜像,丢失所有元数据和历史记录。

docker rmdocker rmidocker prune 的差异?

  • docker rm:删除一个或多个容器
  • docker rmi:删除一个或多个镜像。
  • docker prune:删除不再使用的 Docker 对象。

http://www.ppmy.cn/server/142910.html

相关文章

Layer1公链介绍:Solana

https://solana.com/ Solana 是一个开源的高性能、无许可区块链项目&#xff0c;由 Anatoly Yakovenko 于2017年创立&#xff0c;旨在支持所有高增长和高频区块链应用&#xff0c;并实现全球金融系统的民主化. 技术亮点 历史证明&#xff08;PoH&#xff09;共识机制&#xf…

数据结构王道P234第二题

#include<iostream> using namespace std; int visit[MAxsize]; int color[MaxSize];//1表示红&#xff0c;2表示白&#xff1b; bool dfs(Graph G, int i){visit[i]1;ArcNode *p;bool flag1;for(pG.vertices[i].firsrarc; p ; pp->next){int jp->adjvex;if(!visi…

使用nossl模式连接MySQL数据库详解

使用nossl模式连接MySQL数据库详解 摘要一、引言二、nossl模式概述2.1 SSL与nossl模式的区别2.2 选择nossl模式的场景三、在nossl模式下连接MySQL数据库3.1 准备工作3.2 C++代码示例3.3 代码详解3.3.1 初始化MySQL连接对象3.3.2 连接到MySQL数据库3.3.3 执行查询操作3.3.4 处理…

手机直连卫星NTN通信初步研究

目录 1、手机直连卫星之序幕 2、卫星NTN及其网络架构 2.1 NTN 2.2 NTN网络架构 3、NTN的3GPP标准化进程 3.1 NTN需要适应的特性 3.2 NTN频段 3.3 NTN的3GPP标准化进程概况 3.4 NTN的3GPP标准化进程的详情 3.4.1 NR-NTN 3.4.1.1 NTN 的无线相关 SI/WI 3.4.1.2…

后端总指挥---文件接口

为了方便编写项目时前后端的连接&#xff0c;在这里引进文件接口的概念&#xff0c;通常包含以下几个部分&#xff1a; 功能请求路径请求方式传输的数据类型请求入参数据样本响应的出参响应成功后的数据样本 这样前端编程与后端编程 可以根据文件接口这个文档来分别编写前后端&…

【HarmonyOS】应用实现读取剪切板内容(安全控件和自读取)

【HarmonyOS】应用实现读取粘贴板内容(安全控件和自读取) 前言 三方应用 读取系统剪切板是比较常见的功能。可以实现功能入口的快捷激活跳转&#xff0c;以及用户粘贴操作的简化&#xff0c;增强用户的体验感。 但是在用户日渐注重隐私的今天&#xff0c;系统对于剪切板权限的…

二叉树的层序遍历

一、题目 给定一个二叉树&#xff0c;返回该二叉树层序遍历的结果&#xff0c;&#xff08;从左到右&#xff0c;一层一层地遍历&#xff09; 例如&#xff1a; 给定的二叉树是{3,9,20,null,null,15,7}, 该二叉树层序遍历的结果是 [[3],[9,20],[15,7]] 二、解决方案 2.0 树…

前端 易混淆知识点梳理

目录 一、严格模式与非严格模式 二、双等于三等的区别 三、防抖和节流 四、原型和原型链 五、页面重绘和回流 六、script标签async和defer 七、普通函数和箭头函数的区别 八、JS闭包 1、闭包特点 2、闭包作用 3、闭包风险 4、运用场景 1&#xff09;常见闭包 2&a…