본문 바로가기

Programming/(Python)(Ubuntu)

Docker 설명 및 사용법

Docker

 

애플리케이션 구축, 테스트 및 배포를 할 수 있는 소프트웨어 플랫폼 입니다.

 

컨테이너(Container)라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 것이 포함되어 있습니다.

 

Docker의 작동 방식

 

Docker는 코드를 실행하는 표준 방식을 제공합니다. 또한 컨테이너를 위한 운영 체제입니다. 가상 머신이 서버 하드웨어를 가상화하는 방식과 비슷하게 컨테이너는 서버 운영 체제를 가상화합니다. Docker는 각 서버에 설치되며 컨테이너를 구축, 시작, 또는 중단할 수 있는 간단한 명령어를 제공합니다.

 

Docker의 장점

 

Docker를 사용하면 코드를 더 빨리 전달하고, 애플리케이션 운영을 표준화하고, 코드를 원할하게 이동할 수 있습니다. 또한 리소스 사용률도 높여 효율적으로 관리할 수 있습니다.

 

Docker Hub 공식 이미지 레지스트리

index.docker.io/

 

Docker Hub

We and third parties use cookies or similar technologies ("Cookies") as described below to collect and process personal data, such as your IP address or browser information. You can learn more about how this site uses Cookies by reading our privacy policy

index.docker.io

 

 

우분투에서 도커를 설치하는 방법

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

 

Install Docker Engine on Ubuntu

 

docs.docker.com

다음 웹 페이지를 이용하여 도커를 설치할 수 있습니다.

 

설치확인하기

docker version
Client:
 Version:           19.03.6
 API version:       1.40
 Go version:        go1.12.17
 Git commit:        369ce74a3c
 Built:             Wed Oct 14 19:00:27 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          19.03.6
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.17
  Git commit:       369ce74a3c
  Built:            Wed Oct 14 16:52:50 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.3.3-0ubuntu1~18.04.3
  GitCommit:
 runc:
  Version:          spec: 1.0.1-dev
  GitCommit:
 docker-init:
  Version:          0.18.0
  GitCommit:

다음과 같이 Client와 Server 정보가 정상적으로 출력되었으면 설치가 완료되었습니다.

 

버전 정보가 클라이언트와 서버로 나눠져 있습니다. 도커는 실제로 클라이언트와 서버의 역할을 할 수 있고, 커맨드를 입력하면 도커 클라이언트가 도커 서버로 명령을 전송하고 결과를 받아 터미널에 출력해줍니다.

 

컨테이너 실행하기

docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]

 

이것 말고도 자주 사용하는 옵션으로는 다음과 같습니다.

-d : detached mode(백그라운드 모드)

-p : 포트포워딩(포트 연결)

-v : 마운트(디렉토리 연결)

-e : 환경 변수

-name : 컨테이너 이름

-rm : 프로세스 종료시 컨테이너 제거

-it : 터미널 입력을 위한 옵션

-link : 컨테이너 연결

 

Ubuntu 18.04 container 실행하기

docker run ubuntu:18.04

run 명령어를 사용하면 사용할 이미지가 저장되어 있는지 먼저 확인한 후 없으면 다운로드를 한 후 컨테이너를 생성하고 시작합니다. 위의 코드에서는 컨테이너는 정상적으로 실행했지만 명령어를 전달하지 않았기 때문에 생성되자 마자 종료되었습니다.

 

docker run --rm -it ubuntu:18.04

 

컨테이너 목록 확인하기

# 현재 실행중인 컨테이너 목록을 보여줍니다.
docker ps 

# 전체 컨테이너 생성 목록
docker ps -a 

컨테이너는 삭제하지 않는 한 제거되지 않고 남아있습니다.

# 현재 실행되어 있는 컨테이너를 종료
docker stop [이름 or 컨테이너ID] 

getting start Stop (전)
getting start Stop (후)

컨테이너 제거하기

# 컨테이너 제거 
docker rm [이름 or 컨테이너ID] 
# ID의 경우 4자리까지 입력시 해당 컨테이너제거 ex) docker rm i322
# 이름의 경우 3자리 입력 후 탭 자동완성 가능

getting start rm (후)

이미지 목록 확인하기

# 도커 이미지 목록 확인하기
docker images

이미지 주소, 태그 ID, 생성날짜, 용량이 나타납니다. 많은 패키지를 이용한다면 용량 또한 증가합니다.

 

이미지 다운로드 하기

docker pull ubuntu:18.04

이미지 삭제하기

# 도커 이미지 제거 
docker rmi [이름 or 이미지ID] 
# ID의 경우 4자리까지 입력시 해당 이미지 제거 ex) docker rm i322
# 이름의 경우 3자리 입력 후 탭 자동완성 가능

rmi 전
rmi 후

 

컨테이너 로그 보기

# 컨테이너 로그 보기 
docker logs [이름 or 컨테이너ID] 
# ID의 경우 4자리까지 입력시 해당 이미지 제거 ex) docker rm i322
# 이름의 경우 3자리 입력 후 탭 자동완성 가능

# 마지막 몇줄만 보기
docker logs --tail 10 [이름 or 컨테이너ID]

# 실시간으로 로그 확인하기
docker logs -f [이름 or 컨테이너ID]

 

작성중입니다.

반응형