제퍼넷 로고

Docker 기본 사항 시작하기

시간

개요

"코드를 컨테이너화하여 전 세계로 배송해 봅시다!위의 인용문을 읽으면 이것이 모두 무엇을 의미하는지 생각해야 합니다. 글쎄, 내 친구, 이것이 바로 Docker입니다. 예를 들어 설명하겠습니다.

Harish와 Lisa가 같은 프로젝트에서 작업하는 두 사람이지만 서로 다른 두 시스템(예: Windows 및 Mac)에서 작업한다고 가정해 보겠습니다. 수정을 위해 동일한 코드를 공유해야 하는 경우가 많습니다. 그러나 종속성 불일치로 인해 가상 머신/VM을 사용해야 합니다. VM은 느리고 리소스를 많이 사용하므로 많은 디버깅 경험이 필요합니다. 그렇다면 이들을 위한 해결책은 무엇일까요?

대답은 그들이 포장할 수 있다는 것입니다/컨테이너화하다 코드를 모든 종속성과 공유하고 공유합니다. 파일을 받으면 소스에서 빌드해야 합니다. 모든 것이 애플리케이션 계층의 최상위에서 실행되기 때문에 크로스 플랫폼화가 가능합니다.

위의 작업을 수행하는 데 사용되는 도구는 다음과 같습니다. 도커, 모든 개발자가 알아야 할 사항입니다. 이 기사에서는 Docker를 사용하는 데 필요한 모든 필수 사항을 알려줍니다. 예상되는 사항은 다음과 같습니다.

학습 목표

1. docker의 기본 사항, 작동 방식 및 필수 구성 요소에 대해 알아봅니다.

2. 여러 운영 체제에 설치합니다.

3. 초보자로서 시작하려면 모든 Docker CLI 명령을 배우십시오.

3. 첫 번째 도커 이미지를 실행하기 위해 배운 지식을 적용합니다.

3. 실제 사례 시나리오를 복제하여 개발자로서 실생활에서 사용하는 방법을 이해합니다.

4. 도커를 원활하고 오류 없이 사용하기 위한 팁과 요령.

 이 기사는 데이터 과학 Blogathon.

  1. 4.2 프로젝트 구조
    4.3 웹 앱 구축(진입점 및 선택 사항)
    4.4 도커 파일 쓰기
    4.5 커스텀 Docker 이미지 빌드
    4.6 커스텀 도커 컨테이너 실행하기
    4.7 확인
  2. 결론
  3. 추가 리소스

Docker는 무엇을 의미합니까?

Docker는 애플리케이션을 빌드, 실행 및 공유하는 데 도움이 되는 오픈 소스 플랫폼입니다. 가볍고 빠르고 효율적이며 로컬 개발 기능이 있어 경쟁사보다 우위에 있습니다.

종속성 설치, 포트 노출, 환경 변수 설정 등과 같은 반복적인 개발 작업을 제거하여 개발을 보다 관리하기 쉽고 예측 가능하며 효율적으로 만듭니다.

기본적으로 Docker는 3가지 구성 요소로 구성됩니다.

  • 도커 파일 – 청사진/도커 이미지 생성을 위한 서면 지침.
  • 이미지 – Docker 컨테이너를 실행하기 위한 환경의 변경 불가능한 스냅샷입니다.
  • 컨테이너 – 실행 중인 프로세스

그것이 어떻게 작동하는지 봅시다.

당신은 작성하여 시작 도커 파일 환경을 재구축하기 위한 코딩된 지침이 포함되어 있습니다. 이들은 불립니다 도커 이미지.

이제 이러한 이미지를 업로드/ 공개/비공개 레지스트리에 저장하고 이미지 세부 정보를 공유할 수 있습니다.

마지막으로 누구나 해당 이미지를 가져와 인스턴스를 시작할 수 있습니다. 용기. 흥미로운 사실은 여러 컴퓨터에서 여러 컨테이너를 실행할 수 있다는 것입니다.

다음은 프로세스를 더 잘 이해하기 위한 이미지입니다.

도커

Docker 구성 요소 분석

이 외에도 Docker에는 두 가지 구성 요소가 더 있습니다. 도커 CLI 도커 데스크탑. 컨테이너와 보다 세부적으로 상호 작용하는 방법으로 생각하십시오.

