浅析 Docker overlay2 文件结构 rootfs 发表于 2024-06-27 | 分类于 docker容器 | 暂无评论 前言 rootfs 在讲 overlay2 之前,我们需要先简单了解下什么是 rootfs: rootfs 也叫 根文件系统,是 Linux 使用的最基本的文件系统,是内核启动时挂载的第一个文件系统,提供了根目录 /,根文件系统包含了系统启动时所必须的目录和关键性文件,以及使其他文件系统得以挂载所必要的文件。在根目录下有根文件系统的各个目录,例如 /bin、/etc、/mnt 等,再将其他分区挂载到 /mnt,/mnt 目录下就有了这个分区的各个目录和文件。 docker 容器中使用的同样也是 rootfs 这种文件系统,当我们通过 docker exec 命令进入到容器内部时也可以看到在根目录下有 /bin、/etc、/tmp 等目录,但是在 docker 容器中与 Linux 不同的是,在挂载 rootfs 后,docker deamon 会利用联合挂载技术在已有的 rootfs 上再挂载一个读写层,容器在运行过程中文件系统发生的变化只会在读写层进行修改,并通过 whiteout 文件隐藏只读层中的旧版本文件。 阅读全文 »
linux scp ipv6 发表于 2024-05-21 | 分类于 Linux | 暂无评论 ### ipv6 环境下完美使用scp 通常情况下,在ipv4的环境下,我们使用scp的时候,都是按照如下的格式来写的: ```shell scp xxx.file root@192.168.1.1:/home ``` 但是在ipv6的环境下,如果在按照上面的格式来写的话,就会出现问题:network unreachable 或 ssh: connect to host port 22: Invalid argument 阅读全文 »
c c++ c# java se ee me .net vc 区别 发表于 2024-05-06 | 分类于 编程 | 暂无评论 C语言是一种过程式编程语言,旨在提供高效的系统级编程。C++是在C语言基础上发展而来的,既支持过程式编程,也支持面向对象编程。C#是面向对象的编程语言,专注于开发Windows应用程序和.NET平台上的应用。 ### C:经久不衰的语言 C语言是面向过程的编程语言,它是结构化程序设计语言,以简洁、高效和灵活著称,经常用于系统编程和嵌入式开发。 ### C++是面向对象的编程语言 也可以进行面向过程编程,它引入了类和对象的概念,支持多态、封装和继承,让程序的设计更加模块化和可维护,广泛应用于游戏开发、系统软件和高性能应用程序的开发。 主要领域一是做桌面程序,像QQ,迅雷这种桌面软件 大部分游戏(包括魔兽等)后台语言就是使用C++ 阅读全文 »
docker 容器根据 pid 查找该进程所属的容器 发表于 2024-04-26 | 分类于 docker容器 | 暂无评论 有时候我们可能会遇到Docker容器占用资源过高的情况,但我们不知道具体是哪个容器导致的。这时我们可以通过查找进程来找到具体的容器。以下是一些常用的命令: ### 1.通过top查看内存占用高的进程 ```shell PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2962 root 20 0 1040288 96708 19944 S 0.3 2.5 234:48.26 node ``` ### 2.通过pid查看具体容器 ```shell # docker ps -q | xargs docker inspect --format '{{.Id}} {{.State.Pid}} {{.Name}}'|grep 2962 没有结果输出 ``` 阅读全文 »
nginx 监控日志封禁恶意IP 发表于 2024-04-19 | 分类于 nginx | 暂无评论 使用 nginx deny 拦截恶意IP ### 1.创建文件 touch /etc/nginx/blocksip.conf touch /etc/nginx/blocksip.tmp ### 2.nginx 配置文件 ` server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; include blocksip.conf; ... }` 阅读全文 »