Home /docker/ Docker 기초 이론
Post
Cancel

/docker/ Docker 기초 이론



서버운영에서 인프라 관리와 application 작성을 분리하고,
application 실행에 필요한 모든 파일을 Docker image에 담아둔다.

실행환경 세팅, 실행하는 코드, 필요한 라이브러리 설정파일들을 직접 세팅하는 것이 아니고,
Docker image를 받은 다음 실행하는 구조

이 image를 실행하는 것을 container라고 한다.

사진

Docker Registry Docker image를 쉽게 공유하기 위해서 Docker Registry를 사용한다.
Registry에 image를 등록하고,
Registry로부터 image를 다운받는 방식으로 사용

Docker Daemon image를 Registry로부터 다운받거나 올리기
image로부터 container 실행 imgage를 새로 만드는 등의 진짜 Docker object(image, container 등)들, 볼륨, 네트워크 등을 관리하는 주체

Docker Cli client에서 Docker Daemon으로 명령
docker build(도커 이미지 생성),
docker pull(도커 이미지를 registry에서 다운), docker run(이미 있는 이미지로 부터 container를 생성)



Docker와 가상 머신(VM)의 차이



..

왼쪽이 VM, 오른쪽이 Docker

VM

VM서버에서 OS를 설치
➡️ HyperVisor 프로그램 설치
스➡️ Binary, 필요한 실행 파일, Library를 다운 ➡️ application 코드를 받아서 실행

  • 여러개의 application을 실행하려고 하면
    여러개의 OS를 생성해야함

Docker

Host OS에서 Docker Engine을 통해
직접 OS를 다운 받지 않고
Binary, Library를 다운받아
바로 application을 실행

도커가 프로세스별 리소스(디스크, 네트워크 등)를 분리해
각각의 독립성을 보장할 수 있게 함



애플리케이션 실행

1
docker run -d -p 80:80 docker/getting-started

도커 option 목록

1
docker run --help

도커 컨테이너 상태 확인

1
docker ps

실행중인 컨테이너에서 명령어 실행하기

1
docker exec [options] {container_id|container_name} [command]

실행중인 컨테이너의 내부에 있는 파일 목록과 폴더구조 확인

docker exec {container_id|container_name} ls 

실행중인 컨테이너 내부에서 쉘 크립트 실행

1
docker exec {container_id|container_name} ls 

도커 컨테이너 삭제하기

1
docker rm {container_id}

(참고)



공부한 내용을 여러글과 책 읽은 내용을 바탕으로 정리하고 있습니다.
좋은 글로 저의 공부에 도움을 주시는 분들께 감사드립니다.

This post is licensed under CC BY 4.0 by the author.