Server/docker
[원티드 프리온보딩 백엔드 챌린지] TIL 도커란?_이론편
예령 : )
2023. 8. 3. 19:09
컨테이너(Container) 기술
- 가상화 기술 중 하나
- 애플리케이션을 독립된 환경에서 실행하는 기술
- 다른 서버 및 환경에서 애플리케이션을 실행할 수 있도록 하는 기술
-
더보기컨테이너는 일반적으로 항구에서 물류를 아주 큰 상자에 넣어서 배나 트럭에 운반하기 쉬운 형태로 모아놓은 것을 말한다.
컴퓨터 세상에서 컨테이너의 의미는 애플리케이션을 실행시키기 위한 라이브러리나 네트워크를 모아놓고 다른 서비스에 적용하기 쉽게 만들어 놓은 것이다.
즉, 컨테이너 기술은 무거운 운영체제는 공유하는 형태로 경량화하고, 가상화 기술을 이용해 빠른 배포가 가능하도록 하는 기술이다.
컨테이너 기술의 특징
- 기존 virtual machines 모델들과 달리 별도의
guest OS 없이
가벼운 가상화 기술 사용이 가능
도커(Docker)
- 컨테이너 기반 가상화 도구
Docker
는 Linux Container에서프로세스 격리기술
을 사용해 Container를 더욱 쉽게 실행하고 관리할 수 있게 도와주는 가상화 플랫폼- 다양한 프로그램들과 실행 환경을 컨테이너로 규격화시켜 프로그램의 배포 및 관리를 단순화할 수 있음
-
더보기도커는 일반적으로 보트나 선박이 짐을 싣고 내리는 공간이며, 선박의 경우 컨테이너가 이동하는 장소라 할 수 있다.
컴퓨터 세상에서 도커는 컨테이너가 이동하는 장소이자, 컨테이너를 모아 놓은 플랫폼이라고 할 수 있다. 도커 없다면 컨테이너를 어디에 두고, 어디서 불러와야할지 모를 것이다.
도커(Docker)라는 오픈소스 플랫폼을 이용하면 필요한 컨테이너의 이미지를 불러와 적재적시에 사용할 수 있고, 일관적인 형태로 실행할 수 있게 된다.
도커파일 (Dockerfile)
- 컨테이너에 설치해야하는 패키지, 소스코드, 명령어, 환경변수, 설정 등을 기록한 파일
- 도커 파일을 빌드하면 자동으로 도커 이미지가 생성됨
주요 문법
구문 | 설명 |
---|---|
# | 코멘트 |
FROM | 베이스 이미지(Base Image) 지정 |
MAINTAINER | 명령 및 컨테이너 실행 시 적용할 유저설정 ( 기본: root ) |
WORKDIR | work directory 지정 |
RUN | 컨테이너 빌드를 위한 실행 명령어 |
COPY | 컨테이너 빌드 시 호스트 파일을 복사 |
ADD | 컨테이너 빌드 시 호스트의 (tar,url)을 복사 |
ENV | 환경 변수 |
USER | 명령 및 컨테이너 실행 시 적용할 유저설정 ( 기본: root ) |
도커 이미지(Docker image)
- 도커 파일을 기반으로 생성
- 도커 hub에 등록되어 있는 이미지를 pull 받는 것만으로도 사용이 가능
- 이미지화를 통해 컨테이너에 올려 사용할 수 있음
도커 컨테이너(Docker container)
- 도커 이미지를 기반으로 애플리케이션을 실행할 수 있도록 하는 공간
도커파일, 도커 이미지, 도커 컨테이너의 관계
참고자료
https://docs.docker.com/get-started/overview/
https://github.com/drum-grammer/docker-pro-2308/pull/90
https://github.com/drum-grammer/docker-pro-2308/pull/153
본 글은 원티드에서 진행하는 프리온보딩 백엔드 챌린지를 기반으로 작성한 글입니다. 만약 잘못된 내용이 있다면 댓글로 알려주세요! 감사합니다. 🙇♀️