Docker CLI는 개발자가 다음을 수행할 수 있는 명령줄 도구입니다. 빌드, 실행정지 이미지 docker 데몬(아이디어, 네트워크, 컨테이너/프로세스 및 볼륨에 대한 Docker의 기본 요청 및 API 처리기) 사용.

반면에 Docker 데스크톱은 모든 컨테이너(프로세스)를 더 잘 시각화하여 내부에서 진행되는 작업을 더 잘 상상할 수 있는 GUI입니다. docker 허브 및 docker-swarm CLI 명령에 대한 액세스를 제공하고 다음을 수행할 수 있습니다. 실행, 일시 중지 or 중지 컨테이너 – 초보자에게 더 좋습니다.

도커
출처: 도커 데스크탑

Docker를 PC에 설치하는 방법은 무엇입니까?

시작하는 가장 쉬운 방법은 docker 명령을 실행하는 데 필요한 CLI와 데몬을 백엔드에 설치하는 docker desktop을 설치하는 것입니다. 방법은 다음과 같습니다.

참고 : 원활한 진행을 위해 계정을 생성해주시기 바랍니다. 그것은 무료입니다!

Windows의 경우

  1. Docker Desktop For Windows 웹 사이트로 이동하십시오.
  2. 를 클릭하십시오 윈도우용 도커 버튼을 누르고 설치 파일을 다운로드합니다.
  3. 이용약관에 동의합니다. 나머지 설치 가이드를 따라하면 완료됩니다.
  4. 데스크탑 애플리케이션을 열고 튜토리얼을 진행하십시오. 적극 추천합니다!

다운로드 페이지에 나열된 시스템 요구 사항을 충족해야 합니다.

Mac의 경우

  1. Docker Desktop For Mac 웹 사이트로 이동하십시오.
  2. 칩 유형("Intel" 또는 "Apple Silicon")에 따라 다운로드 버튼을 클릭합니다.
  3. 이용약관에 동의합니다. 나머지 설치 가이드를 따라하면 완료됩니다.
  4. 데스크탑 애플리케이션을 열고 튜토리얼을 진행하십시오. 적극 추천합니다!

Linux의 경우

불행히도 프로세스는 Linux에서 더 간단할 수 있지만 그렇지 않습니다. KVM(Kernel Virtual Machine) 방식을 사용하여 Docker를 설치합니다. 이렇게 하면 사용자 지정 Docker VM(desktop-Linux)이 로드되어 Linux용 Docker Desktop에 배포된 이미지 및 컨테이너를 사용할 수 없게 됩니다.

그럼에도 불구하고 여전히 컴퓨터에 Docker-Desktop을 설치하려면 Install on Linux | 튜토리얼 가이드를 따르십시오. 도커 페이지.

다음은 데스크탑의 모양에 대한 스냅샷입니다.

도커

Docker를 설치했으면 이제 사용할 차례입니다. 가자!

Docker 사용의 기본 이해

Docker를 사용하기 전에 몇 가지 사항을 수정해야 합니다. 워크플로 중에 오류가 발생하지 않도록 그렇게 하십시오.

사전 요구 사항(WSL 및 Docker Daemon)

Windows 사용자의 경우 Windows 하위 시스템 Linux (WSL)은 자습서를 따라야 합니다. WSL을 설치하려면 관리자 권한으로 터미널을 열고 다음 명령을 실행합니다.

설치할 것이다

그러면 최신 우분투 버전의 Linux가 설치됩니다.

다음으로 Docker Daemon을 사용하려면 docker 데스크탑을 열고 고래 아이콘이 녹색으로 바뀔 때까지 기다립니다. 이제 창을 최소화하고 따라해보세요 :)

이미지 가져오기

Docker의 기본 용도는 이미지와 컨테이너를 사용하여 환경을 복제하는 것입니다. 이제 일부 이미지(이 경우 Nginx)를 가져오는 것으로 시작하겠습니다.

컨테이너를 가져오려면 다음을 사용할 수 있습니다.

도커 풀 .

이렇게 하면 도커 허브에서 이미지 이름의 최신 컨테이너를 가져옵니다.

이제 Nginx 이미지를 가져올 때 코드는 다음과 같습니다.

도커 풀 nginx

