Computer >> 컴퓨터 >  >> 체계 >> Linux

Ubuntu Linux에 Docker를 설치하는 방법

Docker는 소프트웨어 엔지니어링 업계를 폭풍으로 몰아넣었으며 소프트웨어 배송 및 배포 방식에 혁명을 일으켰을 뿐만 아니라 엔지니어가 컴퓨터에서 소프트웨어 개발 환경을 설정하는 방식도 변경했습니다.

이 가이드는 이 글을 쓰는 시점에서 Ubuntu의 최신 LTS(장기 지원) 버전인 Ubuntu Linux 20.04(Focal Fossa)에 Docker를 설치하여 시작하는 방법을 보여줍니다.

Docker의 장점

Docker는 애플리케이션을 컨테이너라고 하는 독립 실행형 패키지로 자동화하고 배포할 수 있는 오픈 소스 플랫폼입니다. Docker는 운영 체제 가상화 기술을 사용하지만 가상 머신과 달리 시스템 리소스가 훨씬 가볍습니다.

Docker의 주요 이점은 다음과 같습니다.

  • 비교적 사용하기 쉽고 배우기
  • 일관되고 쉬운 소프트웨어 배포 방법 제공
  • 마이크로서비스 아키텍처와 호환
  • 리소스 사용량이 매우 적음

Docker 소프트웨어 저장소 설정

Docker를 설치하는 방법에는 여러 가지가 있으며 이 가이드에서는 apt 명령 유틸리티를 사용하여 Docker 저장소에서 Docker를 설치하는 방법을 보여줍니다. 이러한 방식으로 Docker를 설치하면 향후 Docker 패키지를 쉽게 업그레이드할 수 있으며 Docker 팀에서 권장하는 접근 방식이기도 합니다.

설치의 첫 번째 단계는 Docker 소프트웨어 저장소를 소프트웨어 소스 목록에 추가하는 것입니다. HTTPS를 통해 Docker 소프트웨어 리포지토리를 사용한 다음 아래 명령을 사용하여 필요한 소프트웨어를 설치합니다.

좋은 방법으로 먼저 사용 가능한 소프트웨어 패키지 목록을 업데이트하십시오.

sudo apt update

그런 다음 apt install을 사용하여 설치에 필요한 모든 종속성을 다운로드합니다. .

sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release

Docker 소프트웨어는 저장소에서 소프트웨어 패키지를 다운로드할 때 통신을 보호하기 위해 GPG라고도 하는 GnuPG를 사용합니다. GPG는 메시지나 데이터를 암호화하는 데 사용되는 PGP(Pretty Good Privacy)의 구현 표준입니다.

공식 Docker GPG 키를 로컬 키링에 추가하려면 다음 명령을 사용하십시오.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Docker의 소프트웨어 리포지토리에는 안정 버전, 테스트 버전 및 야간 릴리스 버전의 세 가지 주요 소프트웨어 릴리스 버전이 있습니다. 이 가이드에서는 Docker의 안정적인 릴리스 버전에 대해 설명합니다.

Docker의 안정적인 저장소 릴리스 버전을 사용하려면 다음 명령어를 실행하세요.

echo "deb [arch=amd64 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

참고 :앞서 언급한 명령은 AMD 아키텍처를 사용하고 있다고 가정합니다. ARM 아키텍처를 사용하는 경우 arch=amd64라는 단어를 바꿀 수 있습니다. 위 명령에서 arch=arm64 또는 arch=armhf 암 하드 플로트를 사용하는 경우.

도커 엔진 설치

이제 Docker 소프트웨어 리포지토리 설정이 완료되었으므로 Docker 컨테이너 관리 및 실행의 핵심인 Docker 엔진 설치를 진행할 수 있습니다. Docker 엔진을 구성하는 다른 중요한 구성 요소로는 Docker 클라이언트, containerd, runc 및 Docker 데몬이 있습니다.

최근에 소프트웨어 소스 목록에 Docker 리포지토리를 추가했으므로 아래 명령을 사용하여 패키지 소스를 업데이트해야 합니다.

sudo apt update

