<Docker>

윤장원·2022년 6월 18일
0

Docker

목록 보기
1/1

Docker

도커(Docker)는 리눅스 컨테이너(Linux Container) 기술을 기반으로 하는 오픈 소스 서비스이다. 도커를 통해 애플리케이션 실행 환경을 코드로 작성할 수 있으며, OS를 격리화하여 관리한다.

Linux Container

Linux 기반의 기술 중 하나로, 필요한 라이브러리와 애플리케이션을 모아서 마치 별도의 서버처럼 구성한 것을 말한다. 컨테이너를 이루는 네트워크 설정, 환경 변수 등의 시스템 자원은 각 컨테이너가 독립적으로 소유하고 있다.

  1. 프로세스의 구획화
  • 특정 컨테이너에서 작동하는 프로세스는 기본적으로 그 컨테이너 안에서만 엑세스 할 수 있다.
  • 컨테이너 안에서 실행되는 프로세스는 다른 컨테이너의 프로세스에게 영향을 줄 수 없다.
  1. 네트워크의 구획화
  • 기본으로 컨테이너 하나에 IP주소가 할당되어 있다.
  1. 파일 시스템의 구획화
  • 컨테이너 안에서 사용되는 파일 시스템은 구획화되어 있다. 그래서 해당 컨텡이너에서의 명령이나 파일 등의 엑세스를 제한할 수 있다.

Docker로 해결하는 문제들

  1. 환경 표준화

  2. 수작업으로 일치시키는 환경 구성

  3. 리소스 격리성

도커와 가상 머신의 차이

  • 도커는 가상 머신만큼 견고한 격리성을 제공하지 않는다.
  • 도커는 리눅스의 컨테이너를 이용한 기술로, OS 위에 다른 OS를 실행하는 것이 아니므로 가상 머신보다 좋은 성능을 낼 수 있다.
  • 애플리케이션에 대한 환경 격리성을 중심으로 한 VM과는 달리, 도커는 Container의 관점에서 개발자와 사용자 커뮤니티를 중심으로 혜택을 제공한다.

Docker Container Lifecylce

Docker CLI

  • 레지스트리(Registry)
    -도커 이미지를 관리하는 공간
    -특별히 다른 것을 지정하지 않는다면, 도커 허브를 기본 레지스트리로 설정
  • 레포지토리(Repository)
    -레지스트리 내에 도커 이미지가 저장되는 공간
    -이미지 이름이 사용되기도 한다.
  • 태그(Tag)
    -해당 이미지를 설명하는 버전 정보를 주로 입력
    -특별히 다른 것을 지정하지 않는다면 latest 태그를 붙인 이미지를 가져온다.

Docker Example 수행하기 : docker/whalesay

docker image pull docker/whalesay: latest

docker/whalesay의 최신 이미지를 받아온다.

doker image ls

이미지 리스트를 출력한다.

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

컨테이너_이름을 이름으로 갖는 컨테이너를 실행한다.

docker container ps -a

모든 컨테이너의 리스트를 출력한다.

docker container rm 컨테이너_이름

컨테이너_이름이라는 이름을 가진 컨테이너를 삭제한다.

docker image rm docker/whalesay

지정된 도커 이미지를 삭제한다.

docker container run --name 컨테이너_이름 -p 818:80 httpd

httpd 실행
-p 옵션은 로컬호스트의 포트와 컨테이너의 포트를 연결한다.

docker container cp ./ 컨테이너_이름:/usr/local/apache2/htdocs/

현재 폴더의 파일을 뒤 경로에 복사한다.

docker container commit 컨테이너_이름 my_pacman:1.0

구동한 docker container를 이미지로 만든다.

docker run --name my_web2 -p 900:80 my_pacman:1.0

생성된 이미지를 900포트에서 웹 서버로 구동

0개의 댓글