Ubuntu에 Docker 설치(4가지 쉬운 방법)
게시 됨: 2022-12-05Docker는 컨테이너로 알려진 패키지에서 소프트웨어를 개발하고 배포하는 데 널리 사용되는 도구입니다. Ubuntu는 가장 널리 사용되는 Linux 배포판 중 하나이며 Docker가 잘 지원하는 운영 체제입니다.
Ubuntu에 Docker를 설치하면 Ubuntu의 운영 체제 커널을 공유하는 경량 가상 머신을 사용하여 개발 프로젝트에 이상적인 플랫폼이 만들어집니다. 이 자습서에서는 이를 실현하는 4가지 방법을 설명하여 시작할 것입니다.
도커에 대한 추가 정보
Docker는 모든 Docker 호스트에서 애플리케이션을 빌드하고 실행할 수 있도록 하여 애플리케이션을 이식할 수 있도록 지원합니다. 컨테이너 이미지는 노트북에서 클라우드에 이르기까지 Docker를 사용할 수 있는 모든 곳에서 수정 없이 사용할 수 있습니다. 이는 런타임 환경 간의 차이점을 제거하여 개발자 경험을 단순화합니다. 컨테이너 형식은 또한 여러 물리적 시스템에 쉽게 배포할 수 있으므로 변화하는 수요에 대응하여 애플리케이션을 쉽게 확장할 수 있습니다.
Docker에는 컨테이너 이미지가 Docker Hub 및 기타 공개 레지스트리에서 가져온 것이든, 자체 Dockerfile에서 가져온 것이든 관계없이 컨테이너 이미지를 빌드하고 실행하는 데 필요한 모든 것이 포함되어 있습니다.
Ubuntu에 Docker 설치 준비하기
Ubuntu 버전 18.04, 20.04, 21.10 및 22.04에 최신 Docker 릴리스를 설치할 수 있습니다. x64_64/AMD64, ARMhf, ARM64 및 S390x 아키텍처가 지원됩니다.
Docker를 설치할 수 있는 방법에는 여러 가지가 있으며 선택은 필요한 기능과 선호하는 패키지 관리 접근 방식에 따라 달라집니다. 이 가이드에서 가능한 모든 옵션을 배우게 됩니다.
Docker 플레이버 선택
Linux의 Docker는 전통적으로 터미널 전용이었습니다. 작동하는 설치는 컨테이너를 실행하는 데몬인 Docker 엔진과 데몬과 상호 작용하기 위한 docker
명령줄 인터페이스(CLI)로 구성됩니다.
Docker Desktop은 Docker를 사용하는 다른 방법입니다. 역사적으로 Windows 및 Mac에서만 사용할 수 있으며 2022년 5월에 Linux용으로 출시되었습니다. Ubuntu의 Docker Desktop에는 AMD64 프로세서와 Ubuntu 21.10 또는 22.04가 필요합니다. 컨테이너 관리를 위한 그래픽 인터페이스, 통합 Kubernetes 클러스터 및 타사 확장 지원을 제공합니다. Docker Desktop은 docker
및 Docker Compose CLI도 제공합니다.
Docker Desktop은 가상 머신을 사용하여 컨테이너를 실행한다는 점에서 Docker Engine과 다릅니다(Windows 및 MacOS 사용자에게 Docker Desktop이 필요한 이유입니다). Ubuntu에서 두 가지 맛을 나란히 사용할 수 있지만 docker
CLI 버전 간에 충돌이 있을 수 있습니다. 하나를 선택해서 붙이는 것이 좋습니다. 터미널에 익숙하고 최상의 지원과 성능을 원하는 경우 Docker 엔진을 선택하십시오. Docker Desktop의 VM은 약간 무거워지지만 통합 UI를 원하거나 Kubernetes를 사용할 계획이라면 더 나은 선택입니다.
Ubuntu에 Docker 엔진 설치
Docker 엔진은 Ubuntu에서 Docker를 실행하는 표준 방법입니다. 로컬 Ubuntu Desktop 시스템에서 Ubuntu Server 클라우드 호스트에 이르기까지 지원되는 모든 버전 및 환경에서 작동합니다. 계속하기 전에 Ubuntu 릴리스 18.04 이상을 실행 중인지 확인하십시오.
Docker 엔진에는 3가지 설치 방법이 있습니다.
- 공식 Ubuntu
apt
저장소 - 독립 실행형 데비안 패키지(
.deb
) - 자동 설치 스크립트
Ubuntu apt
저장소인 옵션 1이 가장 일반적으로 사용됩니다. 패키지 목록에 Docker를 추가하므로 apt upgrade
를 실행하여 향후 업데이트를 쉽게 설치할 수 있습니다. 옵션 2는 자동 업데이트를 지원하지 않지만 에어갭 오프라인 시스템에 Docker를 설치하는 데 이상적입니다. 자동 설치 스크립트는 시작하는 가장 간단한 방법이지만 개발용으로만 구성되어 있습니다. Docker는 프로덕션 환경에서 사용하지 말 것을 권장합니다.
생산 시스템으로 작업 중이거나, 쉬운 업데이트를 원하거나, 모든 환경에서 동일한 메커니즘을 사용해야 하는 경우 apt
리포지토리를 사용하십시오.
자신의 컴퓨터에서 Docker를 실험하면서 빠른 설정 경험을 원하는 경우 자동 설치 스크립트를 사용하십시오.
1. apt 리포지토리를 사용하여 Docker 설치
Docker는 자체 apt
저장소에 패키지를 게시합니다. 이 리포지토리를 apt
소스 목록에 추가해야 합니다. 그렇지 않으면 apt
설치에서 Docker 패키지를 찾을 수 없습니다.
기존 패키지 목록을 업데이트하고 다음 단계에 대한 일부 종속 항목을 설치하여 시작하십시오. ca-certificates
, curl
, gnupg
및 lsb_release
도구는 시스템의 올바른 Docker apt
리포지토리 세부 정보 및 서명 키를 다운로드하는 데 사용됩니다. 이러한 패키지가 이미 있을 수 있지만 사용 가능한지 확인하는 것이 나쁠 것은 없습니다.
$ sudo apt update $ sudo apt install ca-certificates curl gnupg lsb-release
다음으로 Docker의 GPG 키링을 apt에 등록합니다. 이렇게 하면 apt
가 설치한 Docker 패키지의 유효성을 검사할 수 있습니다.
$ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg $ sudo chmod a+r /etc/apt/keyrings/docker.gpg
curl
명령은 Ubuntu용 Docker의 GPG 키를 다운로드하여 표준 OpenGPG 인코딩으로 다시 변환하고 apt의 키링 디렉토리에 저장합니다. chmod
는 apt
가 안정적으로 감지할 수 있도록 키링 파일에 대한 권한을 설정하는 데 사용됩니다.
이제 시스템에 Docker 패키지 소스를 추가할 수 있습니다. 다음 명령을 실행합니다.
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
이것은 쉘 대체를 사용하여 AMD64 또는 ARM64와 같은 시스템 아키텍처를 자동으로 감지하고 적절한 패키지 목록을 다운로드합니다. 앞서 추가한 GPG 키를 사용하여 확인하게 됩니다. 저장소는 apt /etc/apt/sources.list.d directory.
apt
가 Docker 패키지가 있음을 알 수 있도록 패키지 목록을 다시 업데이트하십시오.
$ sudo apt update
이제 apt install
명령을 사용하여 Docker의 구성 요소를 시스템에 추가할 수 있습니다. Docker Community Edition(CE)의 최신 버전을 설치하게 됩니다. 세 가지 패키지를 설치할 수 있습니다.
-
docker-ce
: 도커 엔진 데몬. -
docker-ce-cli
: 상호 작용할 Docker CLI입니다. -
containerd.io
: 컨테이너를 시작하고 실행하는 containerd로 알려진 컨테이너 런타임입니다.
$ sudo apt install docker-ce docker-ce-cli containerd.io
2. Debian 패키지를 사용하여 Docker 설치
공식 .deb
패키지는 설정이 간단하지만 각각의 새 릴리스를 수동으로 다운로드하여 설치해야 합니다. 패키지는 간단한 파일 서버에서 호스팅됩니다. 먼저 Docker의 릴리스 정보 페이지로 이동하여 20.10.20과 같은 사용 가능한 최신 버전 번호를 찾습니다. 다음으로 containerd의 GitHub 페이지로 이동하여 버전 번호도 확인합니다. 1.6.8처럼 보일 것입니다.
이제 다음 명령 시퀀스를 실행하여 플랫폼에 적합한 패키지 세트를 다운로드할 수 있습니다. <DOCKER_VERSION>
및 <CONTAINERD_VERSION>
을 각각 현재 Docker 및 containerd 버전 번호로 바꿉니다.
$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-ce_<DOCKER_VERSION>~3-0~ubuntu-focal_amd64.deb -o docker-ce.deb $ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-ce-cli_<DOCKER_VERSION>~3-0~ubuntu-focal_amd64.deb -o docker-ce-cli.deb $ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/containerd.io_<CONTAINERD_VERISON>-1_amd64.deb -o containerd.deb
브라우저에서 Ubuntu 버전의 디렉토리 목록을 방문하여 파일을 다운로드하고 사용 가능한 모든 릴리스를 검사할 수도 있습니다.
Docker CE, CLI 및 containerd 패키지를 다운로드했으면 다음 명령을 사용하여 설치합니다.
$ sudo apt install ./docker-ce.deb ./docker-ce-cli.deb ./containerd.deb
위에 제공된 스크립트를 사용하지 않고 패키지를 수동으로 다운로드한 경우 파일 이름을 조정하십시오.
3. 설치 스크립트를 사용하여 Docker 설치
Docker의 편리한 스크립트는 모든 Docker 구성 요소의 설치를 자동화합니다. 비대화형이므로 시스템이 준비되는 동안 편히 앉아서 기다릴 수 있습니다.
먼저 스크립트를 다운로드합니다.
$ curl -fsSL https://get.docker.com -o get-docker.sh
이제 루트 권한으로 스크립트를 실행합니다.
$ sudo sh get-docker.sh Executing docker install script ...
스크립트가 완료될 때까지 기다리십시오. Docker가 설치되었음을 보여주는 확인 메시지가 표시되어야 합니다.
스크립트는 하나의 크기에 맞는 모든 솔루션을 의미합니다. 스크립트 소스를 직접 수정하지 않고는 기능을 사용자 정의할 수 없습니다. 또한 종속성을 최신 버전으로 가져오지 않으므로 Docker 업데이트를 수행하도록 설계되지 않았습니다.
Docker 엔진이 Ubuntu에서 작동하는지 확인
어떤 설치 방법을 사용하든 컨테이너를 시작하여 모든 것이 제대로 작동하는지 확인해야 합니다.
$ sudo docker run hello-world
Docker 클라이언트가 Docker Hub 리포지토리에서 컴퓨터로 hello-world:image
를 가져오는 것을 볼 수 있습니다.
Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 2db29710123e: Pull complete Digest: sha256:7d246653d0511db2a6b2e0436cfd0e52ac8c066000264b3ce63331ac66dca625 Status: Downloaded newer image for hello-world:latest
그러면 새 컨테이너가 자동으로 시작됩니다. "hello-world" 시작 이미지는 Docker에 대한 몇 가지 기본 정보를 출력한 다음 즉시 종료하는 간단한 명령을 실행하도록 구성됩니다.
Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.
위에 표시된 출력을 보면 Docker를 사용할 준비가 된 것입니다. 데몬은 Docker Hub에서 hello-world:latest 이미지를 성공적으로 가져오고 이를 사용하여 컨테이너를 시작했습니다. "Hello from Docker" 줄 이후의 모든 내용은 컨테이너 내부의 프로세스에 의해 방출되었습니다.
Ubuntu에서 Docker 엔진 권한 설정
Docker 엔진을 새로 설치하려면 일반적으로 docker
CLI 명령을 실행하기 위한 루트 권한이 필요합니다. 각 명령에 sudo
접두사를 붙여야 하는데 이는 불편합니다.
위의 단계를 사용하여 Docker Engine을 설치한 후 docker
그룹에 자신을 추가하면 이 요구 사항을 피할 수 있습니다. 이 선택적 변경은 sudo
없이 일반 사용자로 docker
명령을 실행할 수 있는 권한을 부여하여 CLI 환경을 단순화합니다.
docker
사용자 그룹이 있는지 확인합니다.
$ sudo groupadd docker
그런 다음 자신을 추가하십시오.
$ sudo usermod -aG docker $USER
이전에 sudo
로 docker
명령을 실행한 경우 ~/.docker
디렉토리에서 권한을 수정해야 합니다.
$ sudo chown $USER:$USER /home/$USER/.docker -R $ sudo chmod g+rwx $HOME/.docker -R
이렇게 하면 자신의 사용자 계정이 디렉토리의 파일을 읽고 쓸 수 있습니다.
시스템에서 로그아웃했다가 다시 로그인하면 새 그룹 구성원 자격이 적용됩니다. sudo
없이 docker
명령을 실행해 보십시오.
$ docker run hello-world
이 설치 후 단계는 Ubuntu 설정 프로세스의 Docker를 완료합니다. 데몬은 이미 자동으로 시작되도록 구성되어 있으므로 수동으로 서비스를 설정할 필요가 없습니다. 고급 설치를 계획 중인 경우 사용자 지정 네트워킹, 로깅 및 볼륨 스토리지 관리를 구성하는 방법에 대한 지침은 Docker 사용자 설명서를 참조하십시오.
Ubuntu 설치에 Docker Compose 추가
Docker Compose는 여러 컨테이너를 사용하는 애플리케이션으로 더 쉽게 작업할 수 있게 해주는 인기 있는 Docker 동반 도구입니다. docker
CLI는 각 명령으로 하나의 컨테이너만 대상으로 하지만 docker compose
는 각 작업으로 여러 컨테이너를 시작하고 중지할 수 있습니다. 이렇게 하면 별도의 프런트엔드, 백엔드 및 데이터베이스 서비스가 있는 시스템 관리가 간소화됩니다.
이제 Docker Compose를 docker
CLI의 일부로 사용할 수 있습니다. Compose V2 플러그인은 공식 설치 스크립트를 사용하여 Docker를 설치할 때 포함됩니다. 해당 방법을 사용한 경우 apt
에서도 사용할 수 있습니다.
$ sudo apt install docker-compose-plugin
또는 최신 .deb
아카이브를 다운로드하여 수동으로 설치할 수 있습니다.
$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-compose-plugin_2.6.0~ubuntu-focal_amd64.deb -o docker-compose-plugin.deb $ sudo apt install -i ./docker-compose-plugin.deb
docker compose version
명령을 사용하여 Compose가 작동하는지 확인합니다.
$ docker compose version Docker Compose version v2.6.0
우분투에 도커 데스크톱 설치
Docker Engine은 CLI 전용 환경으로 제한되지만 Docker Desktop은 그래픽 관리 인터페이스, 기본 제공 Kubernetes 지원 및 컨테이너 워크플로를 단순화하는 데 도움이 되는 선택적 타사 확장을 제공합니다. 자신의 워크스테이션에서 사용 편의성을 찾고 있을 때 탁월한 선택입니다.
Docker Desktop을 설치하려면 먼저 apt
를 사용하여 몇 가지 종속성을 설치합니다.
$ sudo apt update $ sudo apt install ca-certificates curl gnupg lsb-release
그런 다음 다음 명령 집합을 실행하여 Docker의 apt
리포지토리를 추가합니다. Docker Desktop은 리포지토리에 포함되어 있지 않지만 그 안에 있는 패키지는 Desktop의 Debian 아카이브에서 종속 항목으로 참조됩니다.
$ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg $ sudo chmod a+r /etc/apt/keyrings/docker.gpg $ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null $ sudo apt update
curl
명령은 Ubuntu용 Docker의 GPG 키를 다운로드하여 표준 OpenGPG 인코딩으로 다시 변환하고 apt
keyring 디렉토리에 저장합니다. chmod
는 apt
가 안정적으로 감지할 수 있도록 키링 파일에 대한 권한을 설정하는 데 사용됩니다.
설명서의 링크에서 Docker Desktop Debian 아카이브를 다운로드합니다. 이렇게 하면 Linux용 Docker Desktop의 안정적인 최신 릴리스가 제공됩니다. apt
를 사용하여 다운로드한 버전 번호로 대체하여 패키지를 설치합니다.
$ sudo apt install ./docker-desktop-4.11.0-amd64.deb
이제 Docker Desktop이 앱 시작 관리자에 표시됩니다. 실행 프로그램을 사용하여 Docker Desktop을 시작하고 UI를 엽니다. 터미널에서도 docker
, docker compose
및 kubectl
명령을 실행할 수 있습니다. 또한 애플리케이션은 현재 Docker Desktop 상태를 표시하고 몇 가지 빠른 작업을 수행할 수 있는 메뉴를 셸 트레이에 추가합니다.
Docker Desktop을 처음 실행하면 서비스 계약에 동의하라는 메시지가 표시됩니다. 동의하는 경우 동의 버튼을 누르고 Docker Desktop이 가상 머신을 시작할 때까지 기다립니다.
잠시 후 대시보드가 로드됩니다. 긴 터미널 명령을 피하면서 인기 있는 이미지에서 새 컨테이너를 만드는 바로 가기를 제공합니다.
DevKinsta: WordPress용 Docker 데스크탑
Docker 기반 위에 구축된 특수 솔루션은 특정 기술에 대해 훨씬 더 쉬운 경험을 제공합니다. DevKinsta는 Docker를 사용하여 WordPress 사이트를 완전히 격리하고 보호하는 WordPress 테마 및 플러그인을 구축하기 위한 무료 로컬 개발 도구입니다. 서버를 직접 설정하지 않고도 새 WordPress 프로젝트를 빠르고 간단하게 시작하고 사용자 지정할 수 있습니다. 준비가 되면 Kinsta 플랫폼으로 직접 푸시하여 라이브 사이트를 배포할 수 있습니다.
MacOS, Windows 및 Ubuntu에 DevKinsta를 설치할 수 있습니다.
요약
Docker는 대부분의 개발자가 컨테이너 사용을 시작하는 방법입니다. Docker Engine 또는 새로운 Docker Desktop으로 Ubuntu 시스템에 Docker를 쉽게 설치할 수 있습니다. Docker를 설치하면 컨테이너를 구축하고 실행할 수 있는 모든 준비가 완료되어 개발을 간소화하고 환경 간 불일치를 줄일 수 있습니다.
WordPress 테마 및 플러그인을 개발하는 경우 DevKinsta는 로컬 개발 환경 생성 및 사이트 배포를 단순화할 수 있습니다.