标签: docker

docker.io 容器上的 GPU 访问

我有一个应用程序,它只能在具有完整 GPU 访问/硬件 OpenGL 的 X11 环境中运行。

我可以在 Hetzner 服务器上运行它,因为他们的机器有不错的 GPU。安装了 Ubuntu 桌面并运行了 x11vnc。

我正在考虑将所有桌面内容放在 docker 容器中并在主机上安装 ubuntu 服务器。有没有办法让 docker 容器完全访问 GPU?

谢谢!莱昂蒂

ubuntu docker

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

Systemd 服务从 Docker 的动态端口值开始

使用 CoreOS、Docker 和 systemd 来管理我的服务,我想正确执行服务发现。由于 CoreOS 使用 etcd(分布式键值),因此有一种非常方便的方法可以做到这一点。在 systemd 的 ExecStartPost 上,我可以毫无问题地将启动的服务插入到 etcd 中。我的用例需要这样的东西:

ExecStartPost=/usr/bin/etcdctl set /services/myServiceName '{ \"host\": \"%H\", \"port\": 5555 }'
Run Code Online (Sandbox Code Playgroud)

这就像一个魅力。

但这就是我的想法出现的地方。如果我只是运行docker run -p 5555,Docker 有能力随机分配一个端口,这很棒,因为我不必在 *.service 文件中静态设置它,而且我可以在同一主机上运行多个实例。如果我可以获得随机分配的端口并插入而不是静态的5555怎么办?

原来我可以使用该docker port命令来获取端口,并通过一些格式我们可以只获取端口

$(echo $(/usr/bin/docker port my-container-name 5555) | cut -d':' -f2)
Run Code Online (Sandbox Code Playgroud)

如果我这样设置(使用 bash),它会起作用:

/usr/bin/etcdctl set /services/myServiceName '{ \"host\": \"%H\", \"port\": '$(echo $(/usr/bin/docker port my-container-name 5555) | cut -d':' -f2)' }'
Run Code Online (Sandbox Code Playgroud)

但是使用 systemd 我就是无法让它工作。这是我正在使用的代码:

