도커란 무엇인가?
- 서버를 효과적으로 관리하기 위한 툴
- 서버는 A부터 Z까지 눈에는 잘 안보이지만 굉장히 복잡한 유기적 구조로 얽혀 있음
- 그래서 하나라도 실수하면 작동이 안되는 불 상사가 발생할 수 있음
- 그걸 방지하기 위한 오픈소스 공짜 프로그램이다.
그렇다면 왜 도커를 쓰는가?
- 회사에서 Oracle설치해달라 Wordpress설치해달라 Git 설치해달라 여러 부탁이 올 때 메뉴얼 보고 따라하는건 옛날 방식이다.
- 버전이 안 맞거나 컴퓨터 운영체제 따라서 설치가 될수도 있고 안 될수도 있다.
- 프로그램을 설치하는걸 넘어서 AWS랑 Azure Google Cloud 같은 환경도 바뀔 수 있고, 웹프로그래밍 할때에도 누구는 Go 누구는 Node.JS 등 다들 개발 환경이 전부 달라서 따로 취급해줄 필요가 있다.
- 그래서 이걸 해결해주고자 하는것이 바로 Docker이다.
도커가 등장한 후 서버관리 방식 변화
- 파이썬 버전이 바뀌어도 두려움이 사라짐
- 어떠한 프로그램도 컨테이너로 만들 수 있음 (컨테이너 : 가상머신과 비슷하지만 하나의 독립적인 작은 파티션 공간이라고 생각하면 됨)
- 도커의 컨테이너 개념은 가상머신처럼 독립적으로 실행되지만 더 빠르고 더 쉽고 더 효율적이다.
- 패키지 업데이트도 그냥 콘테이너 만들어서 돌리면 된다.
- 옛날에는 원시적으로 PPT 보고 메뉴얼을 만들었다.
- 그리고 CHEF, Puppet, Ansible 같은 상태 도구들이 나오긴 했지만 어려웠다.
- 가상머신을 이제 썼는데 이제 느리고 서버 이미지 공유도 어려웠다.