Server Programming/DevOps

Docker 에 관한 기본 정리

Dev.BeryL 2022. 1. 24. 22:54
728x90

컨테이너형 가상화 구현 기술(운영 체제 수준 가상화)

 

- 변화하지 않는 실행환경으로 Idempotency 확보

- 코드를 통한 실행 환경 구축 및 어플리케이션 구성

- 실행 환경과 어플리케이션의 일체화로 이식성 향상

- 시스템을 구성하는 어플리케이션및 미들웨어 관리 용이성

 

기본 구조

```
FROM ubuntu:16.04 #운영체제 정의

COPY helloworld /usr/local/bin #helloworld 파일을 도커 컨테이너 내부 경로에 저장
RUN chmod +x /usr/local/helloworld #COPY에서 저장한 파일에 대한 실행 권한 부여

CMD ["helloworld"] # 완성된 이미지를 도커 컨테이너로 실행전 먼저 실행할 명령 정의
```

```bash
$ docker image build -t helloworld:latest .
$ docker container run helloworld:latest
```

 

 

Docker Compose

Docker Swarm

Kubernates

GKE - 구글

ECS - 아마존

 

Docker Image : Container를 구성하는 템플릿 역활

Docker Container : Docker Image를 기반으로 생성되며, 파일 시스템과 어플리케이션이 구체화돼 실행되는 상태

 

Docker Container Life Cycle

실행 - 정지 - 파기

 

docker container run
docker container ls
docker container stop
docker container restart
docker container rm
docker container logs
docker container exec -> 실행중인 컨테이너에서 명령 실행
docker container cp
docker container prune -> 컨테이너 및 이미지 파기
docker container stats -> 사용 현황 확인

 

docker yaml

docker-compose -> yaml 포맷으로 기술된 설정, 여러 컨테이너의 실행을 한번에 관리
#####
version:"3"
services:
	echo: #컨테이너 이름
		image: example/echo:latest # Docker Image
		ports: - 9000:8080 #Port forwarding

 

명령어

docker image build -t example/echo:latest

→ Path에서 Dockerfile 이라는 이름의 파일을 찾아 Docker Image를 생성

 

 

docker search

docker search [option] searchKeyword
-> docker search --limit 5

→ Docker Hub에서 언어, Tool에 대한 docker image 검색

 

docker Image pull

docker image pull [option] repository[:tagname] 
-> docker image pull jenkins:latest

→ Docker Hub에 존재하는 언어, Tool에 대한 이미지 Pull

 

docker image ls

docer image ls [option] repository[:tagname]
-> docker image ls

현재 호스트 운영체제에 저장된 Docker Image list 출력

 

docker image push

docker image push [options] repository[:tagname]
-> docker image push stormcattest/echo:latest

현재 저장된 docker image를 docker hub등의 레지스트리에 등록

반응형