서버 docker 환경 구성
- 홈서버(우분투)에 토이프로젝트 배포를 위해 초기 docker 환경을 구성하겠습니다.
- apt 업데이트를 수행해줍니다. 아래 명령어를 수행합니다.
apt는 데비안 계열의 온라인 패키지 설치 도구로, advanced packaging tool 의 약자입니다.
docker 사용할때 필요한 패키지들을 설치해줍니다.
차례대로
sudo apt-get install -y
apt-transport-https : docker-ce 를 다운받을때 주소가 https로 되어 있기 떄문에 https 링크를 통해서 전달 받을때 사용하는 패키지
ca-certificates : 마찬가지로, https로 주고 받을때 필요한 인증서 기능을 제공하는 패키지
curl : api 통신을 위해 사용하는 패키지
gnupg-agent : docker는 기본적으로 gpg 가드라는 패키지 가드를 사용하는데, 이 기능에 대해 지원 받을수있는 agent 패키지
software-properties-common : docker repository에서 정보를 가져와서 레파지토리를 등록하고, 도커를 다운받거나 할때 필요한 패키지docker를 사용하기 위한 key 등록
docker를 가지고 올려면 docker repository 등록이 필요하다.
repository로부터 패키지를 가지고 올때 키링 이라는 걸 통해서 키를 관리한다.
디테일하게 알지는 못하지만, 결과적으로 docker repository에 키를 등록해야하며, apt key를 keyring 아래에 gpg key를 저장해야한다.
key를 등록했을때 warning문구를 보면, apt-key로 관리하는 방식은 deprecated 되었다고 안내가 되고 있다.
여기까지 하고 apt-key fingerprint로 docker가 가지고 있는 key가 출력되는지 확인합니다
4.docker repository 등록
- 너무 길어서 커맨드로 대체
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
위 명령어의 설명은 다음과 같습니다.- echo "deb [arch=$(dpkg --print-architecture) : 현재 시스템의 cpu 아키텍처를 자동으로 가져와서 설정
- signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] : docker 저장소의 패키지를 인증하는 gpg 키를 지정
- https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" : docker 공식 패키지를 다운로드할 저장소 url 설정과 stable 버전 지정
- | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null : 앞에서 생성한 deb 정보를 tee 명령어로 전달하고, 파일을 저장한다. dev/null을 이용해서 터미널 출력은 없애고 파일에만 저장
- docker-ce 설치
- 이미지처럼 입력하면 최신버전이 설치된다.
- 설치가 끝나면 docker 버전 확인해보기
- 이렇게 차례대로 수행하면 sudo를 붙이지 않고 docker version을 입력하면 permission denied 에러가 발생합니다.
- 에러가 발생하는 이유는 기본적으로 도커 엔진은 /var/lib/docker에 설치됩니다. /var/lib/ 경로에 있는 파일들은 기본적으로 root 계정 권한을 가지고 있습니다. 그래서, 권한이 없습니다.
sudo를 붙여서 확인해야 합니다.
- 매번 docker 사용할때 sudo 붙이기 귀찮은데!
docker 그룹에 현재 사용중인 계정을 등록하면 sudo 없이 docker 명령어를 사용할 수 있습니다.
sudo usermod -aG docker [내가 사용하는 계정]
sudo systemctl daemon-reload
sudo systemctl enable docker
sudo systemctl restart docker위에 명령어를 차례대로 입력 후, sudo reboot 혹은 새로운 세션으로 접속하고 docker version을 입력하면 sudo 없이 docker 명령어를 사용할 수 있습니다 ~
'planB' 카테고리의 다른 글
[PlanB] 테스트 코드 작성 중, java contains 이슈 (2) | 2024.11.25 |
---|