我正在尝试在基于 alpine 的 docker 映像中安装软件包。主机系统为CentOS系统,系统版本:CentOS Linux release 7.6.1810 (Core)。
这就是我所做的:
# docker run -td alpine:3.9
abbd2da62ed51047de063ef06e2422ae22ff77788fd70a626ad3a6b85856a3af.
# docker exec -it abbd2
/ # apk add bash
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
fetch http://dl-
cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
(1/5) Installing ncurses-terminfo-base (6.1_p20190105-r0)
(2/5) Installing ncurses-terminfo (6.1_p20190105-r0)
(3/5) Installing ncurses-libs (6.1_p20190105-r0)
(4/5) Installing readline (7.0.003-r1)
ERROR: readline-7.0.003-r1: Permission denied
(5/5) Installing bash (4.4.19-r1)
ERROR: bash-4.4.19-r1: Permission denied
2 errors; 13 MiB in 17 packages
这对应于这样的 Dockerfile:
FROM alpine:3.9
RUN apk add bash
为什么我在尝试安装软件包时会出现权限错误(此处以 bash 为例)?
我怎样才能得到要安装的包?
答案1
被代理阻止
事实证明,问题是我们的代理不允许从dl-cdn.alpinelinux.org
.
alpine 给出的错误消息可以更清楚,但无论如何:允许从该 URL 下载使得 apk 添加运行顺利。