Orchestration/Docker

[Mac OS]Docker 란? (Mac OS Docker 설치, Docker 실습, docker/whalesay 실습)

chanstory 2023. 1. 5. 20:12
반응형

Docker 란?

- 컨테이너 방식으로 어플리케이션을 실행한다.

   => 컨테이너 방식을 통해 실행환경을 격리시킨다.

   => 컨테이너 격리 시 독립적으로 소유할 수 있는 자원

         1. 프로세스
            - 특정 컨테이너에서 작동하는 프로세스는 기본적으로 그 컨테이너 안에서만 액세스 할 수 있다.

            - 컨테이너 안에서 실행되는 프로세스는 다른 컨테이너의 프로세스에게 영향을 줄 수 없다.

         2. 네트워크

            - 기본으로 컨테이너 하나에 하나의 IP주소가 할당되어 있다.

         3. 파일 시스템 

            - 컨테이너 안에서 사용되는 파일 시스템은 구획화 되어있다.

            - 해당 컨테이너에서의 명령이나 파일 등의 액세스를 제한할 수 있다.

- 동일한 서비스가 실행 환경이 다른 여러 컴퓨터에서 작동하도록 한다.

 

장점

- 의존성 문제 해결

- 개발과 배포 환경을 일치시켜준다.

- 수평 확장을 쉽게 해준다.

- 각 서버에 새로운 내용을 배포하기 쉽게 만들어준다.

 

 

 

Docker 핵심 키워드

- 컨테이너

  => 어플리케이션의 의존성, 네트워크 환경, 파일 시스템에 구애받지 않고 도커라는 기술 위에 실행될 수 있도록 만든 어플리케이션 상자

 

- 이미지

  => 모든 컨테이너 실행을 위해선 이미지가 필요하다

  => 어플리케이션 및 어플리케이션 구성이 담겨있는 템플릿

  => 이미지를 이용하여 원활한 수평확장이 가능하다.

  => base image로 부터 변경사항을 추가/커밋 하여 다른 이미지 생성 가능

 

- 레지스트리

  => 이미지가 저장되는 곳

      ex) Docker Hub, Amazon ECR 등이 있다.

  => 도커 CLI에서 이미지를 이용해 컨테이너를 생성할 때 호스트 컴퓨터에 이미지가 존재하지 않는다면 기본 레지스트리를 다운받게 된다.

 

 

* Docker 와 가상 머신의 차이

- Docker 는 OS를 미포함(각 컨테이너는 호스트 커널을 공유한다.)   //   VM은 OS를 포함 

 

 

 

Docker 설치 참고 링크

1. Mac OS

https://docs.docker.com/desktop/install/mac-install/

 

Install on Mac

 

docs.docker.com

 

2. Ubuntu

https://docs.docker.com/engine/install/ubuntu/

 

Install Docker Engine on Ubuntu

 

docs.docker.com

 

 

 

docker/whalesay 이미지 실행 실습

1.  docker/whalesay 는 레지스트리 계정, 레포지토리 이름, 태그 세가지 정보로 구성되어있다.

*레지스트리 (Registry)

    - 도커 이미지를 관리하는 곳 ( Docker Hub : https://hub.docker.com/ )

    - 미 지정 시 도커 허브를 기본 레지스트리로 설정

    - 레지스트리는 Docker Hub, Private Docker Hub, 회사 내부용 레지스트리 등으로 나뉠 수 있다.

 

 * 레포지토리 (Repository)

    - 레지스트리 내 도커 이미지가 저장되는 곳

    - 이미지 이름이 사용되기도 함

    - GitHub의 레포지토리와 유사함

 

* 태그 (Tag)

    - 같은 이미지 일지라도 버전 별로 안의 내용이 조금 다를 수 있다.

    - 주로 버전 정보를 입력한다.

    - 특별히 지정하지 않을 시 태그가 latest 인 이미지를 가져온다.

 

 

2. Docker/Whalesay 이미지 실행

% docker -v   // 도커 설치 정보 확인
Docker version 20.10.21, build baeda1f

 - 도커 설치 확인

 

docker image pull docker/whalesay:latest

- docker/whalesay 이미지 가져오기 (latest 버전)

 

docker image ls

- image 파일 목록 확인 (원하는 항목이 설치되었는지 확인)

- 이미지 ID, Size 등 정보를 알 수 있음

 

docker container run --name 컨테이너_이름 docker/whalesay:latest cowsay boo

- docker container run 명령어를 사용하여 컨테이너 생성 // 원하는 컨테이너 이름 작성

- docker run 명령어

   -i : 사용자가 입출력 할 수있는 상태

   -t : 가상 터미널 환경을 에뮬레이션 한다.

   -d : 컨테이너를 일반 프로세스가 아닌 백그라운드로 실행한다.

 

- 컨테이너 실행 시 출력되는 화면

 

 

docker container ps -a

- 컨테이너 실행 목록 출력 (ps)

- -a : Default 로 실행되는 컨테이너지만 종료된 컨테이너를 포함하여 모든 컨테이너 출력 옵션

 

docker container rm 컨테이너_이름

- 컨테이너 삭제 (컨테이너 이름 or 컨테이너 ID를 입력 - ID 일부만 입력해도됨)

 

docker image rm <이미지이름 or ID>

- 이미지 삭제

반응형

'Orchestration > Docker' 카테고리의 다른 글

[Mac OS]Docker Copy, Dockerfile (pacman/canvas)  (0) 2023.01.05