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등의 레지스트리에 등록
반응형