티스토리 뷰
728x90
반응형
서론.
이번 포스팅 글은 CI/CD github Action을 하는 과정에서 일반 계정 사용자를 이용하여 Deploy 했을 시 발생했던 이슈에 관하여 정리한 글입니다.
문제 발생 발단.
- name: Bootup server
uses: cross-the-world/ssh-scp-ssh-pipelines@latest
with:
host: ${{ secrets.HOST_IP }}
user: ${{ secrets.POSTOFFICE_NAME }}
pass: ${{ secrets.POSTOFFICE_PASS }}
port: ${{ secrets.PORT }}
connect_timeout: 10s
first_ssh: |
docker stop dailyroutine || true
docker rm dailyroutine || true
docker image rm dailyroutine:latest || true
docker load -i /home/postoffice/dailyroutine/dailyroutine.tar
docker run -d -p 32468:8080 --name dailyroutine
위의 실행 스크립트의 과정을 설명하자면
- docker stop dailyroutine : dailyroutine 컨테이너 정지
- docker rm dailyroutine : dailyroutine 컨테이너 삭제
- docker image rm dailyroutine:latest: 이미지 dailyroutine 삭제
- docker load -i : 새로 생성된 dailyroutine.tar 파일을 이미지 파일로 로드
- docker run -d : dailyroutine 이미지 컨테이너에 올림
에러 메세지.
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.45/containers/***/stop": dial unix /var/run/docker.sock: connect: permission denied
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Delete "http://%2Fvar%2Frun%2Fdocker.sock/v1.45/containers/***": dial unix /var/run/docker.sock: connect: permission denied
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Delete "http://%2Fvar%2Frun%2Fdocker.sock/v1.45/images/***:latest": dial unix /var/run/docker.sock: connect: permission denied
오류 글의 뜻은 간단합니다.
Docker 소켓 권한 문제
'permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock' 은 Docker 데몬에 접근할 권한이 없다는 것을 의미합니다.
해결 방법.
Docker 소켓에 대한 권한을 조정하거나 Docker를 실행할 사용자에게 올바른 권한을 부여해야 합니다.
1. 권한을 조정한다는 것은 앞에 sudo를 붙여서 권한을 조정한다는 의미 입니다.
sudo docker stop dailyroutine || true
sudo docker rm dailyroutine || true
sudo docker image rm dailyroutine:latest || true
sudo docker load -i /home/dailyroutine/versions/dailyroutine.tar
sudo docker run -d -p 32468:8080 --name dailyroutine dailyroutine:latest
2. Docker 실행할 사용자에게 올바른 권한 주기
sudo usermod -aG docker $USER
우선 사용자 계정이 Docker 그룹의 일원인지 확인을 합니다.
만약 그룹이 아닐 경우에는 위의 명령어를 통해 docker 그룹의 일원이 되도록 설정합니다.
특정 사용자 계정에 대해 dockr 그룹에 추가를 하게 되면 sudo 명령어를 사용하지 않고 docker 명령어를 사용할 수 있습니다.
위의 설정을 진행한 후에는 도커를 재시작해 줍니다.
service docker restart # 우분투 기준
systemctl restart docker # Centos 기준
728x90
반응형
'linux > docker' 카테고리의 다른 글
도커란? (0) | 2024.10.04 |
---|---|
Docker 컨테이너와 외부 폴더 간의 연결에 대한 회고… (0) | 2024.09.19 |
DockerFile 실습(SpringBoot 프로젝트 로컬에서 띄우기) (1) | 2024.02.26 |
docker compose 파일 작성하기(정리) (1) | 2024.02.26 |
DockerFile 기초(정리) (0) | 2024.02.26 |
250x250
반응형
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- mybatis
- 정의
- 리눅스
- 이미지
- hazelcast
- 캘린더
- MySQL
- centos7
- 권한
- Cache
- 스케줄러
- spring
- insert
- leatcode
- 컨테이너
- docker
- Java
- Quartz
- ncp
- 캐시
- 개념 이해하기
- dockerfile
- 알고리즘
- LocalDate
- 격리수준
- dfs
- 네이버 클라우드
- Lock
- Linux
- 도커
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함