prosource

도커 컴포지트에서 도커에 연결할 수 없음

probook 2023. 9. 20. 20:24
반응형

도커 컴포지트에서 도커에 연결할 수 없음

OS 10.8.5 0.1.0 1.1.0 에 도커 과 도커 1했습니다.
도커-머신이 정상적으로 실행되고 있으며 도커-머신 ssh를 통해 연결할 수 있습니다.

$ docker-machine ls
NAME   ACTIVE   DRIVER       STATE     URL                         SWARM
dev    *        virtualbox   Running   tcp://192.168.99.100:2376   

그러나 도커 컴포지트에서 연결할 수 없습니다.

$ docker-compose up

http+unix://var/run/docker.sock에서 도커 데몬에 연결할 수 없습니다. 실행 중입니까?

표준이 아닌 위치에 있는 경우 DOKER_HOST 환경 변수로 URL을 지정합니다.

내 도커 파일과 도커 작곡.yml이 여기 있습니다.

도커파일

FROM centos:centos7
DOCKER_HOST tcp://192.168.99.100:2376

도커- compose.yml

web:
  build: .

왜 연결이 안 되나요?무슨 생각 있어요?

:sudo docker-compose up


업데이트 2016-3-14: 도커 설치 프로세스(또는 도커 구성?)의 어느 시점에서 사용자 이름을 "도커" 그룹에 추가하는 제안 및 예제가 있습니다.이를 통해 다음과 같은 모든 도커 명령 이전에 "sudo"가 필요하지 않도록 할 수 있습니다.

~ > docker run -it ubuntu /bin/bash
root@665d1ea76b8d:/# date
Mon Mar 14 23:43:36 UTC 2016
root@665d1ea76b8d:/# exit
exit
~ > 

설치 명령의 출력(도커와 도커 합성을 위한 2차 설치)을 주의 깊게 살펴보면 필요한 단계를 찾을 수 있습니다.이 문서는 또한 여기에 문서화되어 있습니다: https://subosito.com/posts/docker-tips/

스도? 안 돼요!

명령을 내릴 때마다 sudo docker를 입력하는 것에 싫증이 났습니까?네, 그 문제를 해결할 수 있는 방법이 있습니다.물론 도커는 루트 사용자가 필요하지만, 도커 작업을 위해 루트 등가 그룹을 제공할 수 있습니다.

도커라는 그룹을 만든 다음 원하는 사용자를 해당 그룹에 추가할 수 있습니다.도커 서비스를 재시작한 후 사용자는 도커 작업을 수행할 때마다 sudo를 입력할 필요가 없습니다.포탄 명령어에 어떻게 나타나나요? 근본적으로, 여기 있습니다.

> sudo groupadd docker
> sudo gpasswd -a username docker
> sudo service docker restart 

알았어!

UPDATE 2017-3-9

도커 설치 지침이 여기에 업데이트되었습니다.

리눅스용 설치 후 단계

이 섹션에는 Linux 호스트가 도커와 더 잘 작동하도록 구성하는 선택적 절차가 나와 있습니다.

도커를 루트가 아닌 사용자로 관리

도커 데몬은 TCP 포트 대신 유닉스 소켓에 바인딩됩니다.기본적으로 유닉스 소켓은 사용자 루트가 소유하며 다른 사용자는 sudo를 사용해서만 액세스할 수 있습니다.도커 데몬은 항상 루트 사용자로 실행됩니다.

docker 명령어를 사용할 때 sudo를 사용하지 않으려면 docker라는 유닉스 그룹을 만들어 사용자를 추가합니다.도커 데몬이 시작되면 도커 그룹이 유닉스 소켓의 소유권을 읽고 쓸 수 있게 됩니다.

도커 그룹을 만들고 사용자를 추가하려면:

# 1. Create the docker group.
$ sudo groupadd docker

# 2. Add your user to the docker group.
$ sudo usermod -aG docker $USER

# 3. Log out and log back in so that your group membership is re-evaluated.

# 4. Verify that you can run docker commands without sudo.
$ docker run hello-world

이 명령은 테스트 이미지를 다운로드하여 컨테이너에서 실행합니다.컨테이너가 실행되면 정보 메시지를 출력하고 종료합니다.

도커 기계가 작동 중입니다.하지만 도커 기계에 연결하려면 일부 환경을 내보내야 합니다.으로,docker가 CLI다를 과 통신을 .http+unix://var/run/docker.sock(오류 메시지에 표시된 것과 같이).

다음을 eval $(docker-machine env dev)그리고 다시 시도합니다.다를 할 수도 .docker-machine env dev내보낼 환경 변수를 확인합니다.DOCKER_HOST에서 알 수 를 할 수도

하여 도커를 sudo하고,와를 구성합니다.sudo좋아요:sudo docker-compose up

Ubuntu 20.0.4의 문제를 다음과 같이 해결했습니다.

sudo chmod 666 /var/run/docker.sock

그리고 나서.

sudo service docker start && docker-compose up -d

참조.

오류가 발생할 경우:

오류: http+docker://localhost에서 도커 데몬에 연결할 수 없습니다. 실행 중입니까?

