Як запустити wget всередині образу Ubuntu Docker?


86

Я намагаюся завантажити пакет Debian всередині контейнера Ubuntu наступним чином:

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докер наступним чином:

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

Це чудово працює, але я хотів запитати про версію пакета. В іншому випадку він не пропускає штекер докера.
ishmam999

33

У мене була ця проблема нещодавно, де я apt install wgetнічого не знаходжу. Як виявляється, apt updateніколи не бігали.

apt update
apt install wget

Після обговорення цього питання з колегою ми поміркували, що apt update, ймовірно, не буде запущено, щоб заощадити як час, так і простір на зображенні докера.


встановив контейнер docker ubuntu, просто зробивши docker pulll ubuntu, а пізніше у bash, отримав "apt not found problem". Це спрацювало для мене. Дякую
veritas

5

Якщо ви запускаєте контейнер ubuntu безпосередньо без локального файлу Docker, ви можете ssh в контейнер і ввімкнути контроль root, ввівши suтодіapt-get install -y wget

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.