사용자 지정 버전을 추가하려면 버전을 플래그로 지정해야 합니다. 예를 들어 다음은 Nginx 1.23 버전을 가져옵니다.

각각 특정 이미지에 해당하는 여러 플래그가 있습니다. 다른 버전 태그에 액세스할 수 있습니다. 여기에서 지금 확인해 보세요..

다른 컨테이너에 대한 태그에 액세스하려면 다음으로 이동하십시오. 도커 허브 웹사이트에서 원하는 이미지를 선택하고 태그 아래를 확인합니다.

다음은 스냅샷입니다.

도커
태그를 확인하십시오. 

모든 것이 제대로 작동하는지 확인하려면 다음을 실행할 수 있습니다.

도커 이미지

출력은 다음과 같습니다.

코드 출력

이렇게 하면 로컬 저장소에 나열된 모든 이미지가 제공됩니다(예, 이미지를 로컬에 저장하고 컨테이너!)

다음으로 컨테이너를 실행해 보겠습니다.

컨테이너 실행

이미지(컨테이너)를 실행하려면 다음 명령을 입력합니다.

docker run -d -p 8080:80 --name 컨테이너 이름 nginx

다음은 실행하는 동안 알아야 할 몇 가지 사항입니다.

  • docker run :- 컨테이너 및 도커 네이티브를 실행하는 기본 명령
  • -d:- 이 플래그는 터미널에 분리된 백엔드에서 컨테이너를 실행하도록 지시합니다(생명의 은인!)
  • -p:- Docker가 컨테이너에 사용할 포트를 노출할 수 있는 수단입니다. 알다시피 8080은 포트 80에서 로컬 호스트의 기본값입니다.
  • –name:- 이 태그를 사용하면 사용자가 쉽게 탐색할 수 있도록 컨테이너에 사용자 지정 이름을 지정할 수 있습니다. nginx-container와 같이 프로젝트와 관련된 항목을 추가해야 합니다.
  • nginx:- 컨테이너 내에서 실행하려는 서비스.

모든 것이 계획대로 실행되었는지 확인하려면 다음을 실행하십시오.

도커 ps

그러면 실행 중인 모든 컨테이너(전경 및 배경)가 나열됩니다. STATUS를 실행 중으로 확인하여 Docker Desktop으로 확인할 수도 있습니다.

OR

도커 ps -a

이렇게 하면 상태와 상관없이 로컬 시스템에 있는 모든 컨테이너가 표시됩니다.

출력:

코드 출력

컨테이너 중지 및 시작

때로는 마음대로 컨테이너를 시작하거나 중지해야 합니다. 다음을 사용하여 기능을 활성화할 수 있습니다.

도커 중지 도커 시작

예를 들어 nginx 컨테이너를 중지하려면 다음을 사용합니다.

도커 중지 nginx-컨테이너

를 확인하여 실행을 확인할 수 있습니다. 종료 Docker Desktop의 상태.

도커
확인 상태

팁: 컨테이너를 영구적으로 중지해야 합니다. 그렇지 않으면 백그라운드에서 리소스를 계속 사용하여 시스템 속도가 느려집니다.

컨테이너를 다시 시작하려면 다음을 사용하십시오.

도커 시작 nginx-컨테이너

다시 확인하려면 달리는 Docker Desktop의 컨테이너 이름 옆에 있는 상태.

코드 출력
확인 상태

다음은 Docker 사용을 시작하는 데 필요한 모든 기본 CLI 명령입니다. 이제 애플리케이션 사용의 다른 측면인 컨테이너화를 살펴보겠습니다.

커스텀 이미지 구축

Docker의 핵심은 코드를 컨테이너화하여 전 세계로 배송하는 것입니다. 이제 이미지를 빌드하고 나중에 실행할 수 있는 방법을 살펴보겠습니다.

참고 : 이 섹션에서는 명령줄 인터페이스 사용에 능숙하고 VS Code가 설치되어 있다고 가정합니다.

또한 여기서 요점은 실제 시나리오를 복제하여 Docker를 사용하는 방법을 보여주는 것입니다. 따라서 이 자습서에서는 웹 앱 시작 지점에 대한 기본 HTML 템플릿을 사용합니다.

시나리오 정의

당신(Harish)은 웹 앱에서 작업하고 있습니다. 갑자기 버그가 발생하여 수정할 수 없습니다. 개발자 친구(Lisa)에게 연락하면 도와줄 수 있다고 합니다.

