首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Docker:尝试在docker中运行docker时没有这样的文件或目录

Docker:尝试在docker中运行docker时没有这样的文件或目录
EN

Stack Overflow用户
提问于 2018-02-01 03:40:51
回答 2查看 1.2K关注 0票数 0

docker二进制文件在docker中不可用吗?如果是这样,我如何在docker中调用它呢?

app.py

代码语言:javascript
运行
复制
import subprocess
cmd_payload = ['docker']
subprocess.Popen(cmd_payload, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

Dockerfile

代码语言:javascript
运行
复制
FROM python:2.7-slim
VOLUME /data
WORKDIR /data
ADD . /data
CMD ["python", "app.py"]

然后,运行

代码语言:javascript
运行
复制
docker build -t app .
docker run app

OUTOUT

代码语言:javascript
运行
复制
[Errno 2] No such file or directory

编辑:如果我更改

代码语言:javascript
运行
复制
cmd_payload = ['docker'] 

代码语言:javascript
运行
复制
cmd_payload = ['echo']

它不会抛出错误。我想运行docker可执行文件。我怎么能这么做呢?

EN

回答 2

Stack Overflow用户

发布于 2018-02-01 03:57:09

如果要在容器内运行docker,最简单方法是按卷共享docker守护进程,使用以下命令重新运行您的docker容器:

docker run -it -v /var/run/docker.sock:/var/run/docker.sock:ro -v /usr/bin/docker:/usr/bin/docker:ro app

此外,您必须将库添加到Dockerfile

代码语言:javascript
运行
复制
FROM python:2.7-slim
RUN apt-get update && apt-get install -y libltdl7 && rm -rf /var/lib/apt/lists/*
VOLUME /data
WORKDIR /data
ADD . /data
CMD ["python", "app.py"]
票数 0
EN

Stack Overflow用户

发布于 2018-02-07 04:59:50

子进程可以通过添加shell=True来运行docker可执行文件

代码语言:javascript
运行
复制
cmd_payload = 'docker'
subprocess.Popen(cmd_payload, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)

不确定如果不在shell下调用,为什么它找不到它

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48550191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档