해결책은 다음과 같습니다.

  1. 먼저 원격/로컬 시스템에서 도커 서비스가 예상대로 실행되고 있는지 확인합니다.sudo service docker status

    그렇지 않은 경우 - 실행sudo service docker start아니면sudo systemctl start docker(일부 Linux 버전에 따라 다릅니다. 도커 시작 지침 참조).

  2. 둘째, sudo로 도커를 시작합니다. sudo docker-compose up

은 항상 에 붙여야 .sudo당신의 도커 명령에 따라.

docker 명령어를 사용할 때 sudo를 사용하지 않으려면 docker라는 유닉스 그룹을 만들어 사용자를 추가합니다.도커 데몬이 시작되면 도커 그룹이 유닉스 소켓의 소유권을 읽고 쓸 수 있게 됩니다.

도커 그룹을 만들고 사용자를 추가하려면:

  1. 도커 그룹을 만듭니다.

    $ sudo groupadd docker

  2. 도커 그룹에 사용자를 추가합니다.

    $ sudo usermod -aG docker $USER

  3. 로그아웃 후 다시 로그인하여 그룹 구성원 자격을 재평가합니다.

  4. sudo 없이 명령을 도커할 수 있는지 확인합니다.

    $ docker run hello-world

이 명령은 테스트 이미지를 다운로드하여 컨테이너에서 실행합니다.컨테이너가 실행되면 정보 메시지를 출력하고 종료합니다.

위에서 설명한 단계는 도커 공식 문서에서 가져온 것입니다.

sudo systemctl start docker- 합니다 -합니다

sudo docker-compose up

저는 페도라 26을 가지고 있는데, 같은 문제를 해결하기 위해 결국 페도라 개발자 페이지에 도커 컴포지트를 입력하고 페도라 개발자 페이지에 도커를 입력하여 도움이 되었습니다.

아마 도커 서비스는 커뮤니티에서 시스템에서 시작해서 항상 백그라운드에서 실행하는 것으로 생각했을 것입니다만, 저에게는 그렇게 명확하지 않았고, 그래서 이런 대중적인 답변이 없는 이유를 생각할 수 있습니다.

Fedora Developers' 페이지에는 Docker가 시스템을 시작할 수 있도록 하는 방법에 대한 지침이 나와 있습니다.

sudo systemctl enable docker

이것을 해결하는 신속한 방법.

도커 명령 앞에 sudo를 추가하면 됩니다. 예를 들어,


sudo docker-compose up

리눅스를 사용하는 경우

해 보다sudo docker-compose up

이것을 루트로 실행합니다.sudo docker-compose up --build

만약 당신이 리눅스에 있다면, 당신은 아마 없을 것입니다.docker-machine기본적으로 Windows 및 Mac 컴퓨터에만 설치되므로 설치됩니다.

그렇다면 Linux 버전에 설치하는 방법에 대한 지침을 보려면 https://docs.docker.com/machine/install-machine/ 로 이동해야 합니다.

후 인 합니다를 시도합니다.docker-compose up위에 나열된 것을 시도하기 전에.

누군가에게 도움이 되길 바랍니다.이것은 페도라 25에 있는 데빌박스 설치에 효과가 있었습니다.

docker-compose pull.

오류: http+docker://localhost에서 도커 데몬에 연결할 수 없습니다.

실행되고 있습니까?

해결책 -

sudo service docker start 

해결된 문제

이란 건 제 sudo매력적으로 통했습니다.

당신의 경우에는 다음과 같이 시도해 보십시오.$ sudo docker-compose up

로그 확인한 사람?

내 경우 에 오류 메시지가 표시됩니다./var/log/upstart/docker.log다음과 같음:

Listening for HTTP on unix (/var/run/docker.sock) 
[graphdriver] using prior storage driver "aufs" 
Running modprobe bridge nf_nat failed with message: , error: exit status 1 
Error starting daemon: Error initializing network controller: Error creating default "bridge" network: can't find an address range for interface "docker0" 

을 언급할 가 있습니다.: VPN 가. $ sudo service openvpn stop $ sudo service docker restart $ docker-compose up|start $ sudo service openvpn start 해결책이었습니다.

도커-머신을 사용하는 경우 env 변수를 사용하여 환경을 활성화해야 합니다.도커 머신을 사용하지 않는 경우 sudo를 사용하여 명령을 실행합니다.

하는 것 에를 ,sudo다에 .docker다음과 같은 명령:

alias docker-compose="sudo docker-compose"
alias docker="sudo docker"

권한 문제가 있을 수 있습니다. 아래 명령어로 해결해 주세요.

$USER/var/run/docker.양말을

Max의 솔루션에 감사드립니다: https://stackoverflow.com/posts/60282354/revisions

해결할 수 있는 :
질문:.
enter image description here

해결책:

sudo chown $USER /var/run/docker.sock

답변:
enter image description here

@srfrnk의 답변이 저에게 적합합니다.

