IRONSOFTWAREHOME

Linux에서 Docker 및 Portainer 설치

Linux에 Docker 및 Portainer 설치하기

Tim Corey

~18m

모든 것이 운영 체제에 직접 위치해야 하는 것은 아닙니다. SQL Server와 같은 도구는 큰 자원 발자국을 가지고 있으며, 이를 베어 메탈로 실행하면 필요에 관계없이 자원이 소모됩니다. 컨테이너는 이를 해결합니다: 필요할 때 실행하고 필요하지 않을 때 멈춥니다. Docker는 이 워크플로우를 지원하는 엔진이며, Portainer는 CLI 명령의 라이브러리를 외우지 않고도 관리 가능하게 유지하는 경량 GUI입니다.

이 분해는 Tim Corey's Linux 개발 시리즈를 토대로 하여 Ubuntu에서의 전체 설치를 나열합니다: apt 저장소 등록, 엔진 설정, 개인용 기계에서 sudo 필요 제거, Portainer CE를 지속적인 컨테이너로 배포.

1단계: Docker의 apt 저장소 추가

[3:10 - 6:00] Docker 자체를 apt을 통해 설치하기 전에 Docker의 패키지 소스를 등록하고 시스템에 신뢰할 이유를 제공해야 합니다. Docker는 이 모든 작업을 한 번의 복사로 처리하는 실행 가능한 명령 블록을 제공합니다. docs.docker.com으로 이동, 설치 섹션으로 이동한 다음 Ubuntu를 선택하십시오. 'apt 저장소를 사용하여 설치' 아래의 명령이 원하는 것입니다.

그 블록은 일련의 작업을 수행합니다: 필요한 인증서 도구 설치, Docker의 공식 GPG 키 다운로드, 권한 조정 및 레포지토리 주소를 apt 소스 목록에 작성합니다. 문서에서 복사하여 Ctrl+Shift+V을 통해 터미널에 붙여넣어 전체 블록을 한 번에 실행하십시오.

강조할 중요한 점: 새로운 패키지 소스를 맹목적으로 추가하지 마세요. 소스를 설치하기 전에 그것을 신뢰하는지 확인하세요. Docker는 신뢰할 만하고 신뢰할 가치가 있지만 이는 추가하는 모든 소스에 적용되는 원칙입니다. 이 접근 방식은 많은 패키지 관리자들이 기본적으로 수행하는 것보다 실제로 더 엄격합니다; 이는 복잡성이 아닌 기능입니다.

2단계: Docker 엔진 설치

[6:00 - 7:10] 저장소가 등록되면, Docker 설치는 하나의 apt 명령입니다:

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

프롬프트가 나타나면 확인하고, apt가 다운로드 및 설치를 처리합니다. Docker는 부팅 시 자동으로 시작되도로 구성되어, 모든 재시작 후 백그라운드에서 실행됩니다.

모든 작동이 잘 되는지 확인하려면 hello-world 컨테이너를 실행하세요:

sudo docker run hello-world
SHELL

Docker는 이미지를 가져오고, 실행하며, 확인 메시지를 출력합니다. 그 출력은 설치가 정상적으로 작동함을 의미합니다. hello-world 컨테이너는 한 번 실행하고 종료하도록 설계되었습니다; 이는 엔진이 응답하는지를 검증하기 위한 것입니다.

3단계: Docker를 sudo 없이 실행하기 (개인용 기계 전용)

[7:45 - 10:30] 기본적으로 Docker 명령은 컨테이너 관리가 특권 작업이기 때문에 sudo을 필요로 합니다. 공유 서버나 프로덕션 기계에서는 이대로 두세요. 개인 개발 머신의 경우, 스스로 docker 그룹에 추가하면 접두사가 제거됩니다:

sudo usermod -aG docker $USER
SHELL

-aG은 현재 계정을 추가합니다. 대소문자 구분은 중요합니다: $USER은 대문자여야 합니다. 바꾼 것은 로그아웃하고 다시 로그인하기 전까지 효력이 발생하지 않습니다; 전체 시스템 재시작이 그룹 멤버십을 올바르게 적용하는데 단순 로그아웃보다 더 신뢰할 만합니다. 한 번 되면 docker run hello-worldsudo 없이 작동합니다.

이는 편리함과 보안을 맞바꾼 것입니다. 개발용 기계에만 유지하세요.

4단계: Portainer를 위한 볼륨 생성

[11:30 - 12:45] Portainer를 실행하기 전에, 컨테이너 재시작 및 교체 시 데이터를 유지하기 위해 명명된 볼륨을 생성하세요:

docker volume create portainer_data
SHELL

컨테이너는 설계상 임시적이며, 하나를 제거하면 내부에 저장된 모든 것이 소멸됩니다. 볼륨은 Docker가 관리하는 경로에 컨테이너 수명 주기 외부에 존재합니다, 따라서 Portainer의 구성은 제거 및 재구축하더라도 생존합니다.

5단계: Portainer 컨테이너 실행

