[Docker] Docker란? 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼 입니다. 컨테이너라 하면 배에 실은 네모난 화물 수송용 박스를 생각할 수 있다. 각각의 컨테이너 안에는 옷, 신발, 전자제품, 술, 과일등 다양한 화물을 넣을수 있고 규격화되어 컨테이너선이나 트레일러등 다양한 운송수단으로 쉽게 옮길 수 있음 서버에서 이야기하는 컨테이너도 이와 비슷 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해줌 backend 프로그램, DB서버, 메시지 큐등 어떤 프로그램도 컨테이너로 추상화 할 수 있고 조립PC, AWS, Google cloud등 어디에서든 실행 할 수 있음 컨테이너를 가장 잘 사용하는 기업은 구글인데 2014년 발표에 따르면 구글은 모든 서비스들이 컨테이너로 동작하고 매주 20억개의 컨테이너를 구동한다고 함 새로운 컨테이너를 만드는데 걸리는 시간은 겨우 1~2초 로 가상머신과 비교도 할 수 없이 빠르다. 이미지 도커에서 가장 중요한 개념은 컨테이너와 함께 이미지 라는 개념임 이미지는 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것 ex) ubuntu이미지는 ubuntu를 실행하기 위한 모든 파일을 가지고 있음 ex) MySQL이미지는 debian을 기반으로 MySQL을 실행하는데 필요한 파일과 실행 명령어, 포트 정보등을 가지고 있음 말그대로 이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있기 때문에 의존성 파일을 컴파일하고 이것저것 설치할 필요가 없다 컨테이너는 이미지를 실행한 상태라고 볼 수 있음 추가되거나 변하는 값은 컨테이너에 저장 같은 이미지에서 여러개의 컨테이너를 생성할 수 있고, 컨테이너의 상태가 바뀌거나 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남아 있음 레이어 저장 방식 도커이미지는 컨테이너를 실행하기 위한 모든 정보를...