Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在docker python上使用apt get失败:2.7.12-wheezy图像_Docker - Fatal编程技术网

在docker python上使用apt get失败:2.7.12-wheezy图像

在docker python上使用apt get失败:2.7.12-wheezy图像,docker,Docker,我正在尝试使用python映像来运行python脚本,但是,我还需要对同一映像进行查看。所以我尝试先安装gawk。(为什么要gawk?默认情况下,机器上的mawk版本没有我需要的选项。) 我收到错误“E:找不到package gawk”,当我在谷歌上搜索时,它说我需要更新/etc/apt/sources.list,但我也无法做到这一点。(尝试了echo'>/etc/apt/sources.list,但没有返回这样的文件。) 以下是我的跑步记录: $ docker run -w $WORKSPAC

我正在尝试使用python映像来运行python脚本,但是,我还需要对同一映像进行查看。所以我尝试先安装gawk。(为什么要gawk?默认情况下,机器上的mawk版本没有我需要的选项。)

我收到错误“E:找不到package gawk”,当我在谷歌上搜索时,它说我需要更新
/etc/apt/sources.list
,但我也无法做到这一点。(尝试了
echo'>/etc/apt/sources.list,但没有返回这样的文件。)

以下是我的跑步记录:

$ docker run -w $WORKSPACE -v $WORKSPACE:$WORKSPACE python:2.7.12-wheezy apt-
get install gawk
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package gawk
这不是网络问题,我可以运行更新和wget等

$ docker run -w $WORKSPACE -v $WORKSPACE:$WORKSPACE python:2.7.12-wheezy apt-get update 
Get:1 http://security.debian.org wheezy/updates Release.gpg [1554 B]
Get:2 http://security.debian.org wheezy/updates Release [39.0 kB]
Get:3 http://deb.debian.org wheezy Release.gpg [2373 B]
Get:4 http://security.debian.org wheezy/updates/main amd64 Packages [565 kB]
Get:5 http://deb.debian.org wheezy-updates Release.gpg [1554 B]
Get:6 http://deb.debian.org wheezy Release [191 kB]
Get:7 http://deb.debian.org wheezy-updates Release [155 kB]
Get:8 http://deb.debian.org wheezy/main amd64 Packages [7634 kB]
Get:9 http://deb.debian.org wheezy-updates/main amd64 Packages [7481 B]
Fetched 8597 kB in 14s (584 kB/s)
Reading package lists...
在交互模式下,它似乎可以正常工作:

$ docker run -it python:2.7.12-wheezy bash
root@0d7daa6b998e:/# apt-get update
... edited ..         
Reading package lists... Done
root@0d7daa6b998e:/# apt-get install gawk
Reading package lists... Done
Building dependency tree       
Reading state information... Done
... edited ...
Fetched 1001 kB in 2s (444 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
... edited output down...
Setting up gawk (1:4.0.1+dfsg-2.1) ...

您的错误似乎是从以下评论添加到apt源中:

(尝试了echo“”>>/etc/apt/sources.list,但未返回此类文件。)

如果您这样运行:

docker run some-image echo '<src>'>>/etc/apt/sources.list

您的错误似乎是从以下评论添加到apt源中:

(尝试了echo“”>>/etc/apt/sources.list,但未返回此类文件。)

如果您这样运行:

docker run some-image echo '<src>'>>/etc/apt/sources.list

看起来您正试图在一个单独的容器中运行每个命令(每次执行
docker run…
),因此本质上您正在启动一个容器(例如
a
)并更新apt,然后运行一个全新的容器(例如
B
)并执行
apt get install
)<代码>B
不了解
A
。答案是基于您想要的原始图像创建一个新的Dockerfile,附加命令为
RUN
说明,例如:

FROM python:2.7.12-wheezy
RUN \
     apt-get update && apt-get install \
         gawk && \
     apt-get clean && \
     rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

然后做
docker构建-t我的新wheezy base。
并将其用作你的新映像(
来自我的新wheezy base
等…。

看起来你试图在一个单独的容器中运行每个命令(每次你运行
docker…
),所以本质上你是在启动一个容器(例如
a
)更新apt,然后运行一个全新的容器(例如
B
)并执行
apt get install
<代码>B不了解
A
。答案是基于您想要的原始图像创建一个新的Dockerfile,附加命令为
RUN
说明,例如:

FROM python:2.7.12-wheezy
RUN \
     apt-get update && apt-get install \
         gawk && \
     apt-get clean && \
     rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

然后做
docker构建-t我的新哮鸣音基地。
并将其用作你的新图像(
来自我的新哮鸣音基地
等…。

你是先运行
更新的吗?如果这个文件不存在,你能创建它吗?这个文件确实存在,我可以运行更新。这里有一些不完整的故事,所以只需要获取上下文。你知道你在运行完全不同的容器,对吗?如果您在一个容器shell中完成所有这些操作(使用
docker run-it-w/test python:2.7.12-wheezy bash
),那会怎么样?因为您每次都在创建新的容器。只有在交互式的容器中,您才能在一个容器中完成所有操作。如果您想运行几个步骤(更新、回显、安装等),最好使用python:2.7.12-wheezy作为基础构建Dockerfile。您是否先运行了
update
?如果这个文件不存在,你能创建它吗?这个文件确实存在,我可以运行更新。这里有一些不完整的故事,所以只需要获取上下文。你知道你在运行完全不同的容器,对吗?如果您在一个容器shell中完成所有这些操作(使用
docker run-it-w/test python:2.7.12-wheezy bash
),那会怎么样?因为您每次都在创建新的容器。只有在交互式的容器中,您才能在一个容器中完成所有操作。如果您想运行几个步骤(更新、回显、安装等),最好使用python:2.7.12-wheezy作为基础构建Dockerfile。这很有帮助。然而,现在我发现它在交互方面工作得很好(根据johnharris85的评论,我认为我不需要添加任何内容,我只需要运行更新然后安装。这很有帮助。然而,现在我发现它在交互方面工作得很好(根据johnharris85的评论,我不认为我需要添加任何内容,我只需要运行更新,然后安装。