build my life

[프리온보딩 백엔드 챌린지] Docker : 사전과제 본문

Tools

[프리온보딩 백엔드 챌린지] Docker : 사전과제

dalovee 2023. 3. 28. 00:51
728x90

출처 : https://catalog.us-east-1.prod.workshops.aws/workshops/9c0aa9ab-90a9-44a6-abe1-8dff360ae428/ko-KR/40-container

 

유투브를 보면 Docker는 '모든 개발자들이 배워보고 싶어하는 툴' 이라는 말이 나올 정도로 git 다음으로 많이 사용한다고 한다.

원티드에서 백엔드 챌린지로 docker를 배울 수 있는 기회가 있어 참여하게 되었다!

실무에서도 많이 사용하는 tool인 만큼 잘 배워서 취업에 한발짝 더 나아가자.....!

 

[원티드 프리온보딩 백엔드 챌린지 링크 (~3/30)]

https://www.wanted.co.kr/events/pre_challenge_be_6?utm_source=wanted&utm_medium=share

 

⭐ 사전과제


배우기 전에 조금이라도 알고 시작하고 싶어서 사전과제를 진행하면서 도커에 대해 공부를 했다.

 

[참고영상]

https://youtu.be/LXJhA3VWXFA

https://youtu.be/hWPv9LMlme8

 

1. 컨테이너 기술?

컨테이너는 어플리케이션을 구동하는 환경을 격리한 공간을 의미한다. 가상머신과 달리 운영체제를 제외하고 어플리케이션 실행에 필요한 모든 파일만을 패키징한 형태로 가상머신에 비해 가볍고 빠르게 동작이 가능하다.

 

2. 도커란?

도커란 컨테이너 기술을 기반으로 한 일종의 가상화 플랫폼이다. 도커를 이용하면 이미지를 실행시켜 컨테이너로 만들거나, 생성된 컨테이너를 관리하거나 컨테이너를 다시 이미지로 만드는 작업을 쉽게 할 수 있다.

 

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

- 도커 파일은 도커에서 이미지를 생성하기 위한 용도로 작성하는 스크립트다. 어플리케이션을 구동하기 위해서 필요한 파일이 무엇인지 외부 dependency에 대해서 어떻게 구동해야하는지 등 정보를 담고 있다.

- 도커 이미지는 어플리케이션의 상태를 스냅샷으로 찍은 상태, 불변의 상태를 의미한다. 서비스 운영에 필요한 소스코드, 라이브러리, 종속성 등 어플리케이션을 실행하는데 필요한 파일들의 묶음!!

- 도커 컨테이너는 도커 이미지로 생성할 수 있으며, 컨테이너를 생성하면 해당 이미지의 목적에 맞는 파일이 들어있는 독립된 공간이 생성된다.

 

도커 파일을 빌드해서 이미지를 생성하고 컨테이너를 구동한다. 컨테이너가 구동된다는 것은 우리가 필요로 하는 가상환경이 구현된다는 것을 의미한다.

 

⭐ 도커 설치 및 구동해보기


1. 도커 설치 : Window 환경

https://docs.docker.com/desktop/install/windows-install/

 

Install Docker Desktop on Windows

 

docs.docker.com

 

2. Dockerfile 작성

- FROM : 베이스 이미지(Base image)를 지정. registry에서 해당 이미지를 pull

- RUN : command를 실행하여 새 이미지에 포함시키는 역할. 컨테이너에 꼭 필요한 소프트퉤어나 라이브러리가 있을 수 있고 특정 위치에 파일이나 디렉토리가 존재해야할 수도 있음.

- CMD : 컨테이너가 시작될 때 실행할 커맨드를 지정.

📌 RUN vs CMD : RUN은 이미지를 빌드할 때 실행 /  CMD는 이미 빌드가 완료된 이미지로부터 도커 컨테이너를 시작할때 실행

 

2. 도커 이미지 빌드

- Dockerfile을 읽어 도커 이미지를 만들고 이미지 tag는 `hello-world`

 

3. 도커 이미지 실행

- `hello-world`라는 도커 이미지를 실행시켜 "Hello, World" 출력

 


VMWare를 활용해서 리눅스OS 분산처리환경을 구성한 적이 있었는데, 그때 메모리를 나눠서 가상머신을 3개를 생성했었다. 언제 메모리가 터질지 몰라 조마조마했던 기억이...

내가 이해한게 맞는지 모르겠지만, Docker를 사용하면 OS를 포함하지 않기 때문에 컴퓨팅 리소스를 많이 잡아먹지 않는다고 한다..!

또한, Docker 자체가 리눅스 환경에서 만들어진 도구이기 때문에 컨테이너를 구동할 때 도커가 알아서 가상머신을 만들고 그 위에 리눅스 환경을 만든다고 한다.

728x90

'Tools' 카테고리의 다른 글

Cmder 설치  (0) 2023.04.18
[Git] git remote 관련 명령어  (0) 2023.03.28