planB

[planB] docker 초기 환경 구성

caporatang 2025. 2. 13. 16:27
반응형

서버 docker 환경 구성

  • 홈서버(우분투)에 토이프로젝트 배포를 위해 초기 docker 환경을 구성하겠습니다.
  1. apt 업데이트를 수행해줍니다. 아래 명령어를 수행합니다.
    apt는 데비안 계열의 온라인 패키지 설치 도구로, advanced packaging tool 의 약자입니다.
  1. 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에서 정보를 가져와서 레파지토리를 등록하고, 도커를 다운받거나 할때 필요한 패키지

  2. 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
    위 명령어의 설명은 다음과 같습니다.

    1. echo "deb [arch=$(dpkg --print-architecture) : 현재 시스템의 cpu 아키텍처를 자동으로 가져와서 설정
    2. signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] : docker 저장소의 패키지를 인증하는 gpg 키를 지정
    3. https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" : docker 공식 패키지를 다운로드할 저장소 url 설정과 stable 버전 지정
    4. | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null : 앞에서 생성한 deb 정보를 tee 명령어로 전달하고, 파일을 저장한다. dev/null을 이용해서 터미널 출력은 없애고 파일에만 저장

  1. docker-ce 설치
  • 이미지처럼 입력하면 최신버전이 설치된다.
  1. 설치가 끝나면 docker 버전 확인해보기
  • 이렇게 차례대로 수행하면 sudo를 붙이지 않고 docker version을 입력하면 permission denied 에러가 발생합니다.
  • 에러가 발생하는 이유는 기본적으로 도커 엔진은 /var/lib/docker에 설치됩니다. /var/lib/ 경로에 있는 파일들은 기본적으로 root 계정 권한을 가지고 있습니다. 그래서, 권한이 없습니다.
    sudo를 붙여서 확인해야 합니다.
  1. 매번 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