다음과 같은 에러를 발생시키는 경우가 있다.

 

docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied.See 'docker run --help'.

 

이는 docker가 다른 유저 및 유저 그룹에 속해 있는 파일들에 접근할 수 없어서 발생하는 문제로, 기본적으로 다음과 같이 해결이 가능하다.

 

(1) docker 그룹 생성

$sudo groupadd docker

 

(2) 다른 유저를 docker 그룹에 넣어준다.

$sudo usermod -aG docker <유저명>

반응형

'Docker' 카테고리의 다른 글

도커로 nginx 띄우는 법  (0) 2019.10.15

이 글에서는 단순히 nginx 이미지를 띄우고 멈추는 방법에 대해서만 설명할 계획이다. nginx 환경설정을 추가하는 방법에 대해서는 이어지는 포스트에서 자세히 설명하도록 하겠다.

우선, 도커가 현재 호스트에 설치가 되어 있다는 사실을 가정하여 글을 이어나가겠다.

 

1. 도커 커맨드를 이용하여 nginx 이미지를 현재 호스트로 가져와야 한다. 

$docker image pull nginx

 

2. 이제, 이미지를 실행하여 컨테이너로 띄워 보자. 

$docker run -p 8080:80 nginx

위의 커맨드는 이미지를 띄우되, 호스트의 8080 포트를 컨테이너의 80 포트에 붙이라는 의미이다. 현재 도커를 자신의 컴퓨터에 설치하여 저 커맨드를 실행하였다면, 브라우저를 띄운 후 호스트주소:8080을 입력해 보자. 그러면 엔진엑스 메인 화면이 나오는 것을 확인할 수 있을 것이다.

간단하다. 그런데 위의 커맨드로 실행하면 현재 콘솔에서는 컨테이너가 실행중인 동안 아무 작업도 할 수 없다. 데몬으로 실행한 것이 아니기 때문이다.

 

도커를 데몬으로 실행하는 방법은 간단하다. 위의 커맨드에다가 -d 플래그를 추가해 주면 된다.

$docker run -d -p 8080:80 nginx

이렇게 하면 데몬으로 실행되는 것을 확인할 수 있다.

 

현재 실행중인 컨테이너의 목록은 다음 커맨드로 확인 가능하다.

$docker container ls

 

컨테이너를 멈추고 싶으면 목록에서 보이는 container ID 혹은 맨 우측 열의 names를 참조하여 다음과 같이 커맨드를 실행한다. 

$docker container stop <container_ID> (혹은 name)

여기서 name은 컨테이너 실행 시 임의로 지어진 이름이다.

그런데, 매번 컨테이너 ID 혹은 임의로 생성된 이름을 참조하자니 불편하다. 따라서 컨테이너를 띄울 때 이름을 사용자 정의 이름으로 지정해 주고, 나중에 이 이름으로 컨테이너를 멈출 수 있도록 하는게 편리할 것이다. 도커 실행 시 --name=<컨테이너명> 옵션을 추가하여 컨테이너 이름을 사용자가 정의할 수 있다. 

 

$docker run --name=webserver -d -p 8080:80 nginx

위 커맨드를 실행한 후 컨테이너 목록을 다시 조회해 보니, name에 webserver가 들어간 것을 확인할 수 있다.

 

이제는 docker container stop webserver 커맨드로 컨테이너를 멈출 수 있다.

반응형

+ Recent posts