똑같은 환경에서 배포될 수 있도록 하는 도구.(운영체제, 세팅 등)
초반에는 가상머신 (ex. 인스턴스), 컴퓨터안에 가상 컴퓨터를 넣는방식으로 해결했지만, 컴퓨터의 성능이 저하된다는 단점이 있어서
docker가 도입되었다.
도커는 부팅 등 운영체제의 핵심 기능(커널)은 공유하는 개발자도구이다.
=> OS전체를 새로 설치하지 않아도 됨 => 겹치는 기능을 새로 설치하지 않으므로 성능에 영향이 덜 감.
--> window, linux, Mac과 상관 없이 충돌이 없음
이러한 이유들 때문에 협업을 위해서는 필수가 되어버렸다.
정리
doker는 개발 환경 요소들이 설치된 모습을 이미지로 저장한다. 저장한이미지는 클라우드에 올려지고, 이미지들이 서로 연결되서 동작하는 설정은 문서(Dockerfile)로 저장된다. 마지막으로 새 컴퓨터에서 복사한 문서의 내용대로 이미지를 다운받아 설치한다. 이전 가상머신과 비슷하지만 효율성, 경제성에서 큰 이점을 가져갈 수 있고 불필요한 추가 운영체제의 설치가 필요가 없다.
-> Doker(우)와 가상머신(좌)의 비교
설치
deb파일 설치
터미널에서 sudo dpkg -i '파일이름'(본인 컴퓨터 우분투라서 좀 더 복잡하게 설치함, docs참고 필요)
(우분투 설치방법 참고: https://kindloveit.tistory.com/18)
도커 허브에서는 npm 다운 받는 것처럼 다른 사람들이 올려놓은 이미지를 다운로드 할 수도 있다. 또한, 한 컴퓨터에서 다른 환경의 여러 서비스를 실행해야 하는 경우, 컨테이너로 분리되어 있기 때문에 서로 독립되어 실행 될 수 있다.
이것들을 위한 명령어이다.
여러가지 컨테이너를 다룰 때 좀 더 복잡한 설정이 필요하게 된다. 이럴 때 Docker-compose명령어로 docker-compose.yml
파일을 미리 만들어서 설정을 어떻게 할지 적어논다. 그리고 docker-compose up
명령어를 입력해서 컨테이너를 실행합니다.