제 상황에서는 다음 도커-컴포지트.yml 파일을 사용했습니다.

  nginx:
    build:
      context: ./
      dockerfile: "./docker/nginx.staging/Dockerfile"
    depends_on:
      - scripts
    environment:
      NGINX_SERVER_NAME: "some.host"
      NGINX_STATIC_CONTENT_OPEN_FILE_CACHE: "off"
      NGINX_ERROR_LOG_LEVEL: debug
      NGINX_BACKEND_HOST: scripts
      NGINX_SERVER_ROOT: /var/www/html
    volumes:
      - ./docker-runtime/drupal/files:/var/www/html/sites/default/files:rw
    ports:
      - 80:80

./docker-runtime및- 룹 - isroot다른 파일 소유자 - 내 사용자.d을 지으려고 때.nginx

Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

추가했습니다../docker-runtime..dockerignore내 문제는 해결됐습니다.

1 . sudo service docker stop 
2 . sudo service docker status
3 . sudo service docker start
4 . docker-compose build <app_name\service_name>

저도 같은 증상이 있었습니다.

단지 그것이 단지 그 동안에 일어났다는 것이 다를 뿐입니다.docker-compose build docker ps일했다.버전에서 발생했습니다.2.x만 아니라.3.x 시작했습니다. docker서비스를 하고 기계를...n도docker+docker-compose.

모든 걸 시도했지만 아무 도움도 되지 않았습니다.

으로 을 "으로" 를 하여 도커 .docker build.

/ 의 파일가 있었던 것 .Docker맥락.빌드를 시작할 때 컨텍스트를 읽으려고 했지만 제대로 된 오류 메시지와 함께 실패했습니다.그러나 이 오류 메시지는 다음으로 전파되지 않았습니다.docker-compose 뿐입니다.Couldn't connect to Docker daemon at http+unix://var/run/docker.sock - is it running?

솔루션이 를 후/.dockerignore파일은 빌드에 필요하지 않았기 때문입니다.과 같습니다.chown아니면chmod그것.

가 는 전혀 같은 하는 데 이 될 도 있습니다.docker오해의 소지가 있는 오류 메시지가 표시됩니다.

$sudo docker-compose 업

나는 위의 답변에서 $USER를 그룹 도커에 추가하는 단계를 그대로 수행했습니다. 나는 내 도커 설치에서 도커라는 이름의 그룹이 자동으로 생성되었기 때문에 새로운 그룹 도커를 추가하고 싶지 않았습니다.

도커 CE가 설치되어 실행 중입니다.도커 그룹이 생성되지만 사용자가 그룹에 추가되지 않습니다.도커 명령을 실행하려면 sudo를 사용해야 합니다.권한이 없는 사용자가 도커 명령을 실행할 수 있도록 하고 기타 선택적 구성 단계를 수행하려면 Linux postinstall로 계속 진행합니다.

하지만 도커-compose 업을 사용하는 것도 효과가 없었습니다.이전과 동일한 오류가 발생했습니다.그래서 저의 경우(우분투 18.10) sudo docker-composition이 문제를 해결했습니다.

ps: @Tiw 조언 감사합니다.

시도해 보십시오.

sudoln -s /usr/local/bin/ docker- compose/usr/bin/ docker-

다음 단계를 사용하여 문제를 해결했습니다.

$ sudo service docker status
$ sudo service docker start
$ sudo docker-compose up

이제 도커- compose 업이 작동합니다.

로그아웃 후 다시 로그인하는 것이 도움이 되었습니다.새로 설치한 경우에는 새로운 사용자를 만들고 새로운 그룹을 만든 다음 사용자를 도커 그룹에 추가했습니다.

출구

그런 다음 서버에 다시 ssh를 넣습니다.

일하는 중!!
는 아래 명령어들과 합니다를 .

service docker restart
docker-compose -f docker_compose.yaml down
docker-compose -f docker_compose.yaml up

저와 함께 작업한 솔루션은 이미지 태그를 소문자로 변경하는 것이었습니다.

docker-compose.yml 파일의 이미지 태그를 저장소 IP와 이미지 이름을 소문자로 포함하도록 변경합니다.

예: 이미지: 192.168.1.5/ imag 이름: v1

sudo dockerd저의 경우 도커 서비스를 시작했습니다. 윈도우에서 wsl2를 사용하고 있었습니다.

저는 도커 업그레이드를 시작했다가 중간에 취소했습니다.도커가 실행되지 않는 것을 눈치채지 못했습니다(만약 그렇다면, 배터리 잔량, 시간 등으로 내 맥북의 상단 nav bar에 아이콘이 있습니다)시작하고 업그레이드를 마치면docker-compose up공!

제 설정에는 이 오류에 대한 두 가지 사례가 있습니다.

  • __pycache__컨테이너 내부에서 통합 테스트를 실행한 후 루트 사용자가 만든 파일이 도커(원래 문제를 알려주는) 및 도커 합성(도커 호스트에 대해 모호하게 알려주는)에 액세스할 수 없습니다.
  • microk8s내 항구를 막을 때까지 막았어요

언급URL : https://stackoverflow.com/questions/29101043/cant-connect-to-docker-from-docker-compose

반응형