[12:45 - 14:10] Portainer CE 자체가 Docker 컨테이너입니다. 전체 실행 명령은 다음과 같습니다:

docker run -d -p 9000:9000 --name portainer \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce
SHELL

분석하면: -d은 백그라운드로 남아 있도록 컨테이너를 분리하여 실행합니다. -p 9000:9000은 호스트 포트 9000을 노출시키고 이를 컨테이너 내부의 일치하는 내부 주소로 라우팅합니다. 첫 번째 -v은 Docker 소켓을 마운트하여 Portainer가 다른 컨테이너와 이미지를 볼 수 있게 하며, 제어할 수 있게 합니다. 이렇게 소켓을 연결하는 것은 GUI가 전체 Docker 환경을 읽고 관리할 수 있도록 해줍니다. 두 번째 -v은 방금 생성한 볼륨을 컨테이너 내부의 /data에 연결하여 상태를 지속시킵니다.

portainer/portainer-ce (커뮤니티 에디션)에서 가져옵니다. portainer.io 웹사이트는 유료 Enterprise 티어를 강조하지만, CE는 로컬 및 개인 사용에 대해 무료로 사용 가능합니다.

Portainer UI 탐색

[14:10 - 17:30] 컨테이너가 시작되면 브라우저를 열고 http://localhost:9000으로 이동하십시오. Portainer는 처음 액세스 시 관리자 비밀번호를 만들도록 요청합니다; 12자 이상이어야 합니다. 로그인 후 추가 환경을 추가하지 않고 빠른 설치 마법사를 클릭한 다음, 대시보드에서 로컬 환경을 선택하세요.

홈 뷰는 요약을 보여줍니다: 다운로드된 이미지, 존재하는 컨테이너, 구성된 네트워크 및 사용 중인 볼륨. 각 섹션을 클릭하면 전체 제어를 제공합니다. 이미지 아래에서 설치 중 수행된 두 번의 가져오기에서 hello-world 및 Portainer CE 이미지를 볼 수 있습니다. 컨테이너에서는 hello-world의 두 번 실행이 중지 상태로 Portainer 자체와 함께 나타나며 이는 활성 상태로 실행됩니다.

컨테이너 패널에서 항목을 시작, 중지, 제거할 수 있습니다. 컨테이너를 선택하고 로그를 클릭하면 출력을 나타냅니다. hello-world 항목은 두 번 실행된 익숙한 인사말 문구를 표시합니다. 컨테이너를 다시 시작하고 로그를 확인하면 새로운 출력이 처음 아래에 추가 되었음을 확인할 수 있습니다.

볼륨은 그 마운트 경로와 함께 나열됩니다. portainer_data 항목은 /var/lib/docker/volumes/ 아래에서 엔진이 모든 명명된 볼륨 데이터를 디스크에 저장하는 위치를 보여줍니다.

Portainer vs Docker Desktop

[17:30 - 18:10] Docker Desktop은 GUI와 함께 배포되지만, 상당한 오버헤드를 지니고 있습니다; 이는 실제 워크로드를 위해 시스템 리소스를 확보하고자 하는 Linux 개발 기기에서 중요합니다. Portainer CE는 자체 컨테이너로 실행되며, 훨씬 적은 메모리 및 CPU를 소모합니다. 이미지 및 컨테이너를 탐색, 로그를 읽고, 볼륨을 관리하며, 서비스 시작과 중지를 모든 무게 없이 수행하는 실용적 요구를 충족합니다.

다음에는 무엇이 올까요?

[17:50 - 18:30] Docker 및 Portainer 세트업이 완료되면, 시리즈의 다음 단계는 컨테이너로 SQL Server 실행입니다. 단일 docker run 명령은 이미지를 가져오고 인스턴스를 시작합니다. Portainer 컨테이너 패널에서 세션 종료 시 중단하고 다시 필요할 때 재시작할 수 있습니다. 이 패턴은 연속적으로 실행하기에 비용이 많이 드는 Redis 및 기타 인프라 도구에도 동일하게 적용되지만, 컨테이너화하기에는 간단합니다.

결론

[18:30 - 끝] 요약: Docker의 GPG 키를 사용하여 apt 저장소를 등록하고, apt을 통해 엔진을 설치하며, 필요에 따라 개인 머신에서 사용자를 docker 그룹에 추가하고, Portainer를 위한 명명된 볼륨을 생성하고, 포트 9000에 매핑된 portainer/portainer-ce 컨테이너를 실행하십시오. 그 시점부터, localhost:9000Linux에서 컨테이너 관리를 위한 일상 업무를 GUI로 제공하여 CLI에 손을 대지 않고도 일상 작업을 수행할 수 있게 합니다.

작동 중인 생동감 넘치는 기계 설치를 보고, Tim Corey's YouTube 채널에서 전체 비디오를 시청하세요.

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
부담 없는 무료 상담을 받아보세요
아래 양식을 작성하시거나 sales@ironsoftware.com으로 이메일을 보내주세요.
고객님의 정보는 항상 비밀로 유지됩니다.
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
Iron Software의 고객 로고
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.