관리 메뉴

JIE0025

[원티드] 8월 백엔드 챌린지 - Docker 본문

백엔드/웹, 배포

[원티드] 8월 백엔드 챌린지 - Docker

Kangjieun11 2023. 7. 19. 20:19
728x90

 

1. 컨테이너 기술이란 무엇입니까? (100자 이내로 요약)

 

- 호스트OS 위에 독립적으로 애플리케이션을 실행할 수 있는, 분리된 환경
- 프로세스를 격리하고, 해당 프로세스에 필요한 자원독립적으로 할당/격리해서 가상의 격리 환경을 구축할 수 있음

 

 


 

2. 도커란 무엇입니까? (100자 이내로 요약)

 

컨테이너 기술을 기반으로 하는 오픈소스 가상화 플랫폼

- 도커를 사용하면, OS 위에 도커 엔진이 동작하고, 그 위에 컨테이너가 동작한다. 

- 기본적으로 Linux OS 에서 동작함

 

 


 

3. 도커 파일, 도커 이미지, 도커 컨테이너의 개념은 무엇이고, 서로 어떤 관계입니까?

 

✍️ 도커 이미지

어떤 프로그램을 실행하기 위한 모든것을 가진 것 (라이브러리 의존성까지)

 

✍️ 도커 파일

도커 이미지를 만들기 위한 파일, 자체 DSL (DOMAIN SPECIFIC LANGUAGE)를 이용해 생성 과정을 적어준다.

 

FROM adoptopenjdk/openjdk11
CMD ["./mvnw", "clean", "package"]
ARG JAR_FILE_PATH=target/*.jar
COPY ${JAR_FILE_PATH} app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]

 

 

✍️ 도커 컨테이너

프로세스를 - 격리된 공간에서 - 동작하도록 하는 기술  -> 이미지를 실행한 상태

 

 

 

 

Example 

예를들어 내가 어떤 스프링부트 서버를 배포한다고 가정하자.

 

도커파일에 자바 버전을 명시하고, 빌드(docker build)하면 이미지를 만들 수 있다.

 

 

docker run docker-example:0.0.1

도커로 이미지 파일을 실행 하게되면 > 스프링부트 프로젝트가 실행된다. 

따로 리눅스 OS에 Java 버전을 설치하지 않아도 작동된다.

 

 

 

해당 서버가 MySQL에서 데이터를 조회 할 경우, MySQL버전이 정의된 이미지를 사용해 별도의 컨테이너에서 실행한다.

 

 

만약 서버애플리케이션과 MySQL서버를 함께 실행하고 싶다면, Docker Compose를 이용하면 된다.

두개의 컨테이너를 함께 실행하고 네트워크를 설정할 수 있다.

 

 


 

 

references 

 

https://anweh.tistory.com/67

 

[Docker] 도커 컨테이너의 동작 원리 (LXC, namespace, cgroup)

0. 도커 컨테이너란? 도커 이미지와 연결지어 정의한다면, 도커 컨테이너는 이미지가 실행된 형태이다. 도커 이미지를 running하면 그 이미지를 동작시킨 컨테이너가 생성되는 것. 즉, 이미지로 여

anweh.tistory.com

https://www.ibm.com/kr-ko/topics/containers

 

컨테이너란? | IBM

컨테이너의 개발 및 운영 이점과 함께 Kubernetes, Istio 및 Knative 등을 포함한 관련 기술의 에코시스템에 대해 알아보세요.

www.ibm.com