[docker] docker Ubuntu 이미지 안에 패키지를 설치할 수 없습니다

도커에 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 updateapt-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>


답변