Ubuntu Docker 이미지 내에서 wget을 실행하는 방법은 무엇입니까?


86

다음과 같이 Ubuntu 컨테이너 내부에 Debian 패키지를 다운로드하려고합니다.

sudo docker run ubuntu:14.04 wget https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.8.2-omnibus.1-1_amd64.deb

나는 얻다

exec: "wget": executable file not found in $PATH

wget다음과 같이 이미 docker와 함께 설치 했습니다.

run ubuntu:14.04 apt-get install wget

파일을 어떻게 다운로드 할 수 있습니까?

답변:


124

먼저 설치해야합니다. 새 Dockerfile를 만들고 그 안에 wget을 설치합니다.

FROM ubuntu:14.04
RUN  apt-get update \
  && apt-get install -y wget \
  && rm -rf /var/lib/apt/lists/*

그런 다음 해당 이미지를 빌드하십시오.

docker build -t my-ubuntu .

마지막으로 실행하십시오.

docker run my-ubuntu wget https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.8.2-omnibus.1-1_amd64.deb

12
@ Nachbar90 각 docker run명령은 격리 된 컨테이너에서 실행되므로 첫 번째 컨테이너에 설치 한 항목은 두 번째 컨테이너에 표시되지 않습니다. 컨테이너가 무엇이며 어떻게 작동하는지 좀 더 읽어 봐야 할 것입니다.
Thomas Orozco

1
마지막 실행의 결과 파일을 로컬 파일 시스템으로 어떻게 전달할 수 있습니까?
hhh

잘 작동하지만 패키지 버전에 대해 묻고 싶었습니다. 그렇지 않으면 docker lint를 전달하지 않습니다.
ishmam999

33

최근에 apt install wget아무것도 찾지 못하는 곳 에서이 문제가 발생했습니다 . 그것이 apt update결코 실행되지 않은 것으로 밝혀졌습니다 .

apt update
apt install wget

동료와 논의한 후 우리는 apt update도커 이미지에서 시간과 공간을 절약하기 위해 실행되지 않을 가능성이 높은 것을 생각했습니다 .


단순히 docker pulll ubuntu를 수행하여 docker ubuntu 컨테이너를 설치 한 후 나중에 bash에 "적절한 찾을 수없는 문제"가 발생했습니다. 나를 위해 일한이 .thanks
VERITAS

5

로컬 Dockerfile없이 직접 우분투 컨테이너를 실행하는 경우 컨테이너에 ssh하고 su다음 을 입력하여 루트 제어를 활성화 할 수 있습니다.apt-get install -y wget

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.