ExecStartPost=/usr/bin/etcdctl set /services/myServiceName '{ \"host\": \"%H\", \"port\": '$(echo $(/usr/bin/docker port …
Run Code Online (Sandbox Code Playgroud)

systemd docker

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

Docker + nginx + Php-FPM 502 错误网关

我正在尝试通过 docker 安装 php-fpm 和 nginx,但我遇到了 nginx 问题,它返回 502 Bad gateway 错误,但是当我尝试继续处理任何 HTML 文件时,只能正确显示。我必须对 php 文件做什么才能在这个系统上正常工作?

Nginx 配置站点:

server {
        listen      80;
        server_name  api.local.dev;
        access_log  /var/log/nginx/api.access.log;
        error_log   /var/log/nginx/api.error.log;
        root        /www;
        charset     utf-8;
        index  index.php index.html index.htm;
        location / {
                index  index.php index.html index.htm;
        }

        location ~ \.php$ {
                include fastcgi_params;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
}
Run Code Online (Sandbox Code Playgroud)

文件

FROM ubuntu:13.10

# Keep upstart from complaining
RUN dpkg-divert --local --rename --add /sbin/initctl
RUN ln -sf /bin/true /sbin/initctl

# Let …
Run Code Online (Sandbox Code Playgroud)

nginx php-fpm docker

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

是否可以在 MacOS 上执行 Linux 网络命名空间 (netns)?

上下文 - 我正在尝试在 MacOSX 上运行 docker 集群。

运行 docker 的安装过程的一部分是安装pipework。

管道依赖 /var/run/netns

我的问题是:Mac OS X 是否有等效的 netns?

linux mac-osx linux-networking network-namespace docker

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

haproxy 将 uri 转发到另一台服务器的根目录

我使用 HAPROXY 容器作为虚拟 HPC 集群的入口点。根据前缀,请求被转发到不同的容器。

:80/foswiki/ -> :80/foswiki/
:80/kibana/ -> :80/kibana/
:80/graphite-api/ -> :80/graphite-api/
...

我使用的配置非常简单:

前端http-in
    绑定 *:80
    acl uri_foswiki path_beg /foswiki
    use_backend srv_foswiki 如果 uri_foswiki
    # GitLab
    default_backend srv_gitlab

后端 srv_foswiki
    平衡循环
    cookie SERVERID 插入
    选项 httpclose
    选项转发
    服务器 foswiki 172.17.0.3:80 cookie

问题是有网络服务器直接以 root 身份为网站提供服务,没有前缀。'Graphite-web',例如或 gitlab 图像。

我尝试削减前缀并进一步转发它,但我真正想要的是 haproxy 将前缀保留在路径中,并且它对后端服务器是透明的。如果我点击“gitlab_server:80/dashboard/”,它应该显示为“frontend_ip:80/gitlab/dashboard”。

后端 srv_gitlab
    平衡循环
    #cookie SERVERID 插入
    模式http
    reqrep ^([^\ ]*)\ /gitlab/(.*) \1\ /\2
    平衡循环
    选项转发
    服务器 gitlab 172.17.0.18:80 cookie

我不认为这是一件很难的事情,但在我看来,我的谷歌技能有点残废。每次我最终都会重写不保留前缀的规则。

任何人?基督教

编辑:用户无法访问内部 IP 地址...

haproxy docker

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

在 docker 中运行一个 mpi 应用程序

我正在使用 docker,我希望能够在其中启动一个 mpi 应用程序。

我正在使用 ubuntu:latest 作为基本映像,并且我已经安装了编译我的程序并将其与 mpi 链接所需的工具。

当我使用 mpirun 启动程序时,我收到以下警告:

[c1dab84c3fac:10417] [[INVALID],INVALID] ORTE_ERROR_LOG: Not found in file ess_hnp_module.c at line 170
--------------------------------------------------------------------------
It looks like orte_init failed for some reason; your parallel process is
likely to abort.  There are many reasons that a parallel process can
fail during orte_init; some of which are due to configuration or
environment problems.  This failure appears to be an internal failure;
here's some additional information (which may only be relevant to an …
Run Code Online (Sandbox Code Playgroud)

docker

5
推荐指数
2
解决办法
4223
查看次数

如何在正在运行的 Docker 容器中重新加载环境变量文件

我有一个正在运行的容器,其中安装了一个环境变量文件,如下所示:

docker run -d --env-file ./env.list my/image一切正常,现在我已经更新了我的./env.list文件,并希望反映更新的文件。尝试重新启动容器,但没有用。

environment-variables docker

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

自动启动docker容器的链接依赖

我在docker 容器中运行gitlab,它将其依赖项(MySQL、Redis、Mailserver)很好地分离到单独的 docker 容器中。运行它们不是问题,我以相反的顺序启动它们:首先是依赖项,而不是 gitlab 本身。

有时我必须重新启动 docker 主机。目前我通过 ssh 进入 docker 主机并手动重启容器。有没有更好的方法呢?就像只是告诉一些服务启动 gitlab 容器,然后它会先启动它的依赖项?我知道我可以为每个 docker 容器创建单独的 init 脚本,但这不是我想要的。

startup dependencies docker

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

通过 RDMA 网络设备传递到 docker 容器

我想将 infiniband 传递到 docker 容器,以便我可以通过 ipoib 运行一些高性能应用程序并使用 rdma。

目前,我正在使用 xen 虚拟机执行此操作。现在我正在考虑使用 CoreOS 和 docker 作为重量更轻且更易于管理的替代方案。

我有一个 IPoIB 设备 ib0,分配给它的静态 IP 为 10.10.10.10。我已经设法通过以下方式将其暴露在 docker 容器中:

docker run --net=host --device=/dev/infiniband/uverbs0 --device=/dev/infiniband/rdma_cm -t -i ubuntu:14.04 /bin/bash

太好了,这有效。ib0 在 docker 容器内可用。

现在假设我有一个双端口 HCA。在主机上,它们显示为 ib0 和 ib1,并分配了两个 ip。10.10.10.10/ib0 和 10.10.10.11/ib1

现在我想将 ib0 传递给第一个容器,将 ib1 传递给第二个。由于 --net=host 选项,使用上述方法两者都会出现在两个容器中。但是,不指定它意味着设备根本不会出现。

另一种情况是我有很多机器使用 SR-IOV 将 infiniband 设备传递到 xen 虚拟机。我如何才能将虚拟功能 infiniband 设备传递给 docker 容器并使其出现?

注意:管道在这种情况下不起作用,但如果我更好地理解它,它可能会被黑客入侵以做我想做的事。我只是不太明白它在做什么......还没有。

linux infiniband linux-networking docker

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

Dockerfile 安全 apache httpd 服务器与 SSL 认证文件相关的关注点分离

问题:

在非 docker 解决方案中,SSL 证书可以位于 /etc/pki/CA/.... 并在 /etc/httpd/conf.d/*.conf 文件中引用这些证书。这些 SSL 证书必须如何在 docker 镜像中管理/放置/使用以用于安全的 apache httpd 服务器而不是 docker 镜像的一部分?

目标:

使用提供的 SSL 证书为安全的 apache httpd 服务器创建 docker 映像。

如何解决这个问题的想法:

Docker 卷可以通过使用 将证书从主机挂载到映像来解决它docker run -v /HOST/SSL/PATH:/CONTAINER/SSL/PATH,然后可以从映像中引用它。

这是要走的路,还是可以用另一种方式解决这个问题?

linux https disk-volume ssl-certificate docker

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