programing

macOS에서 Docker 데몬에 연결할 수 없음

iphone6s 2023. 8. 20. 10:31
반응형

macOS에서 Docker 데몬에 연결할 수 없음

일반적으로 OSX에서 Brew로 앱을 관리하는 것을 선호합니다.

도커, 도커 합성 및 도커 기계를 설치할 수 있습니다.

docker --version
Docker version 17.05.0-ce, build 89658be
docker-compose --version
docker-compose version 1.13.0, build unknown
docker-machine --version
docker-machine version 0.11.0, build 5b27455

나는 'Mac용 도커' 앱을 다운로드하여 실행하지 않았습니다.

하지만 내가 뛰려고 할 때

> docker run -d -p 80:80 --name webserver nginx
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.

나는 이미 양말 파일을 확인했습니다.

ls -lah /var/run/docker.sock /var/tmp/docker.sock
ls: /var/run/docker.sock: No such file or directory
ls: /var/tmp/docker.sock: No such file or directory

저는 또한 다음과 같은 제안된 솔루션을 시도해 보았습니다.Mac OS X sudo 도커가 도커 데몬에 연결할 수 없습니다. 이 호스트에서 도커 데몬이 실행되고 있습니까?

하지만 다음과 같은 오류 메시지가 표시됩니다.

$ eval $(docker-machine env default)
Host does not exist: "default"

명령줄 도구로 실행할 도커 서비스를 얻을 수 있습니까?

지원되는 Mac에서 다음을 실행합니다.

brew install --cask docker

그런 다음 Docker 앱을 시작합니다.다음을 클릭합니다.권한 있는 액세스 권한을 요청합니다.확인.상단 막대에 고래 아이콘이 표시되어야 합니다.이 아이콘을 클릭하고 "Docker is running(도커가 실행 중입니다)이 나타날 때까지 기다립니다.

은 도은망수합니다있야어를 실행할 수 .docker지금 명령:

docker ps

패키지이기 때문에 도는시수패준므로다음사수다없설니습을 사용하여 할 수 .brew install사용해야 합니다.--cask대신.

참고: 이 솔루션은 CPU가 가상화를 지원하는 Mac에서만 사용할 수 있으며, 이전 Mac은 사용하지 않을 수 있습니다.

2022년 편집 - 댓글 섹션에서 Docker Desktop에 대한 라이센스 변경이 발생했다고 합니다.아래의 대안을 고려하고 자세한 내용은 의견을 확인하십시오.

MacOS에서 바이너리는 클라이언트일 뿐이며 도커 데몬을 실행하는 데 사용할 수 없습니다. 도커 데몬은 Linux 전용 커널 기능을 사용하기 때문에 OS X에서 도커를 기본적으로 실행할 수 없습니다. 따라서 설치해야 합니다.docker-machineVM을 생성하여 VM에 연결합니다.

를 설치합니다.docker-machinemacOSmacOS에서 사용할 수 .

아직 명령이 없는 경우 다음 방법 중 하나를 사용하여 명령을 설치합니다.

  • Brew 명령 사용:brew install docker-machine docker.

  • 릴리스 페이지에서 수동으로:

    $ curl -L https://github.com/docker/machine/releases/download/v0.16.1/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine
    $ chmod +x /usr/local/bin/docker-machine
    

참조: Mac용 Docker를 시작하십시오.

가상 상자 설치

docker-machine설치되는 VirtualBox에 의존하며 그렇지 않으면 실패합니다.VirtualBox가 이미 있는 경우 이 단계를 건너뛸 수 있습니다.

  • 하기: 루사용홈:brew install --cask virtualbox
  • Virtualbox.org 의 릴리스를 수동으로 사용

OS X 보안 패널에서 Virtualbox 커널 확장을 로드하는 것을 적극적으로 수락한 다음 시스템을 다시 시작해야 다음 명령이 실패하지 않습니다.Error: VBoxNetAdpCtl: Error while adding new interface

를 구성합니다.docker-machinemacOSmacOS에서 사용할 수 .

성을 합니다.defaultmachine 없다면 machine (기계)을하세요.docker-machine ls):

docker-machine create --driver virtualbox default

그런 다음 Docker 클라이언트를 위한 환경을 설정합니다.

eval "$(docker-machine env default)"

그런 다음 용기를 나열하여 다시 확인합니다.

docker ps

참조: 도커 시스템로컬 VM을 시작하십시오.


관련:

만약 당신이 처럼 도커 데스크톱 4.13.0 이후에 여기에 온다면, 그것은 도커가 그것을 제거했기 때문입니다./var/run/docker.sock기본 동작의 심볼 링크!릴리스 정보는 여기를 참조하십시오.

