회사에서 신입 개발자가 들어왔다고 생각해보자.
이때, Docker를 사용하면 어떤 장점이 있을까?

1. 환경 세팅이 간단하다.
보통 신입은 개발 환경 세팅에 며칠이 걸린다. Python 버전, Node.js버전, DB 설치 등등.
수업 때마다 개발 환경 세팅 할 때가 제일 머리 아픈 것 같다..ㅠㅠ
하지만 Docker는 Dockerfile이라는 "환경 레시피"만 있으면 된다.
FROM python:3.11-slim
COPY app.py /app/app.py
WORKDIR /app
CMD ["python", "app.py"]
위는 dockerfile이다.
신입은 그냥 docker build -t myapp:1.0 . 명령어 한 줄로 팀과 똑같은 실행 환경을 바로 가질 수 있다.
즉, 환경 세팅 때문에 삽질한 시간을 아낄 수 있다..ㅎㅎ
2. 팀과 똑같은 실행 환경 사용
Docker로 만든 이미지를 신입도 똑같이 사용 가능하다.
이미지는 실행 환경을 통째로 담은 완성품이다.
신입은 이 이미지를 실행해서 컨테이너(Container)를 띄우기만 하면 된다.
docker run -p 8080:8080 myapp:1.0
이렇게 실행된 컨테이너는 독립된 작은 개발 공간이기 때문에, 실수해도 금방 지우고 다시 만들 수 있다.
3. 서버 배포 과정도 동일하다.
신입이 로컬에서 만든 이미지를 팀의 레지스트리(Docker Hub, AWS ECR 등)에 올릴 수 있다.
docker push myapp:1.0
서버나 클라우드에서는 그대로 내려받아 실행한다.
docker pull myapp:1.0
docker run -d -p 80:8080 myapp:1.0
즉, 개발 환경과 서버 환경이 완전히 동일하다.
4. CI/CD 파이프라인 이해가 쉽다.
신입이 배포 프로세스를 처음 배울 때, Docker가 있으면 훨씬 단순하게 이해가 가능하다.
개발자가 Dockerfile로 이미지를 만들고 push해 서버는 pull해서 run한다.
이게 CI/CD 파이프라인의 기본이 되기 때문에, 자동화 개념도 쉽게 익힐 수 있다.