docker - 无法在 Docker 容器 ubuntu :trusty 上安装主管

标签 docker ubuntu supervisord apt-get

我正在尝试在 Docker ubuntu:trusty 容器中安装主管。这是一个演示我的问题的小示例 Dockerfile:

FROM ubuntu:trusty
MAINTAINER someone <someone@somewhere.com>

# Get supervisor:
RUN apt-get update && apt-get install -y supervisor

当我尝试从这个 Dockerfile 构建一个镜像时,我得到了这个输出:

$ docker build -t example .
Sending build context to Docker daemon 71.17 kB
Step 0 : FROM ubuntu:trusty
 ---> 91e54dfb1179
Step 1 : MAINTAINER someone <someone@somewhere.com>
 ---> Running in fc8d787ecfd5
 ---> 0619f1a6c1f1
Removing intermediate container fc8d787ecfd5
Step 2 : RUN apt-get update && apt-get install -y supervisor
 ---> Running in 01285d3a1d4b
Ign http://archive.ubuntu.com trusty InRelease
Ign http://archive.ubuntu.com trusty-updates InRelease
Ign http://archive.ubuntu.com trusty-security InRelease
Hit http://archive.ubuntu.com trusty Release.gpg
Get:1 http://archive.ubuntu.com trusty-updates Release.gpg [933 B]
Get:2 http://archive.ubuntu.com trusty-security Release.gpg [933 B]
Get:3 http://archive.ubuntu.com trusty Release [11.9 kB]
Get:4 http://archive.ubuntu.com trusty-updates Release [63.5 kB]
Ign http://archive.ubuntu.com trusty Release
Get:5 http://archive.ubuntu.com trusty-security Release [63.5 kB]
Get:6 http://archive.ubuntu.com trusty/main Sources [1335 kB]
Get:7 http://archive.ubuntu.com trusty/restricted Sources [5335 B]
Get:8 http://archive.ubuntu.com trusty/universe Sources [7926 kB]
Ign http://archive.ubuntu.com trusty/main amd64 Packages/DiffIndex
Ign http://archive.ubuntu.com trusty/restricted amd64 Packages/DiffIndex
Get:9 http://archive.ubuntu.com trusty/universe amd64 Packages [7589 kB]
Get:10 http://archive.ubuntu.com trusty-updates/main Sources [294 kB]
Get:11 http://archive.ubuntu.com trusty-updates/restricted Sources [4521 B]
Get:12 http://archive.ubuntu.com trusty-updates/universe Sources [171 kB]
Get:13 http://archive.ubuntu.com trusty-updates/main amd64 Packages [779 kB]
Get:14 http://archive.ubuntu.com trusty-updates/restricted amd64 Packages [22.7 kB]
Get:15 http://archive.ubuntu.com trusty-updates/universe amd64 Packages [407 kB]
Get:16 http://archive.ubuntu.com trusty-security/main Sources [119 kB]
Get:17 http://archive.ubuntu.com trusty-security/restricted Sources [1874 B]
Get:18 http://archive.ubuntu.com trusty-security/universe Sources [34.8 kB]
Get:19 http://archive.ubuntu.com trusty-security/main amd64 Packages [433 kB]
Get:20 http://archive.ubuntu.com trusty-security/restricted amd64 Packages [14.8 kB]
Get:21 http://archive.ubuntu.com trusty-security/universe amd64 Packages [150 kB]
Get:22 http://archive.ubuntu.com trusty/main amd64 Packages [1743 kB]
Get:23 http://archive.ubuntu.com trusty/restricted amd64 Packages [16.0 kB]
Fetched 21.2 MB in 19s (1076 kB/s)
Reading package lists...
W: GPG error: http://archive.ubuntu.com trusty Release: The following signatures were invalid: BADSIG 40976EAF437D05B5 Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>
Reading package lists...
Building dependency tree...
Reading state information...
The following extra packages will be installed:
  libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python
  python-meld3 python-minimal python-pkg-resources python2.7 python2.7-minimal
Suggested packages:
  python-doc python-tk python-distribute python-distribute-doc python2.7-doc
  binutils binfmt-support
The following NEW packages will be installed:
  libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python
  python-meld3 python-minimal python-pkg-resources python2.7 python2.7-minimal
  supervisor
0 upgraded, 10 newly installed, 0 to remove and 12 not upgraded.
Need to get 4141 kB of archives.
After this operation, 17.9 MB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
  libpython-stdlib python-minimal python python-meld3 supervisor
