Skip to main content

Could not find a valid Docker environment

· 2 min read
Haril Song
Owner, Software Engineer at 42dot

Overview

맥을 업데이트하고 docker 가 제대로 동작하지 않아서 다시 설치하게 되었는데, 이후 test 실행시 container 가 정상적으로 실행되지 않는 에러가 있었다.

확인해보니 /var/run/docker.sock 가 정상적으로 설정되있지 않다는 내용이 출력되었는데 이를 해결하기 위한 방법을 공유한다.

Description

해당 문제는 Docker desktop 4.13.0 에서 나타나는 현상이다.

By default Docker will not create the /var/run/docker.sock symlink on the host and use the docker-desktop CLI context instead. (see: https://docs.docker.com/desktop/release-notes/)

현재 도커가 실행 중인 context 는 docker context ls 로 출력할 수 있으며, 다음과 같이 표시된다.

NAME                TYPE                DESCRIPTION                               DOCKER ENDPOINT                                KUBERNETES ENDPOINT                                 ORCHESTRATOR
default moby Current DOCKER_HOST based configuration unix:///var/run/docker.sock https://kubernetes.docker.internal:6443 (default) swarm
desktop-linux * moby unix:///Users/<USER>/.docker/run/docker.sock

default context 를 사용하도록 설정해주거나 unix:///Users/<USER>/.docker/run/docker.sock 을 대상으로 연결되게끔 실행하면 정상적으로 동작하게 된다.

Solution

다음 명령어를 실행해보고 docker 가 정상적으로 동작하는지 확인한다.

docker context use default

해결되지 않았다면, 아래 명령어로 symbolic link 를 직접 생성하여 해결할 수 있다.

sudo ln -svf /Users/<USER>/.docker/run/docker.sock /var/run/docker.sock

Reference