그래서 당신은 repo를 공유합니다. 그러나 그녀는 macOS와 다른 버전의 nginx(웹 호스팅용)를 사용하고 있다는 사실 때문에 종속성 문제에 직면해 있습니다.

Docker에 대해 알고 있는 그녀는 사용자 지정 이미지를 만들어 그와 공유하도록 요청합니다. 주어진 작업을 어떻게 처리할지 봅시다.

Structure

Docker 용어로 이미지를 빌드하는 일반적인 프로세스는 다음과 같습니다.

  • 처음부터 환경을 구축하기 위한 모든 지침을 포함하는 docker 파일을 생성하여 시작합니다.
  • 다음을 사용하여 이미지를 빌드하고 푸시합니다. CLI 명령 쉽게 검색할 수 있도록 이미지에 이름/태그를 추가합니다.
  • 이제 이미지 태그를 공유하면 친구가 이미지를 가져와 자신의 시스템에서 컨테이너를 가동할 수 있습니다.

이것을 실제로 보자!

웹 앱 구축 - 선택 사항

실제 사례 시나리오에서는 이미 앱/프로젝트가 있을 수 있지만 튜토리얼을 위해 하나 만들어 보겠습니다.

vs. 코드를 열고 index.html이라는 새 파일을 만들고 아래 코드를 붙여넣습니다.

안녕, 리사/

요청하신 커스텀 NGINX Docker 컨테이너입니다. 빨리 문제를 해결하시길 바랍니다 :p

위에서 언급했듯이 이 기본 템플릿은 우리의 프로젝트 역할을 할 것입니다.

다음 단계는 도커 파일 자체를 작성하는 것입니다.

도커 파일 쓰기

이것은 중요한 과정입니다. 데몬이 단계 측면에서 파일의 각 명령문을 처리한다는 점은 주목할 가치가 있습니다. 따라서 모든 것이 순조롭게 진행되도록 하려면 순서대로 작성하는 것이 좋습니다. 당신은 모든 세부 사항을 찾을 수 있습니다 여기에서 지금 확인해 보세요..

시작하려면 docker 파일이라는 새 파일을 만듭니다. 그 안에 다음 지침을 작성하십시오.

nginx에서: 최신 COPY ./index.html /usr/share/nginx/html/index.html

이제 코드를 살펴보겠습니다.

라인 1 FROM 명령은 허브에서 최신 버전의 nginx 이미지를 가져와 사용자 지정 이미지를 빌드하는 기반 역할을 합니다. 대체의 경우 더 나은 재현성을 위해 최신 버전의 최상위에서 사용자 정의 nginx 버전을 실행하는 것으로 생각하십시오.

기본적으로 nginx 자체는 index.html 파일과 함께 제공되므로 웹 앱으로 덮어써야 합니다. 2번째 줄에서도 동일하게 수행됩니다. 복사 다음을 수행하는 명령 복사할 파일경로를 복사합니다. 따라서 명령을 다음과 같이 읽으십시오.

COPY 파일 경로/대상/복사

그게 당신이해야 할 전부입니다. 이제 이미지를 빌드해 보겠습니다.

Docker 이미지 빌드(사용자 정의)

도커 이미지를 빌드하기 위해 해당 빌드 명령을 사용합니다.

docker build -t 이미지 이름 .

여기에 -t 태그를 참조하고 image-name은 정의한 이름을 참조하지만 의미가 있는지 확인하십시오. 또한 “.” 마지막에 필요하며 실수가 아닙니다.

따라서 정의한 사용자 지정 컨테이너를 빌드하려면 코드가 다음과 같이 변경됩니다.

docker build -t custom-ngnix-image .

건축 과정은 몇 분 정도 걸릴 수 있지만 인내심을 가지십시오. 성공적으로 완료되면 아래와 같이 출력되는 것을 볼 수 있습니다.

코드 출력

모든 것이 제대로 작동하는지 확인하려면 데스크탑 앱을 사용하여 확인하거나 다음을 사용하십시오.

도커 이미지 ls

컴퓨터에서 사용 가능한 모든 이미지가 나열됩니다.

출력:

코드 출력

