python docker如何将目录从主机挂载到容器

时间:2019-02-14 10:26:49

标签: python python-2.7 docker dockerpy

有人可以分享一些展示如何安装目录的py api示例吗? 我尝试过这种方法,但看不到它的作用

@Entity
data class Site() {

  constructor(name: String, url: String): this() {
     this.name = name
     this.url = url
  }

    var name: String = "",
    var url: String = "",
    @PrimaryKey(autoGenerate = true) var id: Long = 0
}

1 个答案:

答案 0 :(得分:2)

通过获取容器对象

根据以下内容更改代码:

import os
import docker

client = docker.from_env()

container = client.containers.run('ubuntu:latest', 'ls -ltr /tmp', volumes={os.getcwd(): {'bind': '/tmp/', 'mode': 'rw'}}, detach=True)
print(container.logs()) 

# => b'total 4\n-rw-r--r-- 1 1000 1000 215 Feb 14 12:07 main.py\n'

在这里,容器对象是关键。要获得它,您必须将detach参数传递为True

然后它可以打印出已执行命令的结果。

通过设置流

获取输出的另一种方法是将stream参数设置为True,该参数返回日志生成器而不是字符串。如果detach为true,则将其忽略。

lines = client.containers.run('ubuntu:latest', 'ls -la /', volumes={os.getcwd(): {'bind': '/tmp/', 'mode': 'rw'}}, stream=True)                                                                         

for line in lines:                                                                                  
    print(line)

docker-py是docker引擎api的包装。因此,一切都在容器内执行,并且执行结果可通过REST获得。

通过使用子进程

如果要执行某些操作并即时获取其输出,可以使用subprocess模块。

import subprocess

subprocess.run(["docker run ..."])

文档: