undefined

清理docker占用的磁盘空间:https://blog.csdn.net/weixin_32820767/article/details/81196250

docker占用磁盘问题:https://www.codenong.com/cs105850984/

docker overlay2占用大量磁盘空间处理方法:https://blog.csdn.net/haohaoxuexiyai/article/details/111244328

docker 日志位置:https://blog.csdn.net/warrior_0319/article/details/79713155

修改 VOLUMN 自动创建默认权限问题:https://juejin.cn/post/6844903971421683719

查看更多

undefined

Docker 命令需要 sudo 的问题

一、问题的由来

Docker 的守护线程绑定的是 unix socket。这个套接字默认属于 root,其他用户可以通过 sudo 去访问这个套接字文件。所以 docker 服务进程都是以 root 账户运行

二、解决问题

创建 docker 用户组,把用户加入到 docker 用户组里面。只要 docker 组里的用户都可以执行 docker 命令

  1. 查看是否有 docker 用户组

    1
    cat /etc/group | grep docker

查看更多

undefined

docker 如何隔离资源

主要依赖 Linux 的 Namespace 和 Cgroups 两个技术。Namespace是Linux提供的资源隔离机制,说的直白一点,就是调用Linux内核的方法,实现各种资源的隔离。具体包括:文件系统、网络设备和端口、进程号、用户用户组、IPC等资源

一、namespace

Linux 内核从版本 2.4.19 开始陆续引入了 namespace 的概念。其目的是将某个特定的全局系统资源通过抽象方法使得namespace 中的进程看起来拥有它们自己的隔离的全局系统资源实例。Linux 内核中实现了六种 namespace,按照引入的先后顺序,列表如下:

例如,容器进程启动时,只要启用了Mount Namespace,并将自己打包的文件系统挂载好,就可以实现每个容器仅看到自己的文件,实现文件资源的隔离。总之,Docker 守护进程创建容器实例时都启用了相应的namespace,使得容器中的进程都处于一种隔离的运行环境之中。

查看更多

undefined

Docker 的一些使用方法

一、 保存对容器的修改

当我们对一个容器做了修改之后,可以把对容器的修改保存下来,这样下次可以从保存后的更新状态运行该容器。docker 中保存状态的过程称为 committing,他保存新旧状态之间的区别,从而产生一个新的版本。

1
2
# 可以通过 docker ps -l 命令获取容器 id
docker commit [options] container [repository[:tag]]

OPTIONS 说明:

查看更多

undefined

Jedis

什么是 jedis,是redis 官方推荐的java 连接开发工具!使用Java 操作redis 中间件

1
2
3
4
5
6
7
8
9
10
11
12
<!--导入jedis的包-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.6.3</version>
</dependency>
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>

查看更多

undefined

一、redis 的使用场景

  • 缓存:对于热点数据。合理的使用缓存不仅可以提供我们业务的性能,还可以大大降低数据库的压力。Redis 提供键过期功能,也提供了灵活的键淘汰策略。因此 redis 用在缓存场合非常多

  • 排行榜:很多网站都有排行榜,Redis 提供的有序集合数据结构能支持各种复杂的排行榜应用

查看更多

undefined

Redis的单线程

Redis的单线程主要指:Redis 的网络IO和键值对读写是由一个线程来完成的,这也是redis 对外提供键值存储服务的主要流程。但redis的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。

多线程无法线性提升系统吞吐量的原因:一个关键的瓶颈在于,系统中通常会存在被多线程同步访问的共享资源。为了保证资源的正确性,额外的机制会带来额外的开销。

1. 单线程Redis快的原因

  1. Redis 的大部分操作在内存上完成,再加上它采用了高效的数据结构
  2. Redis 采用了多路复用机制(epoll),使其在网络IO中能并发处理大量的客户端请求,实现高吞吐率。
查看更多