2. 지난 이야기 - 0
● 도커 컨테이너의 network interface가 host 머신에서 안 보이는 이유
● 도커 컨테이너에서 loopback network interface가 다뤄지는 방식
3. linux namespace
● namespace에 속해있는 프로세스들에게 고유한 리소스를 사용하는
듯한 추상화를 제공하는 기능
● cgroup, IPC, network, mount, pid, time, user, UTS 타입의
namespace가 존재
https://man7.org/linux/man-pages/man7/namespaces.7.html
4. linux namespace
● namespace에 속해있는 프로세스들에게 고유한 리소스를 사용하는
듯한 추상화를 제공하는 기능
● cgroup, IPC, network, mount, pid, time, user, UTS 타입의
namespace가 존재
https://man7.org/linux/man-pages/man7/namespaces.7.html
네트워크 namespace를 이용해서
도커 컨테이너의 interface와
host 머신의 network interface를
분리되고 있던 것!
5. 지난 이야기 - 1
● 기본적인 docker network 구성 방식
○ bridge network
○ host network
○ overlay network
○ ipvlan network
○ macvlan network
○ user-defined bridge network
6. 자주 보게 될 docker 네트워크 종류
● bridge
○ 네트워크 옵션 없이 컨테이너를 실행시키면 bridge 네트워크 드라이브를 이용
○ 기본적으로 docker0 브릿지로 바로 연결됨
● host
○ 컨테이너의 네트워크 격리 없이 호스트 머신의 네트워크를 그대로 사용하고 싶을 때 사용
○ 컨테이너를 단순히 소프트웨어 패키징으로 사용하는 것
10. Container Orchestration Tool
● 배포, 리소스 할당, 스케일링, 네트워킹, 로드밸런싱 등의 기능
을 제공하여 태스크를 자동화하고 관리할 수 있도록 도와준
다
● docker compose, docker swarm, kubernetes(k8s), mesos 등
다양한 툴이 존재
https://www.redhat.com/ko/topics/containers/what-is-container-orchestration
https://devopscube.com/docker-container-clustering-tools/
11. Docker Compose
● 아주 간단한 container orchestration 도구로 기능이 제한적이지만
손쉽게 도커 어플리케이션을 배포할 수 있음
● yaml 파일을 이용하여 여러 개의 컨테이너로 구성된 도커 어플리케
이션의 실행, 관리를 도와주는 도구
● 도커 어플리케이션이 사용할 도커 네트워크를 자동으로 생성
https://docs.docker.com/compose/
15. 실전 문제 3. ***
docker compose로 프로젝트 스택을 구성할 때
를 기억해봅시다.
웹서버 혹은 웹어플리케이션에서 DB로 연결할
때, `postgresql` 혹은 `mysql` 이런 식으로 URI
를 입력해도 연결이 잘 되었을거에요!
이게 어떻게 가능한지 알려주세요🙏