빠른 수정: 아래의 "영구 솔루션"에 있는 명령을 복사합니다.

문제

나는 경험하고 있었습니다.docker ps 다른 명령) 작용하는 예: supabase 는 과 같은 를 낳았습니다

$ supabase start
Error: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

해결책

이제 도구가 기본적으로 에 있는 실제 도커 소켓 파일을 찾도록 하려면 수동 작업을 수행해야 합니다.~/Library/Containers/com.docker.docker/Data/docker.raw.sock.

영구 솔루션: 수동 Symlink

이것은 이 임시 수정을 "실행 취소"하는 영구적인 해결책입니다.

sudo ln -s ~/Library/Containers/com.docker.docker/Data/docker.raw.sock /var/run/docker.sock
DOCKER_HOST=unix:///var/run/docker.sock docker ps # test that it works using linked socket file

임시 솔루션:DOKER_HOST 사용

그러면 새 소켓 파일을 사용하는 명령이 일시적으로 표시됩니다.

DOCKER_HOST=unix:///Users/$USER/Library/Containers/com.docker.docker/Data/docker.raw.sock docker ps

)로 표시됩니다.docker ps, 예는신▁▁with▁such▁command와 같이 원하는 로 실행할 수 있습니다.supabase start)

또한 현재 터미널 세션에서 사용할 수 있도록 하거나 파일에 붙여넣을 수 있습니다..zshrc항상 사용:

export DOCKER_HOST=unix:///Users/$USER/Library/Containers/com.docker.docker/Data/docker.raw.sock

저도 같은 문제가 있었습니다. 저는 다음 단계에서 문제를 해결했습니다.

docker-machine restart

터미널(또는 iTerm2 등)을 종료하고 다시 시작합니다.

eval $(docker-machine env default)

저도 여기에 답했습니다.

Mac OS를 .Launchpad를 선택합니다.docker어플.부터reset 탭릭클restart.

도커 머신은 이제 더 이상 사용되지 않습니다. 콜리마는 훌륭한 대체품이며 간단한 명령으로 도커 데몬을 쉽게 연결할 수 있습니다.

brew install docker docker-compose colima
# make coffee
colima start

도커 준비:

docker run hello-world

기본값을 작성합니다.

docker-machine create default

OSX에서 발행하기 전에 도커 응용 프로그램을 실행했는지 확인합니다.

docker ps

또는docker build기타...네, 발행하는 것이 이상하고 다소 오해를 불러일으키는 것 같습니다.

docker --version

도커 데몬이 실행되고 있지 않더라도 버전을 제공합니다... 다른 버전 cmds의 경우에도...방금 똑같은 증상이 나타났는데요...OSX에서의 이 동작은 Linux에서의 동작과 다릅니다.

다른 답변을 확장하기 위해 - 이 정확한 문제에 대해 오전 내내 시간을 보냈지만 다른 답변은 도움이 되지 않았습니다. 마침내 저는 도커가 도커의 잘못된 경로에 액세스하려고 한다는 것을 발견했습니다.양말(!!) 몇 달 전에 콜리마를 설치했기 때문입니다.

이를 실행하는 것이 다시 전환하는 데 도움이 되었습니다.

docker context use default

미니큐브를 설치하고 어두운 쪽으로 오세요.

https://kubernetes.io/docs/tasks/tools/install-minikube/

$ bash --version
GNU bash, version 5.0.3(1)-release (x86_64-apple-darwin18.2.0)
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

eval $(minikube docker-env)

$ docker run --rm -v ${PWD}:/local swaggerapi/swagger-codegen-cli generate     -i /local/swagger.json     -l python     -o /local/test/
[main] INFO io.swagger.parser.Swagger20Parser - reading from /local/swagger.json
[main] WARN io.swagger.codegen.DefaultGenerator - 'host' not defined in the spec. Default to 'localhost'.

bash v5와 함께 Macbook Pro 2018에서 잘 작동합니다.요즘 IMO에 다른 모든 도커 넌센스를 설치할 필요가 없습니다.미니큐브와 함께 제공되는 VM 및 설치 스크립트는 도커 시스템을 대체할 수 있습니다.

도커 데스크톱을 여는 것만으로도 효과가 있었습니다.

나에게 도커를 다시 시작하는 것은 도움이 되지 않았습니다. (터미널과 UI를 통해 모두 시도)

아래 옵션이 선택되지 않아 확인했습니다.이후 컨테이너 설정 -> 고급 -> 기본 도커 소켓 사용(암호 필요)

참고 - 관리 자격 증명이 필요합니다.

enter image description here

