도커는는 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트 입니다. 도커는 개발 환경 요소들이 설치된 모습을 이미지로 저장합니다. 이미지들은 서로 연결되서 동작하는 설정은 문서로 저장합니다.
가상머신과 비슷하지만 보다 더 빠르고 자원을 효율적으로 사용할 수 있습니다.
왼쪽이 가상머신, 오른쪽은 도커입니다.
출처
서버를 돌리기 위해서는 환경이 갖춰져야 합니다.
개발자분들고 협업을 하기 위해서는 개발환경을 똑같이 만들어야 합니다. 하지만 매번 회사에서 똑같이 구축하는 것은 매우 번거로운 일 입니다. 그래서 이 과정을 간편하게 해줄 수 있는 것이 바로 도커 입니다.
Dockerfile
가상 컴퓨터를 만들기 위해서는 도커파일을 작성해야합니다.
FROM node:14
COPY ./index.js /myfolder/
WORKDIR /myfolder/
CMD node index.js
FROM 리눅스:최신버전
-> 리눅스의 최신버전이 깔린 컴퓨터가 한대 만들어짐
FROM node:14
node, npm, yarn이 모두 설치된 리눅스 컴퓨터가 한대 생김
docker build
만들어진 설명서를 가지고 하나로 묶여진 이미지로 만드는 것을 build한다고 표현합니다.
Docker 환경에서는 내 컴퓨터 안에 도커라는 프로그램이 있고, 그 안에서 express 서버가 실행중입니다.
가상 컴퓨터 안에서는 3000번 포트로 잘 접속되지만, 내 컴퓨터에서는 3000번에 아무 것도 존재하지 않아 요청 시 길을 잃어버리게 되어 접속 할 수 없게 됩니다. 이때 가상 컴퓨터의 3000번과 내 컴퓨터의 포트를 연결해줘야하고 우린 이것을 포트 포워딩
이라고 부릅니다.