https://avengersrhydon1121.tistory.com/287
image를 기반으로 container를 작동시킴.
docker image는 기본적으로 docker hub에 있는 것을 base image로 사용할 수 있고 dockerfile에 필요한 부분을 추가하여 custom image도 만들 수 있음.
docker가 하나의 컨테이너, 서비스만 관리할 수 있다면 docker compose는 여러 개의 컨테이너 서비스를 관리할 수 있음.
https://velog.io/@kdaeyeop/도커-Docker-와-VM의-차이
docker와 vm의 차이는 guest os의 유무.
vm은 guest os가 있기 때문에 기본적으로 os가 차지하는 메모리가 있지만 docker는 guest os가 없기 때문에 그에 필요한 자원 할당도 필요 없어짐.
서비스를 실행하는데 필요한 패키지만 있으면 서비스를 실행할 수 있음.
docker는 host os의 커널을 공유하는 방식으로 돌아감.
docker에서 사용할 수 있는 volume은 bind mount
, volume
, tmpfs mount
가 있다. docker volume을 사용하게 된다면 docker container의 writable layer에 data를 쓰지 않기 때문에 container의 size를 늘리지 않아도 된다는 장점이 있다. (참고)
셋의 차이는 다음과 같다.
volume
: Docker area와 연결. Docker area는 Docker에 의해 관리된다. 때문에 Docker CLI로 볼륨을 관리할 수 있음(참고)
bind mount
: docker의 host의 filesystem영역과 연결. (참고)
tmps mount
: docker host의 memory와 연결. 휘발성이다. (참고)
기본적으로 생성돼있는 network는 bridge
, host
, none
타입이 있음.
bridge
: docker끼리 독자적인 네트워크망 씀. host에서 접속하고 싶으면 host와 컨테이너 간에 port powarding필요. 같은 bridge network에 연결된 컨테이너끼리는 컨테이너명이 곧 호스트명이 됨.
host
: host 네트워크망 공유해서 씀
none
: 순수버전. 사용자가 커스텀해서 쓸 수 있게 만들어 놓은 것 같다고 함.