标签: container

尝试在 LXC 内部署 Docker 容器时超出磁盘配额

我有一个运行 docker 的 LXC 容器。许多容器正在成功运行,但我无法添加更多容器;我正在尝试部署一个新的 docker 容器并收到以下错误:

container init caused "join session keyring: create session key: disk quote exceeded": unknown
Run Code Online (Sandbox Code Playgroud)

但容器有足够的可用空间,主机也有。我用df -hand确认了这一点df -i(所以,它不是索引节点)

这个错误是什么意思以及如何解决?

container lxc docker

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

Podman 无法杀死容器:未运行,但状态不正确

当我跑步时podman container kill -a,我得到

can only kill running containers. 11d887d57069b3ee630fd6f1b13d600485c34f5020ff09fec65f4e31dd7242a5 is in state configured: container state improper
can only kill running containers. 2132c0543eedbe3c4ee8680da508fea6251d38107d5e707f260eb5aa8549409d is in state configured: container state improper
can only kill running containers. 2db317cc73ec92e434fda88653f872e4c4cf07e9f32c0c29ecc5e69515beb96d is in state exited: container state improper
can only kill running containers. 465d133dec7a568bd8a6231036e1c489b6a6f88c65154629d75ce4161fb6e3c4 is in state exited: container state improper
Run Code Online (Sandbox Code Playgroud)

随后的运行仍然显示容器。我怎样才能摆脱它们?

kill container podman

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

如何在 Linux 容器内替换 /bin 中的二进制文件

我想做一些奇怪的容器,我的任务之一是替换uname二进制文件。
我编码它:

#include <stdio.h>
int main() {
   printf("This is a fake uname\n");
   return 0;
}  
Run Code Online (Sandbox Code Playgroud)

编译它:

gcc uname.c -o uname
Run Code Online (Sandbox Code Playgroud)

当我在我的 ubuntu 上运行它时它工作正常。

我创建了一个Dockerfile并将其复制到图像中:

cat > Dockerfile <<EOF
FROM alpine:latest
RUN rm /bin/uname
COPY uname /bin/
ENTRYPOINT sh;
WORKDIR /home
EOF  
Run Code Online (Sandbox Code Playgroud)

并建造它 docker build -t myimage -f Dockerfile .

当我运行图像时:

docker run -it --rm myimage  
Run Code Online (Sandbox Code Playgroud)

该文件存在,但是当我尝试运行它时,它写入它不存在:

/home # uname
sh: uname: not found
/home # ls -lia uname
ls: uname: No such file or directory
/home …
Run Code Online (Sandbox Code Playgroud)

container docker

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

Docker 如何运行 GUI?

我编写了一些 Java 桌面应用程序,并认为我可以使用 Docker 运行它们来了解容器。

我将 Java 应用程序放入带有 ubuntu 映像的 Docker 容器中。就在那时,我意识到我需要让 Docker 能够访问我的 DISPLAY 变量,以便 GUI 能够工作/访问我的计算机的 I/O。连接后,我可以运行 docker 容器并在计算机屏幕上看到 GUI 弹出。

这就是我开始感到困惑的地方。如果我在 VirtualBox 中运行桌面 GUI,我可以在虚拟机中看到 GUI;它在虚拟计算机上。然后有一些智能设备可以将虚拟机 I/O 连接到本地计算机的 I/O。这对我来说很有意义。

但是 Docker 如何将 GUI 返回到我的实际计算机上呢?当我运行容器时,我可以在我的实际计算机上看到 GUI(而不是在像 virtualbox 这样的虚拟机中)。但是 GUI 本身如何在主机上呈现呢?当我与主机共享 I/O 时,Docker 是否有权将 GUI 文件发送回主机以显示 GUI?或者当我使用 ubuntu 映像创建容器时,我基本上创建了一个虚拟机吗?

virtual-machine gui container docker

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

获取 Docker 容器内 Raspi 的 CPU 温度

我为我的 Raspberry Pi 4 构建了一个小型 ASP.NET Core 应用程序,它可以让我控制风扇(请参阅此处)。该应用程序部署为一个小型独立 Linux 应用程序,在我的 Raspi 裸机上运行。

为了测量温度,我调用vcgencmd measure_temp了 Raspi,它为我提供了实际温度。

由于各种原因,我更喜欢在 Docker 容器中运行此应用程序:

  • Linux 中不再需要手动注册服务,Docker 功能--restart-always可以处理这个问题。
  • 不再需要从 GitHub 下载最新版本、提取应用程序并将其标记为可执行文件。

但我不知道如何从容器内检索 Raspi 的温度。

我已经尝试将 Raspi 的目录映射到 Docker 容器并从内部调用/usr/bin/-但由于缺少依赖项而失败。 我已经在 Stack Overflow 上找到了一个答案,建议在 Raspi 上创建一个命名管道,然后从容器内使用该管道。但是,如果我必须设置诸如命名管道之类的东西,这就会消除容器的美感。/opt/vc/bin/vcgencmd

长话短说:有没有办法从 Docker 容器内获取 Raspi 当前的 CPU 温度?

谢谢!

container raspberry-pi docker

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

从 Linux 的角度来看,docker 容器是什么?

docker 容器是 docker daemon 所理解的概念。从 Linux 的角度来看,docker 容器是什么?

  1. 您可以停止、杀死和销毁容器。容器本身是一个过程吗?
  2. docker 容器到底是一个 cgroup 吗?或者可以通过cgroup识别?

    docker 容器是否正是在容器中运行的一组进程?

    如何从彼此中找出 cgroup 和容器(ID)?

谢谢。

container cgroups linux-kernel docker

-3
推荐指数
1
解决办法
150
查看次数