Docker 기본 개념

2024. 1. 4. 16:08docker

프론트엔드 개발자도 이것저것 다 할 줄 알아야 하는 세상의 흐름에 맞게 그 좋다는 Docker 한번 써보려고 한다.

 

Docker 에 대해서 간략하게 설명하자면

우리가 프로젝트를 진행하다 보면 코드를 Github 에 푸쉬 해 두고 다른 컴퓨터 환경에서 코드를 내려받아서 개발을 하거나 다른 팀원들과 공유해야 할 때가 있다.

 

그럴때 내가 개발하던 컴퓨터의 환경이 다르기 때문에 ( 예를들어 컴퓨터에 설치된 java 나 node 등.. 버전이 다름 ) 분명 내 컴퓨터에선 잘 굴러가던 코드가 에러 투성이인 경우가 생긴다.

 

만약 혼자 개발하더라도 배포를 하려면 직접 서버까지 돌릴게 아니라면 뭐 그런사람이면 이 글을 보지도 않겠지만 거의 호스팅 업체 컴퓨터를 빌려서 돌릴텐데

 

이때 뭐 빌리는 컴퓨터의 운영체제가 다를수도있고 다양한 변수가 존재하는데

 

이 모든걸 해결해주는게 Docker

 

컴퓨터 위에 가상의 독립된 공간을 만들어 내가 짠 코드를 그 독립된 공간안에서 따로 환경을 구축해 돌아가게 만들어 주는 역활을 한다.

 

배가 실어 나르는 컨테이너(환경) 에 내 코드들을 담고 이를 Docker 가 운반해 주는거라 생각하자.

 

일단 Docker 사이트에 접속해 다운로드받자

 

그리고 Docker Desktop 을 실행시켜보면 대충 이런창이 하나 뜰텐데 Docker를 처음 사용한다면 아무것도 없겠지만 슬슬 하나씩 만들어보자.

 

Docker desktop이 실행되어있으면 cmd 창에서 docker 명령어를 사용할 수 있다. ( 안켜져있으면 명령어 안들으니까 꼭 켜놓자 )

 

잘 깔린듯

 

Docker에는 Image 를 받을 수 있는 docker hub 가 존재하고 image 를 실행시키는 container 라는게 존재한다.

 

이고잉님의 말을 인용하자면

 

우리가 어떤 어플리케이션을 받고 싶을 때 app store 로 찾아가듯이 docker 에서는 docker hub 라는게 존재하고

app store 에서 다운로드 받은 어플리케이션을 program 이라 부르는걸 docker 에서는 image

program 을 실행시키면 실제로 process 가 동작하는 것을 docker 에서는 container

 

Docker hub 에서 Image 를 받는것을 PULL

Image를 실행시키는 것을 RUN 이라고 한다

Image를 실행시키면 Container 가 생성 되며

하나의 Image로 여러개의 Container를 실행시킬 수 있다