AWS 강의 이론
docker volume 실습
- 바인드 볼륨
- mkdir html
- echo "Hello World" > index.html
- mv index.html html
- docker run -d -p 8081:80 --name skills-cnt -v /home/ec2-user/html:/usr/local/apache2/htdocs httpd:2.4.62
- docker run -d -p 8082:80 --name skills-cnt2 -v type=bind,source=/home/ec2-user/html,target=/usr/local/apache2/htdocs httpd:2.4.62
- 지명된 볼륨
- docker volume create skills-vol
docker network
-
Bridg(기본값)
- Host OS랑 네트워크는 격리되어 있으나, 브릿지를 통해 외부랑 통신
- docker와 네트워크 인터페이스를 이어주는 것을 브릿지라 한다.
- docker 컨테이너가 docker proxy를 통해 docker0로 가서 docker0가 네트워크 인터페이스를 통해 인터넷 통신

-
Host
- Host OS가 속한 네트워크를 같이 사용하는것
- 브릿지와 다르게 docker 컨테이너가 docker0 없이 바로 네트워크 인터페이스로 가서 인터넷 통신이 된다.

-
None
- 네트워크에 연결 안함. 즉, NAT,IGW가 연결되지 않은 private subnet
- 데이터베이스에서 주로 사용
-
Overlay
- 여러 호스트끼리 같은 네트워크로 공유,클러스터링 환경에서 주로 사용
- 클러스터링이란 여러 pc를 두고 같은 서비스를 작동시키고 다 묶는 것, 장점은 여러 자원을 한번에 쓰고 가용성이 좋음, 서버끼리 통신하기 위한 overlay망을 통해 통신
- 위에 overlay 그림 아래 클러스터링 그림

-
3rd-party plugins
- 누군가가 만든 애플리케이션을 통한 네트워킹
docker networking 생성 방법
- network라는 커스텀 객체를 생성해서 연결
- 미리 만들어져있는 기본 네트워크에 연결
실습
- bridge
- docker network create -d bridge world-bridge
- docker run -d -p 8081:80 --network world-bridge httpd:2.4.62
- docker inspect [docker id]로 확인하면 network쪽에서 world-bridge쪽에 연결된것을 확인 가능
- 찾기 어려우면 docker inspect [id] --format '{{ json .NetworkSettings.Networks(or 원하는거) }} ' | jq로 원하는 내용 쉽게 볼 수 있음
- 같은 브릿지 안에 있으면 이름으로만 통신 가능
- host
- docker run -d --network host nginx:latest
- inspect로 확인 시 ip가 없음