Ответ 1
curl: команда не найдена
это большая подсказка, вы должны установить его с помощью:
apt-get update; apt-get install curl
Я создал контейнер докеров из моего хоста OS X VM. Я создал его с помощью команды run и создал контейнер, основанный на ubuntu:xenial
изображении с док-станции.
Теперь я подключен к своему контейнеру после его создания и входа в систему под именем root и в командной строке внутри моего контейнера.
Я попытался установить homebrew, и по какой-то причине я не могу запустить команду для установки Homebrew:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
когда я запускаю, я получаю bash:
curl: команда не найдена
Не знаю, почему я не могу использовать завиток внутри контейнера.
curl: команда не найдена
это большая подсказка, вы должны установить его с помощью:
apt-get update; apt-get install curl
Эта проблема возникла при использовании команды CURL внутри моего Dockerfile. Как указал Жиль, мы должны сначала установить curl. Это команды, которые будут добавлены в 'Dockerfile'.
FROM ubuntu:16.04
# Install prerequisites
RUN apt-get update && apt-get install -y \
curl
CMD /bin/bash
Потому что в образе нет кэша пакетов, вам нужно запустить:
apt-get -qq update
перед установкой пакетов, и если ваша команда находится в Dockerfile, вам потребуется:
apt-get -qq -y install curl
После этого установите ZSH и GIT Core.
apt-get install zsh
apt-get install git-core
Заставить zsh работать в ubuntu странно, поскольку sh не понимает исходную команду. Итак, вы делаете это, чтобы установить Zsh
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | zsh
а затем вы измените свою оболочку на Zsh
chsh -s which zsh
затем перезагружается
sudo shutdown -r 0 Эта проблема подробно объясняется в этом выпуске.
Поэтому я добавил curl ПОСЛЕ того, как мой докер-контейнер работал.
(Это было для отладки контейнера... мне не нужно было постоянное добавление)
Я запустил свой образ
docker run -d -p 8899:8080 my-image:latest
(вышеизложенное делает мое "приложение" доступным на моей машине через порт 8899) (не имеет значения для этого вопроса)
Затем я перечислил и создал терминал в работающий контейнер.
docker ps
docker exec -it my-container-id-here /bin/sh
(если приведенная выше команда "exec" не работает, проверьте эту статью SOF Ошибка: не удается запустить контейнер: stat/bin/sh: нет такого файла или каталога ")
потом я побежал
APK
просто чтобы доказать это существовало в работающем контейнере
потом я побежал
apk add curl
и получил ниже
apk add curl
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
(1/5) Installing ca-certificates (20171114-r3)
(2/5) Installing nghttp2-libs (1.32.0-r0)
(3/5) Installing libssh2 (1.8.0-r3)
(4/5) Installing libcurl (7.61.1-r1)
(5/5) Installing curl (7.61.1-r1)
Executing busybox-1.28.4-r2.trigger
Executing ca-certificates-20171114-r3.trigger
OK: 18 MiB in 35 packages
тогда я побежал керл!
/ # curl
curl: try 'curl --help' or 'curl --manual' for more information
/ #
Обратите внимание, что для того, чтобы "вылезти" из просверленного окна терминала, мне пришлось открыть новое окно терминала и остановить работающий контейнер
docker ps
docker stop my-container-id-here
Если вы используете альпийское изображение, вы должны
RUN
... \
apk add --no-cache curl \
curl ...
...