본문 바로가기
  • 클라우드야 나랑 친해지자!
TIL (Today I Learned)

2021-04-13 : Docker&Kubernetes

by 정민규 2021. 4. 13.
반응형

일주일간 진행했던 <AWS DevOps Discovery Book> 을 마치고

오늘부터 Docker&Kubernetes를 진행합니다.

 

이론 및 실습 병행 ~59p

 

 

 

 

도커(Docker)는 리눅스의 응용 프로그램들을 소프트웨어 컨테이너 안에 배치시키는 일을 자동화하는 오픈 소스 프로젝트이다. 도커 웹 페이지의 기능을 인용하면 다음과 같다:

도커 컨테이너는 일종의 소프트웨어를 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다. 여기에는 코드, 런타임, 시스템 도구, 시스템 라이브러리 등 서버에 설치되는 무엇이든 아우른다. 이는 실행 중인 환경에 관계 없이 언제나 동일하게 실행될 것을 보증한다.

도커는 리눅스에서 운영 체제 수준 가상화의 추상화 및 자동화 계층을 추가적으로 제공한다. 도커는 cgroups와 커널 이름공간과 같은 리눅스 커널, 또 aufs와 같은 유니언 가능 파일 시스템의 리소스 격리 기능을 사용하며, 이를 통해 독립적인 "컨테이너"가 하나의 리눅스 인스턴스 안에서 실행할 수 있게 함으로써 가상 머신을 시작하여 유지보수해야 하는 부담을 없애준다.

 

- 출처 : 위키백과 -

 

 

 

 

 

 

* 도커 이미지

이미지는 컨테이너를 생성할 때 필요한 요소이며, 가상 머신을 생성할 때 사용하는 iso 파일과 비슷한 개념입니다.

도커에서 사용하는 이미지의 이름은 기본적으로 [저장소 이름]/[이미지 이름]:[태그(이미지버전)]의 형태로 구성됩니다.

 

 

 

*도커 컨테이너

이미지로 컨테이너를 생성하면 해당 이미지의 목적에 맞는 파일이 들어 있는 파일시스템과 격리된 시스템 자원 및 네트워크를 사용할 수 있는 독립된 공간이 생성되고, 이것이 바로 도커 컨테이너가 됩니다.

대부분의 도커 컨테이너는 생성될 때 사용된 도커 이미지의 종류에 따라 알맞은 설정과 파일을 가지고 있기 때문에 도커 이미지의 목적에 맞도록 사용되는 것이 일반적입니다.

 

 

 

 

* 컨테이너 생성

#docker run -i -t ubuntu:14.04     // ubuntu:14.04 이미지로 컨테이너를 생성하고 실행하는 명령어

 

docker run 명령어로 컨테이너를 생성할 때 -i 옵션으로 상호 입출력을, -t 옵션으로 tty를 활성화해서 배시(bash) 셸을 사용하도록 컨테이너를 설정했습니다. docker run 명령어에서 이 두 옵션 중 하나라도 사용하지 않으면 셸을 정상적으로 사용할 수 없습니다.

.

# docker create -i -t --name mycentos centos:7     // centos:7 이미지로 컨테이너를 생성.
							// --name 옵션에는 컨테이너의 이름을 설정합니다.

 

 

---> run과 create 명령어의 차이

 

run 명령어 : docker pull(이미지가 없을 때)  > docker create > docker start > docker attach

create 명령어 : docker pull(이미지가 없을 때) > docker create

 

* 이미지 내려받기

#docker pull centos:7     // centos:7 이미지를 내려받습니다.

 

 

 

* 컨테이너 시작

#docker start mycentos
mycentos

 

* 컨테이너 내부로 들여보내기

#docker attach mycentos
[root@dd06c5cb6bf4 /]#

 

 

* 컨테이너 상태 확인

#docker ps
// 실행중인 컨테이너의 목록만 표시(exit로 나온 컨테이너는 정지된 상태로 표시되지 않음)
// ctrl + P, Q는 컨테이너를 실행상태로 빠져나올 수 있음

#docker ps -a
// 컨테이너의 전체 목록 표시
// 'Up' : 실행 중    'Exited' : 종료된 상태    'Pause' : 일시 중지된 상태

 

 

 

* 컨테이너 삭제

#docker rm mycentos
// 실행 중인 컨테이너는 삭제되지 않음

 

#docker rm -f mycentos
// 실행 중인 컨테이너 삭제 가능

 

#docker container prune
// 모든 컨테이너 삭제

 

반응형

'TIL (Today I Learned)' 카테고리의 다른 글

2021-04-19 : TIL  (0) 2021.04.19
2021-04-08 : AWS  (0) 2021.04.08
2021-03-29 : GCP  (0) 2021.03.29
2021-03-16 : Azure  (0) 2021.03.16
2021-03-15 : Azure  (0) 2021.03.15

댓글