E: There are problems and -y was used without --force-yes
The command '/bin/sh -c apt-get update && apt-get install -y supervisor' returned a non-zero code: 100

那里似乎存在一些身份验证问题。有时我会收到其他错误消息。例如,在第二次运行中,这是我得到的输出:

$ docker build -t example .
Sending build context to Docker daemon 71.17 kB
Step 0 : FROM ubuntu:trusty
 ---> 91e54dfb1179
Step 1 : MAINTAINER someone <someone@somewhere.com>
 ---> Using cache
 ---> 0619f1a6c1f1
Step 2 : RUN apt-get update && apt-get install -y supervisor
 ---> Running in 0d4362e9e578
Ign http://archive.ubuntu.com trusty InRelease
Ign http://archive.ubuntu.com trusty-updates InRelease
Ign http://archive.ubuntu.com trusty-security InRelease
Get:1 http://archive.ubuntu.com trusty Release.gpg [72 B]
Get:2 http://archive.ubuntu.com trusty-updates Release.gpg [933 B]
Get:3 http://archive.ubuntu.com trusty-security Release.gpg [933 B]
Get:4 http://archive.ubuntu.com trusty Release [11.9 kB]
Get:5 http://archive.ubuntu.com trusty-updates Release [63.5 kB]
Err http://archive.ubuntu.com trusty Release

Get:6 http://archive.ubuntu.com trusty-security Release [63.5 kB]
Get:7 http://archive.ubuntu.com trusty-updates/main Sources [294 kB]
Get:8 http://archive.ubuntu.com trusty-updates/restricted Sources [4521 B]
Get:9 http://archive.ubuntu.com trusty-updates/universe Sources [171 kB]
Get:10 http://archive.ubuntu.com trusty-updates/main amd64 Packages [779 kB]
Get:11 http://archive.ubuntu.com trusty-updates/restricted amd64 Packages [22.7 kB]
Get:12 http://archive.ubuntu.com trusty-updates/universe amd64 Packages [407 kB]
Get:13 http://archive.ubuntu.com trusty-security/main Sources [119 kB]
Get:14 http://archive.ubuntu.com trusty-security/restricted Sources [1874 B]
Get:15 http://archive.ubuntu.com trusty-security/universe Sources [34.8 kB]
Get:16 http://archive.ubuntu.com trusty-security/main amd64 Packages [433 kB]
Get:17 http://archive.ubuntu.com trusty-security/restricted amd64 Packages [14.8 kB]
Get:18 http://archive.ubuntu.com trusty-security/universe amd64 Packages [150 kB]
Fetched 2571 kB in 7s (347 kB/s)
Reading package lists...
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://archive.ubuntu.com trusty Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 16126D3A3E5C1192

W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty/Release  

W: Some index files failed to download. They have been ignored, or old ones used instead.
Reading package lists...
Building dependency tree...
Reading state information...
Package supervisor is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'supervisor' has no installation candidate
The command '/bin/sh -c apt-get update && apt-get install -y supervisor' returned a non-zero code: 100

输出不同可能是由于 Docker 的缓存特性。

我认为在 Docker 容器上安装东西应该使用 ubuntu:trusty 开箱即用。我在这里缺少什么?

最佳答案

对于这种错误

GPG error: archive.ubuntu.com 
trusty Release: The following signatures couldn't be verified because 
the public key is not available: NO_PUBKEY 16126D3A3E5C1192

选中“How to fix GPG in updater”和“How do I fix the GPG error “NO_PUBKEY”?

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 16126D3A3E5C1192 && \
sudo apt-get update

关于docker - 无法在 Docker 容器 ubuntu :trusty 上安装主管,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32716298/

相关文章:

c# - 如何让 docker 工具箱与 .net core 2.0 项目一起使用

linux - 使用 'git remote add origin' 创建一个全局远程而不是一个本地到当前目录/repo

cron - 使用主管作为 CRON

linux - 使用编程方式确定当前操作系统

php - sh : virtuemart_user_id: command not found

python - Supervisor - 无法以 root 或用户身份启动 supervisorctl(用户在配置中设置)

laravel - 使用 Monit 监控 Laravel 队列工作线程

docker - 为什么Docker声称它的容器是可移植的?

docker - 忽略 .dockerignore 中的所有 .git 文件夹

docker - 如何配置docker-compose卷访问授权