Docker 엔진을 설치하려면 다음 명령을 실행하십시오. 이 명령은 기본적으로 최신 안정 버전의 Docker 엔진을 설치합니다.

sudo apt-get install docker-ce docker-ce-cli containerd.io

특정 버전의 Docker를 설치하려면 먼저 아래 명령을 사용하여 사용 가능한 버전 목록을 확인할 수 있습니다.

apt-cache madison docker-ce
Ubuntu Linux에 Docker를 설치하는 방법

그런 다음 다음 명령을 사용하여 특정 버전의 Docker를 설치할 수 있습니다. 예를 들어 5:20.10.6~3-0~ubuntu-focal을 설치하려면 :

sudo apt-get install docker-ce=5:20.10.6~3-0~ubuntu-focal docker-ce-cli=5:20.10.6~3-0~ubuntu-focal containerd.io

설치 확인

Docker가 성공적으로 설치되었는지 확인하려면 다음 명령을 실행하면 설치된 Docker 엔진의 버전 번호가 출력됩니다.

docker -v

Ubuntu Linux 및 대부분의 Debian 기반 배포판에서 Docker 서비스는 시스템이 부팅될 때 자동으로 시작됩니다.

hello-world를 실행할 수 있습니다. 설치를 테스트할 Docker 이미지입니다. 이미지는 컴퓨터에서 로컬로 사용할 수 없으므로 시스템은 컨테이너 이미지 라이브러리인 Docker Hub에서 이미지를 다운로드합니다. 다음에 이미지를 다시 실행하면 PC에 있는 로컬 복사본이 사용됩니다.

sudo docker run hello-world
Ubuntu Linux에 Docker를 설치하는 방법

루트가 아닌 사용자로 Docker 실행

현재 수퍼유저로만 Docker 컨테이너를 실행할 수 있으므로 sudo 위의 명령에서 사용됩니다. Docker 데몬은 기본적으로 루트 사용자가 소유하고 루트가 아닌 사용자가 sudo를 통해서만 액세스할 수 있는 Unix 소켓에 바인딩됩니다.

수퍼유저 없이 Docker 컨테이너 및 기타 중요한 명령을 실행할 수 있으려면 먼저 docker라는 사용자 그룹을 만들어야 합니다. 그런 다음 컴퓨터의 도커 그룹에 사용자를 추가합니다. 그룹 추가 명령은 Linux에서 사용자 그룹을 관리하는 역할을 합니다.

sudo groupadd docker
sudo usermod -aG docker $USER

그룹 변경을 활성화하려면 아래 명령을 사용하십시오.

newgrp docker

참고 :시스템에서 새로 생성된 그룹 구성원을 인식할 수 있도록 로그아웃했다가 다시 로그인해야 합니다. 다음 명령어를 사용하여 로그아웃할 수 있습니다.

gnome-session-quit
Ubuntu Linux에 Docker를 설치하는 방법

경우에 따라 루트가 아닌 사용자로 Docker 명령을 실행할 수 없으면 시스템을 다시 시작해야 할 수도 있습니다.

도커 제거

Ubuntu Linux에서 Docker 엔진을 제거하거나 제거하려면 다음 명령을 실행하기만 하면 됩니다.

sudo apt remove docker docker-engine docker.io containerd runc

Docker 엔진이 제거되었지만 이미지, 컨테이너, 볼륨 또는 사용자 지정 구성 파일과 같은 Docker와 연결된 다른 파일은 자동으로 제거되지 않습니다. rm 유틸리티를 사용하여 이러한 파일을 삭제할 수 있습니다.

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

Docker 실습

이 가이드는 Ubuntu Linux에서 Docker를 설치하고 구성하는 방법을 보여줍니다. 또한 Docker Hub에서 가져온 간단한 docker 이미지를 실행하는 방법을 보여줍니다.

Docker는 매우 다재다능한 도구이며 소프트웨어 엔지니어링에서 많은 사용 사례가 있습니다. 소프트웨어 엔지니어이거나 DevOps에서 일하는 경우 Docker는 다양한 환경에서 소프트웨어를 배포하는 방식을 단순화하고 소프트웨어 테스트 및 프로토타이핑에 유용합니다.