小编rka*_*ach的帖子

Chroot vs Docker

我正在尝试学习有关容器的基础知识(本例中为Docker).据我从Docker doc和几个读数中学习,Docker基本上通过使用runc运行容器来提供隔离(以前使用LXC).它使用与主机相同的内核的方式.因此,容器映像需要与主​​机内核兼容.我发现这与chroot的作用非常相似.有人可以向我解释使用Docker而不是chroot的任何差异和/或优势吗?(除了Docker提供的附件包装,docker-hub以及Docker提供的所有优秀功能)

linux chroot docker

37
推荐指数
1
解决办法
1万
查看次数

x509:未知权威机构为普罗米修斯签署的证书

我试图使用 Prometheus 监视我们的 Spring boot 应用程序之一,但不幸的是该服务的状态在 ubuntu 服务器中没有启动,它 \xe2\x80\x99s 显示一些错误,例如 \xe2\x80\x93

\n

/prometheus: x509: 由未知机构签名的证书,从我本地的 Prometheus 中该服务已启动,并且还能够监视一些 http 请求。\n错误快照

\n

grafana spring-boot-actuator prometheus

9
推荐指数
1
解决办法
1万
查看次数

linux内核将数据写入管道的位置

假设以下简单代码:

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>

main()
{
    int fd[2];                
    pipe(fd);
 // ...               
    write(fd, buf, VERY_BIG_NUMBER);
 // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
}
Run Code Online (Sandbox Code Playgroud)

现在我的问题:

  1. 有人可以解释写入数据的位置吗?
  2. 它是写入用户空间或内核空间中的某个缓冲区吗?
  3. 可以写入管道的最大长度是多少?
  4. 由于管道写入是阻塞操作,因此效率内核不会做任何事情并等待读者将数据直接传递给它吗?

linux pipe

7
推荐指数
1
解决办法
842
查看次数

minikube 是如何工作的?

在使用 Docker 和编排 (kubernetes) 时,我必须安装并使用 minikube 来创建一个简单的沙箱环境。一开始我以为 minikube 安装某种 VM 并在其中运行“缩小的”kubernetes 环境,但是,在安装列出我本地 Docker 运行容器后,我发现 minikube 作为容器运行!..所以在这里我有点迷失,我有一些问题希望有人可以澄清。

minikube 本身可以作为 Docker 容器吗?

docker kubernetes minikube

6
推荐指数
1
解决办法
522
查看次数

为什么malloc从某个阈值开始依赖mmap?

我正在阅读关于malloc的一些内容,并在malloc的手册页中找到以下内容:

通常,malloc()从堆中分配内存,并使用sbrk(2)根据需要调整堆的大小.当分配大于MMAP_THRESHOLD字节的内存块时,glibc malloc()实现使用mmap(2)将内存分配为私有匿名映射.MMAP_THRESHOLD默认为128 kB,但可以使用mallopt(3)进行调整.使用mmap(2)执行的分配不受RLIMIT_DATA资源限制的影响(请参阅getrlimit(2)).

所以基本上从MMAP_THRESHOLD门户开始,malloc开始使用mmap.

  1. 有没有理由为大块切换到mmap?
  2. 这可能会影响流程执行性能吗?
  3. mmap系统是否会调用上下文切换?

linux malloc performance memory-management

5
推荐指数
1
解决办法
1439
查看次数

在正则表达式中捕获组的奇怪行为

给定以下简单的正则表达式,其目标是在引号字符之间捕获文本:

regexp = '"?(.+)"?'
Run Code Online (Sandbox Code Playgroud)

当输入是这样的:

"text"
Run Code Online (Sandbox Code Playgroud)

捕获组(1)具有以下内容:

text"
Run Code Online (Sandbox Code Playgroud)

我预计组(1)text只有(没有引号).有人可以解释发生了什么以及为什么正则表达式捕获"符号,即使它在捕获组#1之外.我不理解的另一个奇怪的行为是为什么第二个引用字符被捕获但不是第一个引用字符,因为它们都是可选的.最后我使用以下正则表达式修复它,但我想了解我做错了什么:

regexp = '"?([^"]+)"?'
Run Code Online (Sandbox Code Playgroud)

python regex

5
推荐指数
1
解决办法
119
查看次数

将3D世界(arcore锚/姿势)转换为其对应的2D屏幕坐标

我正在努力实现这种转变.给定arcore中的锚Pose如何在屏幕中获得相应的2D坐标?

java android opengl-es arcore

5
推荐指数
1
解决办法
1999
查看次数

adb端口转发以侦听所有接口

我正在尝试将TCP端口从本地计算机重定向/转发到设备(在我的服务器上侦听给定端口的设备)。我正在使用的命令如下:

adb forward -a tcp:5555 tcp:5555
Run Code Online (Sandbox Code Playgroud)

但是,当我使用netstat检查时,我看到adb仅在127.0.0.1上侦听。我需要adb侦听任何IP,而不仅仅是本地主机。这可能吗?

android adb

5
推荐指数
1
解决办法
566
查看次数

C函数调用后跟逗号分隔符

我正在阅读一些关于编写C程序时应该避免的错误的材料,我遇到了以下代码:

#include <stdio.h>

void foo(int param)
{
  printf("foo is called\n");
  printf("%d\n",param);
}

int main()
{
  return foo,(1);
}
Run Code Online (Sandbox Code Playgroud)

上面的代码构建没有错误和警告(它只在-Wall被激活时显示警告)但是当我运行小程序时没有显示任何内容.由于逗号分隔符,不调用函数foo.

我的问题是为什么C标准允许这样的语法?在这种情况下编译器不应该发出错误吗?在哪种情况下,这种语法可以在一些实际用例中使用?

提前致谢,

PD:我正在使用GCC 4.8.3

编辑:

在这种情况下,编译器无法检测到这种情况并发出错误而不是警告(正如我所说,只有在启用-Wall时才会出现)

c language-design

4
推荐指数
2
解决办法
161
查看次数

malloc函数何时分配相同的内存位置?

我在 bsm_create 函数的各个地方调用了 malloc 函数,但在某些地方我得到了相同的内存地址。malloc/calloc 函数可以释放某些位置并在 linux(fedora) 环境中再次分配该位置吗?

c linux malloc

2
推荐指数
1
解决办法
1588
查看次数

意外的结束声明

我越来越反复出现以下消息错误"第2行中的语句意外结束"我看不出有什么问题吗?我做错了什么..

Sub Main()
  Dim regex As Regex = New Regex("\d+")
  Dim match As Match = regex.Match("Dot 77 Perls")
  If match.Success Then
      MessageBox.Show(match.Value)
  End If
End Sub
Run Code Online (Sandbox Code Playgroud)

vbscript

0
推荐指数
1
解决办法
1331
查看次数