위키백과의 설명을 발췌하면 도커에 대한 설명은 이렇다.
도커(Doker)는 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트이다.
오픈 소스는 말 그대로 소스 코드가 공개되어있다는 것을 말하고, 리눅스는 OS이고, 여기서 처음보는... 건 아니고 감이 안 오는 개념은 컨테이너
였다. 일 할때 많이 봤는데...
컨테이너는 호스트OS,즉 서버 컴퓨터의 OS상에서 논리적인 구역을 만들어서 각기 해당하는 어플리케이션을 작동시키기 위한 라이브러리나 어플리케이션 등을 하나로 모아서 별도의 서버인 것 처럼 사용할 수 있게 만든 것이다. 말하자면 컴퓨터 한 대에 VMWARE같은 가상 컴퓨터를 여러 개 띄워서 물리적으로는 한 대의 서버이지만 여러 대의 서버를 운용할 수 있도록 만든 것이다.
대신 이것은 가상 컴퓨터가 아니고, 커널이나 운영체제와 같은 무거운 프로그램을 호스트PC와 공유하여, 그보다 훨씬 더 가볍고 빠르게 환경을 구축할 수 있다!
좌측이 일반적인 가상 컴퓨터 시스템이고, 우측이 컨테이너를 이용한 Docker 시스템을 보여준다.
🤔 굳이 이렇게까지 해야하나요?
우리가 브라우저를 통해서 이용하는 여러가지 인터넷 서비스에는 프론트엔드-백엔드-DB 서버가 갖춰져 있는데 서버 컴퓨터를 구축하기에는 시간적으로, 비용적으로, 물리적으로 부담이다!
가볍고 빠른 도커를 이용하자!
도커에서 서비스 운영에 필요한 서버 프로그램, 소스코드 및 라이브러리, 컴파일된 실행 파일을 묶는 형태를 도커 이미지
라고 한다. 도커 이미지는 특정한 프로세스를 실행하기 위해서 미리 설정 된 환경과 설정 값을 지니고 있어서
이때, 도커 이미지를 실행하여 특정한 프로세스가 띄워진 상태, 혹은 프로세스를 동작시키는 기술을 도커 컨테이너
라고한다. 쉽게쉽게 이해하려면 프로세스
라고 생각하면 될 듯?
그렇기에 Docker를 실행하기 위해서는 도커 이미지를 만드는 것이 선행되어야 한다.
이미지를 만들기 위해서는 Dockerfile
이라는 이름의 파일을 생성하여 이미지를 만들기 위한 명령어를 입력해야 한다.
💡
Dockerfile
파일 생성 시에 대소문자 틀리지 않도록 주의! (틀리면 오류난다...)
FROM node:14
WORKDIR /my_Folder/
COPY . /my_Folder/
CMD node index.js
FROM
: 이곳에 기재한 OS가 컨테이너에 설치된다.
WORKDIR
: /my_Folder/ 디렉토리 하위로 위치를 이동시킨다.
COPY
: .
는 현재 위치에 있는 모든 파일을 의미하고, 이 파일들을 /my_Folder/
하위로 옮긴다.
RUN
: 일반적으로 뒤에 오는 명령어를 실행하고, 여러번 입력이 가능하다.
CMD
: RUN과 마찬가지로 뒤에 오는 명령어를 실행하는 대신, 단 한번만 입력이 가능하므로 주로 파일의 마지막에 쓰인다.
위의 형식으로 파일을 작성하고 파일이 있는 위치에서 docker build .
명령어를 입력하면 파일이 빌드되면서 이미지가 생성된다.