도커 컨테이너 내에서 Curl 명령을 실행할 수 없음
OS X VM Docker 호스트에서 Docker 컨테이너를 생성했습니다.run 명령어를 사용하여 생성하고 다음을 기반으로 컨테이너를 생성했습니다.ubuntu:xenial이미지 오프 도커 허브.
이제 컨테이너가 루트로 생성되고 로그인된 후 컨테이너 내부의 명령 프롬프트에 연결됩니다.
홈브루를 설치하려고 했는데 어떤 이유로 홈브루를 설치하는 명령을 실행할 수 없습니다.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
내가 달릴 때 나는 충격을 받습니다:
curl: 명령을 찾을 수 없습니다.
용기 안에서 컬을 사용할 수 없는 이유를 잘 모르겠습니다.
curl: 명령을 찾을 수 없습니다.
중요한 힌트입니다. 다음과 함께 설치해야 합니다.
apt-get -y update; apt-get -y install curl
도커 파일 내에서 CURL 명령을 사용하는 동안 이와 같은 문제가 발생했습니다.Gilles가 지적했듯이, 우리는 먼저 curl을 설치해야 합니다.다음은 '도커 파일'에 추가할 명령입니다.
FROM ubuntu:16.04
# Install prerequisites
RUN apt-get update && apt-get install -y \
curl
CMD /bin/bash
그래서 저는 도커 용기가 작동한 후에 컬을 추가했습니다.
(컨테이너를 디버깅하기 위한 것이었습니다...영구적인 추가가 필요하지 않았습니다.)
이미지를 실행했습니다.
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
그리고 다음을 얻었습니다.
pk add 컬
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) ca 인증서 설치 (20171114-r3)
(2/5) nghttp2-libs 설치(1.32.0-r0)
(3/5) libssh2 설치(1.8.0-r3)
(4/5) libcurl 설치(7.61.1-r1)
(5/5) 컬 설치(7.61.1-r1)
busybox-1.28.4-r2.트리거 실행 중
ca-certificates-20171114-r3.트리거 실행 중
확인: 35개 패키지에 18 MiB
그리고 나서 나는 컬:
/ # curl
curl: try 'curl --help' or 'curl --manual' for more information
/ #
드릴로 뚫린 터미널 창에서 벗어나려면 새 터미널 창을 열고 실행 중인 컨테이너를 중지해야 했습니다.
docker ps
docker stop my-container-id-here
추가:
"apk"가 없는 경우(사용 중인 기본 이미지에 따라 다름) "다른" 설치 프로그램을 사용해 보십시오.여기에 있는 다른 답변에서 다음을 시도할 수 있습니다.
apt-get -qq update
apt-get -qq -y install curl
이미지에 패키지 캐시가 없기 때문에 다음을 실행해야 합니다.
apt-get -qq update
패키지를 설치하기 전에 명령이 도커 파일에 있는 경우 다음이 필요합니다.
apt-get -qq -y install curl
그런 다음 ZSH 및 GIT Core를 설치합니다.
apt-get install zsh
apt-get install git-core
~다점을 받는 중zsh우분투에서 일하는 것은 이상합니다.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
이 문제는 이번 호에서 자세히 설명합니다.
Alpine 기반 이미지를 사용하는 경우 다음 작업을 수행해야 합니다.
RUN
... \
apk add --no-cache curl \
curl ...
...
설치할 curlDocker 컨테이너에 파일을 다운로드하려면 명령을 사용합니다.
ADD https://raw.githubusercontent.com/Homebrew/install/master/install /tmp
RUN ruby -e /tmp/install
을 고참: 위행에추다니합에 합니다.Dockerfilejava.
ADD https://aka.ms/InstallAzureCLIDeb /tmp
RUN bash /tmp/InstallAzureCLIDeb
저에게 성공적으로 작용한 것은 다음과 같습니다.
FROM ubuntu:20.0.4
RUN apt-get update &&\
apt-get install -y curl
...
당신은 당신의 이미지를 이미 가지고 있는 것에 기초할 수 있습니다.curl.
미니멀리즘적인 것:
FROM alpine/curl
또는 본격적인 것:
FROM rockylinux:9
언급URL : https://stackoverflow.com/questions/34571711/cant-run-curl-command-inside-my-docker-container
'programing' 카테고리의 다른 글
| Mac용 도커 데스크톱을 시작할 수 없습니다. (0) | 2023.08.10 |
|---|---|
| MariaDB 커넥터 J: autoReconnect가 기본 페일오버에 대해 작동하지 않음 (0) | 2023.08.10 |
| Swift를 사용한 둘 이상의 사용자 지정 셀이 있는 UI 테이블 보기 (0) | 2023.08.10 |
| Python/psycopg2 WHERE IN 문 (0) | 2023.08.10 |
| 현재 지점이 아닌 지점에 'git pull'하는 방법은 무엇입니까? (0) | 2023.08.10 |