기술스택을 쌓아보자/linux 리눅스
Ubuntu에 Docker 설치하기 + docker 권한 부여 및 gcp vm 디버깅
소리331
2024. 3. 1. 14:52
반응형
실행환경
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04 # 우분투 버전
Codename: focal # 배포판 이름 => 도커 설치 시 codename이 사용된다!
$ lsb_release -cs # Codename만 추출
focal
우분투 apt-get update
sudo apt-get update
관련 패키지 설치
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
- apt-transport-https ca-certificates curl : https 통신과 관련됨
- gnupg-agent: 암호화 및 디지털 서명을 위한 도구
- software-properties-common : 소프트웨어 저장소관리, 제3자 저장소를 apt 소스 리스트에 추가할 때 사용됩니다.
3. Docker의 공식 GPG키를 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- gpg key: 암호화 키
4. Docker의 공식 apt 저장소를 추가
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
5. 패키지 업데이트
sudo apt-get update
6. Docker 설치
sudo apt-get install docker-ce docker-ce-cli containerd.io
- docker ce: 도커 커뮤니티 에디션!
7. 설치 확인
7-1 도커 실행상태 확인
sudo systemctl status docker
$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2024-03-01 05:20:37 UTC; 3s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 3833 (dockerd)
Tasks: 22
Memory: 31.1M
CGroup: /system.slice/docker.service
└─3833 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Mar 01 05:20:37 ksgpli001 systemd[1]: Starting Docker Application Container Engine...
Mar 01 05:20:37 ksgpli001 dockerd[3833]: time="2024-03-01T05:20:37.040175345Z" level=info msg="Starting up"
Mar 01 05:20:37 ksgpli001 dockerd[3833]: time="2024-03-01T05:20:37.040831794Z" level=info msg="detected 127.0.>
Mar 01 05:20:37 ksgpli001 dockerd[3833]: time="2024-03-01T05:20:37.619138426Z" level=info msg="Loading contain>
Mar 01 05:20:37 ksgpli001 dockerd[3833]: time="2024-03-01T05:20:37.736553986Z" level=info msg="Loading contain>
Mar 01 05:20:37 ksgpli001 dockerd[3833]: time="2024-03-01T05:20:37.746601735Z" level=info msg="Docker daemon" >
Mar 01 05:20:37 ksgpli001 dockerd[3833]: time="2024-03-01T05:20:37.746692729Z" level=info msg="Daemon has comp>
Mar 01 05:20:37 ksgpli001 dockerd[3833]: time="2024-03-01T05:20:37.773744482Z" level=info msg="API listen on />
Mar 01 05:20:37 ksgpli001 systemd[1]: Started Docker Application Container Engine.
7-2 도커 커맨드 확인
sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
=> 여기 까지 하면 sudo 사용자가 docker 권한을 사용할 수 있다.
그런데 나는,,, 다른 사용자도 docker 를 사용할 수 있도록 설정할 것이므로 아래 설정을 추가로 해준다.
8. docker group 수정으로 다른 유저 권한 제공
docker ps
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied
docker를 최초로 설치하면 sudo 권한을 가져야만 docker를 쓸 수 있다.
sudo usermod -aG docker $USER
때문에 docker 그룹에 user를 추가해준다.
~$ cat /etc/group | grep docker
docker:x:998:hoseung
이후 터미널을 재시작하면 docker 가 정상적으로 작동동그라미
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
GCP 환경에서 설치하면서 디버깅
- 나는 GCP 에서 VM 인스턴스를 n2-standard-16으로 설치하여 진행하고 있었는데, 처음에 이런 오류가 나왔었다.
Err:10 https://download.docker.com/linux/ubuntu bookworm Release
404 Not Found [IP: 108.138.7.18 443] Reading package lists... Done
E: The repository 'https://download.docker.com/linux/ubuntu bookworm Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
이러한 이유는 lsb_release - cs 의 결과값인 bookworm 에 해당하는 도커 배포판이 없어서 그런 것이다. 알고보니 gcp 에서 vm을 생성할 때의 default 값이 우분투가 아닌 debian으로 생성 되는 것이었다. 운영체제를 변경 후 다시 생성해보자! vm 생성시 운영체제는 [ 부팅디스크 ] - [ 운영체제 ]를 변경해주면 된다.
반응형