簡體   English   中英

python docker如何將目錄從主機掛載到容器

[英]python docker how to mount the directory from host to container

有人可以分享一些展示如何安裝目錄的py api示例嗎? 我嘗試過這種方法,但看不到它的作用

dockerClient = docker.from_env()
dockerClient.containers.run('image', 'ls -ltr', volumes={os.getcwd(): {'bind': '/tmp/', 'mode': 'rw'}})

通過獲取容器對象

根據以下內容更改代碼:

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 param傳遞為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 ..."])

文檔:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM