如何使用nvidia-docker在docker swarm

时间:2017-10-25 13:46:43

标签: docker nvidia-docker

如何使用nvidia-docker在docker操作的swarm模式下创建服务。我正在尝试在这个群体网络中训练一个张量流模型来进行分布式学习。我发现一种方法可能是在不同的机器上运行不同容器的群网络,并在每台机器上使用GPU进行distributed training。如果在群集模式下无法实现,是否有任何可能的方法来完成上述任务?

  

docker service create --name tensorflow --network overnet saikishor / tfm:test   azt0tczwkxaqpkh9yaea4laq1

     

由于未指定--detach = false,因此将在后台创建任务。

     

在将来的版本中, - default = false将成为默认

但是在docker service ls下,我有这个

  

ID NAME MODE REPLICAS图像端口

     

uf6jgp3tm6dp tensorflow复制0/1 saikishor / tfm:test

2 个答案:

答案 0 :(得分:0)

截至目前,nvidia-docker不支持docker swarm。所以,现在没有可能。我们需要创建一个外部网络将它们连接在一起。

答案 1 :(得分:0)

问问题是不可能的,但现在不是。

nvidia-docker2发布以来,支持新的docker容器运行时,通常命名为nvidia。 这使docker run --runtime nvidia ...可以像nvidia-docker run ...一样访问GPU。 此外,配置了dockerd选项--default-runtime nvidia之后,docker-compose,Docker Swarm和Kubernetes之类的工具也可以使用GPU。

nvidia-gpu-docker

安装

基于Debian的发行版

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
  sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update

基于RHEL的发行版

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | \
  sudo tee /etc/yum.repos.d/nvidia-docker.repo

配置

{
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    },
    "default-runtime": "nvidia",
    ...
}