일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 백준
- 백준알고리즘
- 정보처리산업기사
- SW봉사
- 백준 알고리즘
- programmers
- python
- 스프링
- C++
- 알고리즘
- CJ UNIT
- 소프티어
- 코틀린
- 문제풀이
- 자바
- SQL
- BFS
- kotlin
- 프로그래머스
- 공부일지
- 파이썬
- 1과목
- 시나공
- 코딩교육봉사
- 데이터베이스
- softeer
- 회고
- MYSQL
- 코딩봉사
- java
- Today
- Total
JIE0025
[원티드] 8월 백엔드 챌린지 - Docker 본문
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://www.ibm.com/kr-ko/topics/containers
'백엔드 > 웹, 배포' 카테고리의 다른 글
가상 면접 사례로 배우는 대규모 시스템 설계 기초 1장 : 사용자 수에 따른 규모 확장성 (5) | 2024.12.19 |
---|---|
[AWS] EC2 무중단 배포 (linux - nohup) (0) | 2023.06.23 |
[AWS] 웹 프론트, S3 저장소를 통해 배포하자 (0) | 2023.06.21 |
우분투 시스템 환경변수 설정과 applicaiton.yml에서 해당 값 사용 (0) | 2023.06.20 |
EC2 인스턴스에 git clone(with ssh)후, 서버 실행 (0) | 2023.06.19 |