VM서버에 Docker 설치하기, 기본 리눅스(Ubuntu) 명령어

GeungBin·2025년 2월 13일

company

목록 보기
3/5

현재 상태 : Azure에 VM으로 Ubuntu OS 서버를 올린 상태
해야할 일 : VM에 Docker 설치
하는 이유 :

  • 애플리케이션 배포 및 관리 용이 : 프로젝트와 관련된 모든 종속성을 하나의 이미지로 묶어서 배포. 다른환경에서도 일관되게 배포가능. 또한 컨테이너화 되었기 때문에 이식성이 뛰어나 VM을 다른 환경으로 이동하거나 복제할 때도 유리함.
  • 리소스 최적화 : 가벼운 가상화 기술. 더 적은 자원으로 실행 가능.
  • DevOps 및 CI/CD 파이프라인 : DevOps 환경에서 매우 유용. 자동화 연동하여 효율적으로 배포 관리 가능. 나는 Azure DevOps를 사용할 계획이기 떄문에 Docker가 적합.
  • 기존 인프라와의 일관성 유지 : 사내 인프라가 VM 기반으로 구성되어 있기 때문
  • Azure에서 Docker를 사용하는 가장 일반적인 방법은 Azure VM에 Docker를 설치하는 것입니다. VM을 사용하면, Docker를 실행할 수 있는 완전한 관리형 가상 머신 환경을 제공

나의 수준 : 리눅스 명령어는 파일 찾기, 삭제, 이동 밖에 못함
SSH 접속 툴 : MobaXterm

1. 현재 패키지 목록 최신화

sudo apt update && sudo apt upgrade -y 
  • sudo : root(관리자) 권한으로 실행하는 명령어
  • apt : 패키지 관리 도구. Ubuntu에서 sw설치, 업데이트 ,삭제 등 관리
  • update : 사용하는 패키지 목록 최신 상태로 업데이트.
  • && : 두개의 명령어 순차적으로 실행. 첫번째 명령어 성공 시, 두 번째 명령어 실행.
  • upgarde : 이미 설치된 패키지들을 최신 버전으로 업그레이드.
  • -y : 명령어 실행시 return 되는 confirm (~ 하시겠습니까?)에 자동으로 yes.

2. Docker에 의존성 패키지 설치

sudo apt install -y ca-certificates curl gnupg
  • apt install : 후술되는 패키지 설치
  • ca-certificates : SSL/TLS 인증서들을 포함하는 패키지 (HTTPS 통신 시 필요)
  • curl : URL에서 데이터를 다운로드하는 툴 (Docker 설치 시 외부 리소스를 가져오는 데 필요)
  • gunpg : GPG 키를 관리하는 패키지 (보안 패키지를 설치할 때 인증 필요)

3. Docker 공식 GPG 키 추가

🔑 GPG 키
GPG(GNU Privacy Guard) 키는 패키지의 출처와 무결성을 검증하는 데 사용되는 암호화 키.
리눅스에서 소프트웨어를 설치할 때 GPG 키를 이용해 패키지의 서명이 올바른지 검증하는 것.

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc > /dev/null
sudo chmod a+r /etc/apt/keyrings/docker.asc

💡해석 : Docker 공식 GPG 키를 /etc/apt/keyrings/docker.gpg 파일에 저장하고 모든 사용자가 읽을 수 있도록 변경. -> apt가 GPG키를 사용할 수 있음.

📝명령어 분석

sudo install -m 0755 -d /etc/apt/keyrings
  • install : 디렉토리 생성 명령어
  • -m 0755 : 생성된 디렉토리 권한을 0755 ( 소유자는 읽기/쓰기/실행, 다른 사용자는 읽기/실행만 가능) 으로 설정
  • -d /etc/apt/keyrings : /etc/apt/keyrings 경로에 디렉토리를 생성한다는 옵션
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc > /dev/null
  • curl -fsSL : Docker의 GPG 키를 다운로드하는 명령어
  • f → 실패 시 에러 메시지를 출력하지 않음.
  • s → 진행 상태를 표시하지 않음 (silent mode).
  • S → -s 사용 시 오류 메시지를 표시함.
  • L → 리디렉션이 있을 경우 따라감.
| sudo tee /etc/apt/keyrings/docker.asc > /dev/null
  • | (파이프) 기호 : 앞에 있는 명령어의 출력 결과를 뒤에 있는 명령어의 입력으로 전달
  • tee → 표준 입력을 받아 파일로 저장하면서 동시에 출력하는 명령어.
  • /etc/apt/keyrings/docker.gpg → 이 파일에 GPG 키 저장.
  • > /dev/null → 터미널에 출력되는 내용을 버림. (화면에 출력되지 않도록 설정)
sudo chmod a+r /etc/apt/keyrings/docker.gpg
  • chmod a+r → 모든 사용자에게 읽기 권한을 부여 (a = all, r = read).
  • /etc/apt/keyrings/docker.gpg → 이 파일의 권한을 변경.

4. Docker 패키지 저장소 Ubuntu에 추가

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update

💡해석 :
Docker 저장소 정보를 생성하여 파일로 저장. Docker설치 준비 완료.


📝명령어 분석

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  • echo: 문자열을 출력하는 명령어
  • "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" : Docker 공식문서에서 제공하는 저장소를 추가하기 위한 명령어

5. Docker 설치

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Docker 및 Docker Compose 플러그인까지 한 번에 설치


6. Docker 서비스 시작 및 자동 실행 설정

sudo systemctl enable --now docker

Docker 데몬을 즉시 실행하고, VM 재부팅 시 자동 시작되도록 설정


7. Docker 권한에 현재 사용자 추가

sudo usermod -aG docker $USER

8. 설치 확인

docker --version

설치된 Docker 버전 확인


9. Docker 그룹에 사용자 추가

sudo groupadd docker  # Docker 그룹이 없으면 생성 (이미 있으면 무시됨)
sudo usermod -aG docker $USER  # 현재 사용자를 docker 그룹에 추가
newgrp docker
  • usermod : 사용자 계정 수정 명령어
  • -G docker : docker 그룹에 사용자를 추가
  • $USER : 현재 로그인한 사용자
  • newgrp : 변경사항 즉시 적용

10. 실행

docker run hello-world

테스트 컨테이너 실행 (정상 실행되면 설치 완료!)

갈길이 멀다
다음은 웹서버랑 개발환경 서버에 설치하고 프로젝트 배포하기~

profile
My potential is limitless!

0개의 댓글