그래서 custom-ngnix-image 태그로 이미지를 만들어 친구와 공유했습니다. 이제 그녀가 동일한 것을 사용하여 환경을 재구축할 수 있는 방법을 살펴보겠습니다.

컨테이너 실행(커스텀)

컨테이너를 실행하기 위해 그녀는 터미널을 열고 다음 명령을 붙여넣습니다.

docker run -d -p 8080:80 --name 커스텀 컨테이너 커스텀 ngnix 이미지
도커 ps

글쎄, 위의 멋진 보인다면. 다음은 일반 버전입니다.

docker run -d -p 8080:80 --name 컨테이너 이름 이미지 이름

두 가지 차이점을 제외하면 모든 것이 이전에 논의한 실행 명령과 비슷해 보입니다.

  • –name:- 이 플래그에는 새 컨테이너 이름(custom-container)이 있습니다. 이것은 이 컨테이너/프로세스를 시스템의 나머지 부분과 구별하기 위한 이름입니다.
  • image-name:- 컨테이너를 빌드하는 동안 정의한 사용자 지정 이미지의 이름을 확인합니다. 코드의 첫 번째 줄과 동일한 이름을 사용해야 합니다.

마지막으로 이미지 태그를 확인하거나 상태를 확인하려면 다음을 실행할 수 있습니다.

도커 ps
코드 출력

다시 실행 중인 모든 컨테이너가 나열되지만 NAMES 열에 주목하십시오. 그녀가 정의한 것과 동일한 태그가 있습니다. 또한 주어진 이름에도 불구하고 각 프로세스에 고유한 컨테이너 ID를 할당한다는 점을 알아두는 것이 좋습니다.

확인

index.html(web app) 파일을 덮어썼다는 것을 기억하세요. 해당 웹 앱이 nginx에서 호스팅되는지 확인하는 것이 좋습니다.

확인하려면 다음을 방문하세요. 로컬 호스트 (왜 그렇습니까?) 웹 앱이 표시되는지 확인합니다. 이 경우 index.html 파일의 텍스트를 표시해야 합니다.

출력:

도커 웹 앱
웹 응용 프로그램

위의 방법을 사용하여 본격적인 앱을 호스팅할 수도 있습니다. 먼저 이미지를 빌드하고 데몬이 수신하도록 정의한 포트를 열어야 합니다.

참고 : 사용 후에는 반드시 용기를 멈추십시오. 매우 중요합니다!

결론

당신이 여기까지 왔다고 가정해 봅시다. 축하해요! 동료보다 훨씬 더 많이 알고 있으며 Docker를 사용할 수 있습니다. 오늘 배운 내용은 다음과 같습니다.

  • 도커가 필요한 이유 – 우리는 개발 작업에 필요한 부분을 확인하는 것부터 시작했습니다. Harish와 Lisa가 이제 앱을 즉시 고칠 수 있기를 바랍니다.
  • 기초 – Docker 작동 방식의 기본 원리인 Docker에 대해 배웠고 파일, 이미지, 용기. 이 외에도 CLI와 데스크탑도 살펴보았습니다.
  • 설치 – 여러 플랫폼에 설치하는 다양한 방법을 배웠습니다.
  • 실행 중인 컨테이너 – 사전 빌드된 이미지를 사용하여 컨테이너/프로세스를 실행했으며 프로세스에서 많은 CLI 명령을 확인했습니다. 태그의 사용법과 기능을 기억하십시오.
  • 맞춤형 컨테이너 구축 – 우리는 이미지(사용자 지정 – 이미지)를 생성하고 이를 실행하고 확인하는 방법을 살펴봄으로써 이해를 한 단계 끌어올렸습니다. 다시 몇 가지 명령, 사용법 및 구문을 더 배웠습니다.

따라서 이것이 왜 필수 도구인지 확신하기를 바랍니다. DEVS 및 개발 팀과 그것이 개발 여정을 어떻게 도울 수 있는지.

섹션이나 명령과 관련하여 문제가 발생하면 언제든지 내 소셜에서 저에게 연락하십시오. 링크드인, 트위터 인스타그램.

이 기사에 표시된 미디어는 Analytics Vidhya의 소유가 아니며 작성자의 재량에 따라 사용됩니다.

spot_img

최신 인텔리전스

spot_img

우리와 함께 채팅

안녕하세요! 어떻게 도와 드릴까요?