도커를 최신 상태로 유지하고 있었는데 도커가 작동 중이라고 했고 진단도 좋았습니다.기존 환경 변수의 설정을 취소해야 했습니다(https://docs.docker.com/docker-for-mac/troubleshoot/ #공통 해결 방법 감사).

unset DOCKER_HOST
unset DOCKER_CERT_PATH
unset DOCKER_TLS_VERIFY

이 문제:

$ brew install docker docker-machine
$ docker ps

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

이것은 분명히 다음을 수행한다는 것을 의미했습니다.

$ docker-machine create default # default driver is apparently vbox:
Running pre-create checks...
Error with pre-create check: "VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path"
$  brew cask install virtualbox
…
$ docker-machine create default 
# works this time
$ docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
$ eval "$(docker-machine env default)"
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

드디어 작동합니다.

가상 상자를 설치하지 않으려면 "xhyve" 드라이버를 사용할 수 있습니다.또한 위의 일부를 실행할 필요가 없도록 "도커 앱"을 설치(실행)할 수 있습니다.brew cask install docker그런 다음 앱을 실행하고 다른 답변을 참조하십시오.하지만 분명히 그 자체는 필요하지 않습니다.

이것은 저에게 효과가 있었습니다.

open --background -a Docker

도커에 연결할 수 있을 때까지 몇 초 정도 걸립니다.

저는 Mac OS Big Sur에 있습니다.

저도 같은 문제가 있었습니다.도커가 실행 중이지만 CLI를 통해 액세스할 수 없습니다.

나에게 이 문제는 "Docker Quickstart Terminal.app"을 실행함으로써 해결되었습니다.이것은 "/Applications/Docker/" 폴더에 있습니다.이 터미널 앱의 경우 Docker가 완벽하게 작동하는 한.두 번째 창이 필요하면 "Quickstart" 앱을 다시 실행해야 합니다.

Mac용 도커를 설치했습니다.따라서 내 솔루션이 Homebrew 설치에 적합한지 확신할 수 없습니다.

"Docker Quickstart Terminal" 앱은 기본적으로 터미널 앱을 실행하기 위한 일부 애플스크립트와 모든 필요한 환경 변수를 초기화하는 bash start 스크립트인 것 같습니다.

이것이 다른 누군가에게 도움이 되기를 바랍니다!

설치 도커에 대한 스크립트를 실행하고 명령줄에서 실행해야 합니다.

brew install --cask docker
sudo -H pip3 install --upgrade pip3
open -a Docker
docker-compose ... 

후 그후docker-compose효과가 있어야 합니다.

저는 제 맥에서 비슷한 문제에 직면하고 있었는데, 도커가 제 컴퓨터에서 실행되고 있지 않다는 것을 발견했습니다. 애플리케이션으로 가서 고래를 호출하면 작동했습니다.

도커는 리눅스에서 실행되도록 설계되었습니다.그러나 macOS의 VM에서 실행할 수 있습니다.그렇게 하는 것은 다소 힘든 일이며, 그것이 아마도 Docker Desktop이 처음부터 존재하는 이유일 것입니다.그렇다고 해서 Mac의 명령줄에서 편안하게 도커를 사용할 수 없는 것은 아닙니다.

고려해야 할 몇 가지 옵션:

  1. 당신은 리마를 사용할 수 있고 추가할 수 있습니다.alias docker='lima nerdctl'당신의 bash 프로필로.
  2. 시스템에 Linux VM을 설치하고 대신 사용할 수 있습니다(권장하지 않음).
  3. Mac에서 듀얼 부팅 리눅스.지금은 T2와 M1 칩이 있는 기계도 지원됩니다.

Mac Ventura 13.3.1에서도 항상 작동하는 한 가지 해킹은

stop docker

도커 양말 제거

sudo rm /var/run/docker.sock

도커를 다시 시작합니다.

VirtualBox)의6.1.32r149290), 명령docker-machine create --driver virtualbox default작동하지 않습니다. 가상 VM의 자동 생성 IP에 오류가 있습니다. 여기에 설명이 있습니다. https://stackoverflow.com/a/69745931/2917630 이 있습니다.

하는 데 이 되었습니다.docker-machine create --driver virtualbox --virtualbox-hostonly-cidr "192.168.59.3/24" default.

저도 비슷한 문제가 있었습니다.그리고 아마도 저의 특정 사례/솔루션이 다른 사람들에게도 도움이 될 것입니다.

필수 구성 요소:

나는 MacOS(M1 칩)를 가지고 있고 Docker App을 설치했습니다.도커 엔진 v20.10.23.

저는 서비스를 위한 도커 이미지를 만들기 위해 InteliIdea와 함께 Maven에서 spring-boot:build-image 명령을 실행하려고 했습니다.

그에 대한 대답으로 나는 -[2] No such file or directory

