도커에 Ubuntu 14.04 이미지를 설치했습니다. 그 후 우분투 이미지 안에 패키지를 설치하려고 할 때 패키지 오류를 찾을 수 없습니다.
apt-get install curl
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package curl
이 오류를 해결하는 방법?
답변
이미지에 패키지 캐시가 없기 때문에 다음을 실행해야합니다.
apt-get update
패키지를 설치하기 전에 명령이 Dockerfile에 있으면 다음이 필요합니다.
apt-get -y install curl
명령의 표준 출력을 억제하려면을 사용하십시오 -qq
. 예 :
apt-get -qq -y install curl
답변
5 월 의 문서 에서2017 년 2018 년 2019 년 2020
항상 결합
RUN apt-get update
과apt-get install
같은에서
RUN
, 예를 들어, 문
RUN apt-get update && apt-get install -y package-bar
(…)
명령문
apt-get update
에서 단독으로 사용RUN
하면 캐싱 문제가 발생하고 후속apt-get install
지시 사항이 실패합니다.(…)
를 사용
RUN apt-get update && apt-get install -y
하면 Dockerfile이 추가 코딩이나 수동 개입없이 최신 패키지 버전을 설치합니다. 이 기술을 “캐시 버스 팅”이라고합니다.
답변
Dockerfile에 다음 명령을 추가하십시오.
RUN apt-get update
답변
Dockerfile에 구문 오류가 없어야이 오류가 발생할 수 있습니다. 올바른 예는 다음과 같습니다.
RUN apt-get update \
&& apt-get -y install curl \
another-package
구문 오류를 수정하고 추가 apt-get update
하여 문제를 해결했습니다.
답변
“apt-get update”가 실행될 때 / tmp에 로컬 볼륨을 마운트하면 권한 문제가 발생할 수 있으며, 이로 인해 패키지 캐시가 채워지지 않습니다. 바라건대, 이것은 대부분의 사람들이하는 일이 아니지만이 문제가 발생하면 찾아야 할 다른 것입니다.
답변
우분투에서 패키지 목록을 업데이트해야합니다 :
$ sudo apt-get update
$ sudo apt-get install <package_name>