标签: docker

Docker for Windows 在重新启动虚拟机后无响应

我已在使用 Hyper-V 的 Windows 10 计算机上安装了 Docker for Windows。安装的默认 VM 是 MobyLinuxVM。为了更改一些设置,我关闭并重新启动了虚拟机。但在那之后,Docker 就不再工作了。

在 Powershell 中:

PS C:\Windows\system32> docker info
Error response from daemon: Bad response from Docker engine
Run Code Online (Sandbox Code Playgroud)

在日志中:

[13:18:03.963][ApiProxy       ][Info   ] proxy >> GET /_ping
[13:18:03.963][ApiProxy       ][Info   ] Dial Hyper-V socket SOME-GUID
[13:18:03.969][ApiProxy       ][Info   ] Successfully dialed Hyper-V socket SOME-GUID
[13:18:03.973][ApiProxy       ][Info   ] error reading response from Docker:  HvSocket has already been closed
[13:18:03.973][ApiProxy       ][Info   ] proxy >> GET /v1.26/info
[13:18:03.973][ApiProxy       ][Info   ] Dial Hyper-V socket SOME-GUID
[13:18:03.974][ApiProxy …
Run Code Online (Sandbox Code Playgroud)

hyper-v virtual-machine docker windows-10 docker-for-windows

5
推荐指数
0
解决办法
1076
查看次数

DRI(直接渲染基础设施)需要哪些 Linux 功能?

背景:

我正在寻找创建一个可以运行 opengl 的 docker 映像。

为此,我按照此处找到的步骤进行操作,这非常有效。

问题在于,说明建议使用 dockerprivileged模式,该模式为 docker 容器提供所有Linux 功能。

我想替换privileged为运行 DRI 所需的确切功能,并且仅替换这些功能。

问题是我不知道它们是什么,也不知道有什么方法可以检索它们。

linux privileges docker

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

在 Docker 内对 Apache 使用 ksm_preload

我正在尝试在 Docker 内使用ksm_preload for Apache。问题是在 Docker 中运行时该库没有被映射。在外面它可以工作,我看到共享/易失性页面。我认为问题出在 apache 中的某个地方,因为在具有相同 LD_PRELOAD 参数的同一容器中运行的其他应用程序(如 apt)显示 KSM 中的活动。

运行 make install 后,我在 docker 容器内尝试了以下操作

LD_PRELOAD=/usr/local/share/ksm_preload/libksm_preload.so apache2ctl -k start -D FOREGROUND
Run Code Online (Sandbox Code Playgroud)

我还尝试设置/etc/apache2/envvars工作进程:

export LD_DEBUG=all
export LD_PRELOAD=/usr/local/share/ksm_preload/libksm_preload.so
Run Code Online (Sandbox Code Playgroud)

父进程获取映射的库,但子工作进程则不获取。

父进程的/proc/pid/map_files:

7f2e13aef000-7f2e13af1000 -> /usr/local/share/ksm_preload/libksm_preload.so
7f2e13af1000-7f2e13cf0000 -> /usr/local/share/ksm_preload/libksm_preload.so
7f2e13cf0000-7f2e13cf1000 -> /usr/local/share/ksm_preload/libksm_preload.so
Run Code Online (Sandbox Code Playgroud)

总是出现以下结果:

/sys/kernel/mm/ksm/pages_shared:0
/sys/kernel/mm/ksm/pages_sharing:0
/sys/kernel/mm/ksm/pages_to_scan:100
/sys/kernel/mm/ksm/pages_unshared:0
/sys/kernel/mm/ksm/pages_volatile:0
/sys/kernel/mm/ksm/run:1
Run Code Online (Sandbox Code Playgroud)

LD 调试输出相当长https://pastebin.com/KRvKHXxn

apache 有某种针对 LD_PRELOAD 的保护吗?

是否可能有另一个具有更高优先级的动态库覆盖符号?

也许相关:/sf/ask/936196831/ 尝试了解决方案UNSET_RTLD_DEEPBIND=1,没有变化

linux apache-http-server docker

5
推荐指数
0
解决办法
633
查看次数

mysql-server安装卡在docker中

在我的文件中,Dockerfile我有安装命令mysql-server

RUN apt-get install -y mysql-server
Run Code Online (Sandbox Code Playgroud)

当我输入 root 密码时出现问题。我按 Enter 键,但没有任何反应,安装被卡住了。

在此输入图像描述

linux mysql ubuntu docker

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

使用 docker-compose 在多个主机上构建 Docker 容器

我使用 docker-compose 运行一小群容器来支持应用程序。使用 Docker 的内部 DNS 解析器(例如db解析到数据库后端容器)是其中的关键。我使用使用创建的专用桥接网络docker network

我想知道是否有一种简单直接的方法,无需 Kubernetes 等官僚机构,即可利用 DNS 发现机制,同时将容器分散到多个物理服务器上。一种选择是简单地在另一台服务器上构建单独的 Docker 安装和专用网络,并让这些容器在启动时在我的 PowerDNS 服务器中更新自己的 DNS 条目,并且有一个现有的机制可以实现这一点。然而,我非常喜欢利用 Docker 的内部 DNS 发现。

任何指示将不胜感激!

linux dns container docker

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

WSL 上的 Docker 不会绑定挂载 $HOME

我最初在 Stack Overflow 上问过这个问题,但我认为超级用户可能更合适。

我在 WSL(Linux 的 Windows 子系统,Ubuntu 16.04)上使用 Docker 时遇到了最奇怪的情况。我试图将安装/home/username(或只是$HOME为了方便)绑定为容器中的卷,而不是在容器中查找我的主目录的内容,而是完全获得一些其他卷。

奇怪的是,每当我尝试绑定 mount$HOME/home/username. 如果我触摸一个新文件,它会出现在我安装到的所有其他容器中$HOME。所有其他绑定安装到任何其他目录都可以正常工作。

例如,这些都共享同一个神秘文件夹:

docker run -it --rm -v /home/username:/test alpine sh
docker run -it --rm -v $HOME:/test alpine sh
docker run -it --rm -v $HOME:/test -v $HOME:/test2 alpine sh
Run Code Online (Sandbox Code Playgroud)

当我执行 a 时,docker volume ls没有名为 的卷/home/username,因此排除了意外拥有同名的 docker 托管卷的情况。

我正在安装的这个神秘卷是什么,为什么 docker 没有$HOME正确安装我的目录?

docker windows-subsystem-for-linux

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

EC2 上的 Windows Server 2019 可以运行 WSL 2

我想在 EC2(Microsoft Windows Server 2019 Base - ami-0eaa025a752a23c5b)上创建一个可以同时运行 Windows 容器和 Linux 容器的虚拟机。我知道 WSL 2 可以支持 docker 容器并在 Windows 10 Build 18917 上运行。我不确定它是否可以在 Windows Server 2019 上运行。如果可以,我应该使用 Windows Server 2019 的哪个版本。任何帮助,将不胜感激。

linux windows-server amazon-ec2 docker windows-subsystem-for-linux

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

Docker 中的 Grafana 配置仪表板

如何保存 Grafana 容器的仪表板 YAML,以便在创建时加载?

docker-compose.yml:

  grafana:
    image: grafana/grafana
    container_name: grafana
    volumes:
      - ./grafana-datasource.yml:/etc/grafana/provisioning/datasources/datasource.yaml
      - ./dashboard.yml:/etc/grafana/provisioning/dashboards/dashboard.yaml
      - ./grafana/provisioning/dashboards/:/etc/grafana/provisioning/dashboards/
    ports:
      - "3000:3000"
    depends_on:
      - prometheus
Run Code Online (Sandbox Code Playgroud)

仪表板.yml:

apiVersion: 1

providers:
  # <string> an unique provider name
- name: 'a unique provider name'
  # <int> org id. will default to orgId 1 if not specified
  orgId: 1
  # <string, required> name of the dashboard folder. Required
  folder: ''
  # <string> folder UID. will be automatically generated if not specified
  folderUid: ''
  # <string, required> …
Run Code Online (Sandbox Code Playgroud)

docker grafana

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

无法在 Docker 映像中安装 Windows 功能 NET-Framework-Features

我正在尝试从使用 .NET 3.5 的本地构建环境中创建一个 docker 映像。我尝试启用该功能但收到错误。

这是我用于重现问题的最小化 docker 文件:

FROM mcr.microsoft.com/dotnet/framework/sdk
RUN powershell "Install-WindowsFeature -Name NET-Framework-Features -Verbose"
Run Code Online (Sandbox Code Playgroud)

这是输出:

Sending build context to Docker daemon  72.74MB
Step 1/2 : FROM mcr.microsoft.com/dotnet/framework/sdk
 ---> 88afad8be364
Step 2/2 : RUN powershell "Install-WindowsFeature -Name NET-Framework-Features -Verbose"
 ---> Running in 0a377584126e
VERBOSE: Installation started...
VERBOSE: Continue with installation?
VERBOSE: Prerequisite processing started...
VERBOSE: Prerequisite processing succeeded.
Install-WindowsFeature : The request to add or remove features on the
specified server failed.
Installation of one or more roles, …
Run Code Online (Sandbox Code Playgroud)

windows .net-3.5 .net-framework docker

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

拉取 Docker 镜像所需的域列表

我所在的网络的互联网访问权限有限,我需要提供一个域列表以允许提取 docker 映像。

首先,我认为https://registry-1.docker.io/就足够了,但尝试提取图像,似乎也是https://production.cloudflare.docker.com/必需的,所以问题是:是否有允许从公共 docker 注册表提取图像的所有域的列表?

proxy docker

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