- 그리고 InteliIdea 제지있던콘솔은 -[INFO] I/O exception (java.io.IOException) caught when processing request to {}->docker://localhost:2376: com.sun.jna.LastErrorException: [2] No such file or directory

맥 에서 실행합니다.docker ps반환됨"Cannot connect to the Docker daemon at tcp://localhost:2376. Is the docker daemon running?"

솔루션:

그래서 저는 다른 의견에서 조언한 대로 다음 단계를 따랐습니다.

  1. 종에서운다에서 됩니다.brew install --cask docker위의 @friederbluemle 답변에서 다음과 같이 설명합니다. "도커는 시스템 레벨 패키지이기 때문에 brew install을 사용하여 설치할 수 없으며 대신 --cask를 사용해야 합니다."

를 처음도 에설때을치와 함께 한 것 .brew install그래서 아마도 그것이 이 문제의 일부였을 것입니다.

  1. 도커 앱 실행
  2. 종에서운다에서 됩니다.export DOCKER_HOST=unix:///var/run/docker.sock

그 후 터미널에서 실행할 때docker ps 열 테블열반습니다했환을 했습니다.CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES및 spring-boot:build-image 명령은 정상적으로 작동합니다.

애플 실리콘에 대한 또 다른 해결책은 목장주나 포드맨을 설치하는 것이었지만, 포드맨은 라이브러리를 가져오는 동안 몇 가지 문제가 있었습니다.paho_mqtt녹용).

brew install rancher

그런 다음 앱을 시작하고 VM을 시작할 서비스를 선택합니다.

처음에 홈브루를 통해 도커와 도커 합성을 시도해 보았지만 여기에 문제가 있었습니다.저는 https://docs.docker.com/docker-for-mac/install/ 에서 도커의 공식 설치를 설치해야 했고 모든 것이 예상대로 작동했습니다.

을 실행하고 /을 실행해야 . /Applications 폴더는 Docker Docker입니다.brew cask install하면 설치를가 표시됩니다.이를 실행하면 설치를 완료하라는 메시지가 표시됩니다.그때 나는 달릴 수 있었습니다.docker ps

다음을 시도했고 지금은 잘 작동합니다.

$ docker-machine create default
(default) Creating VirtualBox VM...
(default) Creating SSH key...
(default) Starting the VM...
(default) Check network to re-create if needed...
(default) Found a new host-only adapter: "vboxnet0"
(default) Waiting for an IP...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with boot2docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Checking connection to Docker...
Docker is up and running!

그리고나서

$ docker-machine env default

마침내.

$ eval $(docker-machine env default)
$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

저는 브루 인스톨 도커 기계를 실행하면 문제가 해결됩니다.최신 도커 버전에는 도커 컴퓨터가 포함되어 있지 않습니다.

지정된 url에 Docker Desktop 설치

https://www.docker.com/products/docker-desktop/

오른쪽 상단 모서리의 설정으로 이동

  • 일반으로 이동
  • 로그인할 때 도커 데스크톱 시작을 선택합니다.

Mac OSX에서 리마와 관련하여 이 문제가 발생하는 경우 limactl 목록을 사용하여 도커 인스턴스가 실행 중인지 확인합니다.제 경우 기본 인스턴스는 실행 중이었지만 도커는 재부팅 후가 아니었습니다.추할수있다니습을 추가할 .limactl start docker예를 들어 Shell 구성으로 이동합니다.~/.zshrc

➜ docker ps
Cannot connect to the Docker daemon at unix:///Users/xxxx/.lima/docker/sock/docker.sock. Is the docker daemon running?

➜ limactl list

NAME       STATUS     SSH                VMTYPE    ARCH      CPUS    MEMORY    DISK      DIR
default    Running    127.0.0.1:60022    qemu      x86_64    4       4GiB      100GiB    ~/.lima/default
docker     Stopped    127.0.0.1:50310    qemu      x86_64    4       4GiB      100GiB    ~/.lima/docker

➜ limactl start docker

...(lima log output)

➜ limactl list

NAME       STATUS     SSH                VMTYPE    ARCH      CPUS    MEMORY    DISK      DIR
default    Running    127.0.0.1:60022    qemu      x86_64    4       4GiB      100GiB    ~/.lima/default
docker     Running    127.0.0.1:50310    qemu      x86_64    4       4GiB      100GiB    ~/.lima/docker

➜ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

https://www.docker.com/ 에서 올바른 링크를 얻으십시오.

Intel 칩 또는 Mac 칩 중 하나입니다.그런 다음 수동으로 설치합니다.

그 후에는 잘 될 겁니다.

언급URL : https://stackoverflow.com/questions/44084846/cannot-connect-to-the-docker-daemon-on-macos

반응형