SlideShare a Scribd company logo
1 of 15
Docker Network (1)
wnaldj1589@gmail.com
지난 이야기 - 0
● 도커 컨테이너의 network interface가 host 머신에서 안 보이는 이유
● 도커 컨테이너에서 loopback network interface가 다뤄지는 방식
linux namespace
● namespace에 속해있는 프로세스들에게 고유한 리소스를 사용하는
듯한 추상화를 제공하는 기능
● cgroup, IPC, network, mount, pid, time, user, UTS 타입의
namespace가 존재
https://man7.org/linux/man-pages/man7/namespaces.7.html
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를
분리되고 있던 것!
지난 이야기 - 1
● 기본적인 docker network 구성 방식
○ bridge network
○ host network
○ overlay network
○ ipvlan network
○ macvlan network
○ user-defined bridge network
자주 보게 될 docker 네트워크 종류
● bridge
○ 네트워크 옵션 없이 컨테이너를 실행시키면 bridge 네트워크 드라이브를 이용
○ 기본적으로 docker0 브릿지로 바로 연결됨
● host
○ 컨테이너의 네트워크 격리 없이 호스트 머신의 네트워크를 그대로 사용하고 싶을 때 사용
○ 컨테이너를 단순히 소프트웨어 패키징으로 사용하는 것
질문 0
● docker0 브릿지가 무엇일까요?
대략적인 네트워크 인터페이스 구성
Host Machine
docker0 bridge
interface
Network
Interface 0
Network
Interface 1
Network
Interface k
container 0
virtual
network
interface 0
container 1
virtual
network
interface 1
container k
virtual
network
interface k
어? 그런데 도커 사용할 때
네트워크 옵션을 준 적 있어요?
있으면 👍👍👍
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/
Docker Compose
● 아주 간단한 container orchestration 도구로 기능이 제한적이지만
손쉽게 도커 어플리케이션을 배포할 수 있음
● yaml 파일을 이용하여 여러 개의 컨테이너로 구성된 도커 어플리케
이션의 실행, 관리를 도와주는 도구
● 도커 어플리케이션이 사용할 도커 네트워크를 자동으로 생성
https://docs.docker.com/compose/
docker swarm, k8s,
mesos 등은 천천히 공부하
는 걸루!
이제 실전 문제!
실전 문제 1.
docker container로 띄운 어플리케이션의
8080포트에 호스트 머신의 8080포트로 접
속하고 싶은 상황입니다.
2가지 이상의 실행 방법을 알려주세요🙏
실전 문제 2.
docker compose로 도커 네트워크가 어떻게
관리되는지 알려주세요🙏
실전 문제 3. ***
docker compose로 프로젝트 스택을 구성할 때
를 기억해봅시다.
웹서버 혹은 웹어플리케이션에서 DB로 연결할
때, `postgresql` 혹은 `mysql` 이런 식으로 URI
를 입력해도 연결이 잘 되었을거에요!
이게 어떻게 가능한지 알려주세요🙏

More Related Content

Similar to 1. Docker Network (1)

aws/docker/rails를 활용한 시스템 구축/운용 - docker편
aws/docker/rails를 활용한 시스템 구축/운용 - docker편aws/docker/rails를 활용한 시스템 구축/운용 - docker편
aws/docker/rails를 활용한 시스템 구축/운용 - docker편negabaro
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기iFunFactory Inc.
 
[TeamStudy-022] Docker
[TeamStudy-022] Docker[TeamStudy-022] Docker
[TeamStudy-022] DockerWonjun Hwang
 
Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8sHyoungjun Kim
 
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - WebinarNAVER CLOUD PLATFORMㅣ네이버 클라우드 플랫폼
 
Devfair kubernetes 101
Devfair kubernetes 101Devfair kubernetes 101
Devfair kubernetes 101Daegwon Kim
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)Ildoo Kim
 
[slideshare]k8s.pptx
[slideshare]k8s.pptx[slideshare]k8s.pptx
[slideshare]k8s.pptxssuserb8551e
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호용호 최
 
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례NAVER LABS
 
1. Docker Network (0)
1. Docker Network (0)1. Docker Network (0)
1. Docker Network (0)DEVELOPER.NET
 
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...OpenStack Korea Community
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축Ji-Woong Choi
 
모두의 쿠버네티스 (Kubernetes for everyone)
모두의 쿠버네티스 (Kubernetes for everyone)모두의 쿠버네티스 (Kubernetes for everyone)
모두의 쿠버네티스 (Kubernetes for everyone)Eunwoo Cho
 
왕초보를 위한 도커 사용법
왕초보를 위한 도커 사용법왕초보를 위한 도커 사용법
왕초보를 위한 도커 사용법GeunCheolYeom
 
01.WEB SYSTEM BASED ON DOCKER
01.WEB SYSTEM BASED ON DOCKER01.WEB SYSTEM BASED ON DOCKER
01.WEB SYSTEM BASED ON DOCKEROpennaru, inc.
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기Sumin Byeon
 

Similar to 1. Docker Network (1) (20)

why docker
why dockerwhy docker
why docker
 
aws/docker/rails를 활용한 시스템 구축/운용 - docker편
aws/docker/rails를 활용한 시스템 구축/운용 - docker편aws/docker/rails를 활용한 시스템 구축/운용 - docker편
aws/docker/rails를 활용한 시스템 구축/운용 - docker편
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기
 
[TeamStudy-022] Docker
[TeamStudy-022] Docker[TeamStudy-022] Docker
[TeamStudy-022] Docker
 
Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8s
 
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar
 
Devfair kubernetes 101
Devfair kubernetes 101Devfair kubernetes 101
Devfair kubernetes 101
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
 
[slideshare]k8s.pptx
[slideshare]k8s.pptx[slideshare]k8s.pptx
[slideshare]k8s.pptx
 
Docker Container
Docker ContainerDocker Container
Docker Container
 
Docker Intro
Docker IntroDocker Intro
Docker Intro
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호
 
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
 
1. Docker Network (0)
1. Docker Network (0)1. Docker Network (0)
1. Docker Network (0)
 
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
모두의 쿠버네티스 (Kubernetes for everyone)
모두의 쿠버네티스 (Kubernetes for everyone)모두의 쿠버네티스 (Kubernetes for everyone)
모두의 쿠버네티스 (Kubernetes for everyone)
 
왕초보를 위한 도커 사용법
왕초보를 위한 도커 사용법왕초보를 위한 도커 사용법
왕초보를 위한 도커 사용법
 
01.WEB SYSTEM BASED ON DOCKER
01.WEB SYSTEM BASED ON DOCKER01.WEB SYSTEM BASED ON DOCKER
01.WEB SYSTEM BASED ON DOCKER
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
 

More from DEVELOPER.NET

EDA 맛보기 (Event Driven Architecture)
EDA 맛보기 (Event Driven Architecture)EDA 맛보기 (Event Driven Architecture)
EDA 맛보기 (Event Driven Architecture)DEVELOPER.NET
 
[GDG 대전 IO Extended 22] 생산성 향상을 위한 원포인트툴_ Cloud Code
[GDG 대전 IO Extended 22] 생산성 향상을 위한 원포인트툴_ Cloud Code[GDG 대전 IO Extended 22] 생산성 향상을 위한 원포인트툴_ Cloud Code
[GDG 대전 IO Extended 22] 생산성 향상을 위한 원포인트툴_ Cloud CodeDEVELOPER.NET
 
1. github action을 활용한 CI
1. github action을 활용한 CI1. github action을 활용한 CI
1. github action을 활용한 CIDEVELOPER.NET
 
0. CI_CD 툴에 대한 오해
0. CI_CD 툴에 대한 오해0. CI_CD 툴에 대한 오해
0. CI_CD 툴에 대한 오해DEVELOPER.NET
 
[GDG 대전] Flutter에 Firebase 한스푼 - GDG Flutter Festival
[GDG 대전] Flutter에 Firebase 한스푼 - GDG Flutter Festival[GDG 대전] Flutter에 Firebase 한스푼 - GDG Flutter Festival
[GDG 대전] Flutter에 Firebase 한스푼 - GDG Flutter FestivalDEVELOPER.NET
 
[GDG 대전] 자율주행로봇 서버는 어떻게 구성되어 있나 - 주니어들 개발자들의 우당탕탕 서버 개발기
[GDG 대전] 자율주행로봇 서버는 어떻게 구성되어 있나 - 주니어들 개발자들의 우당탕탕 서버 개발기[GDG 대전] 자율주행로봇 서버는 어떻게 구성되어 있나 - 주니어들 개발자들의 우당탕탕 서버 개발기
[GDG 대전] 자율주행로봇 서버는 어떻게 구성되어 있나 - 주니어들 개발자들의 우당탕탕 서버 개발기DEVELOPER.NET
 
2. aws 네트워크 (2)
2. aws 네트워크 (2)2. aws 네트워크 (2)
2. aws 네트워크 (2)DEVELOPER.NET
 
2. aws 네트워크 (1)
2. aws 네트워크 (1)2. aws 네트워크 (1)
2. aws 네트워크 (1)DEVELOPER.NET
 
2. aws 네트워크 (0)
2. aws 네트워크 (0)2. aws 네트워크 (0)
2. aws 네트워크 (0)DEVELOPER.NET
 
0. 네트워크 공부의 필요성
0. 네트워크 공부의 필요성0. 네트워크 공부의 필요성
0. 네트워크 공부의 필요성DEVELOPER.NET
 

More from DEVELOPER.NET (10)

EDA 맛보기 (Event Driven Architecture)
EDA 맛보기 (Event Driven Architecture)EDA 맛보기 (Event Driven Architecture)
EDA 맛보기 (Event Driven Architecture)
 
[GDG 대전 IO Extended 22] 생산성 향상을 위한 원포인트툴_ Cloud Code
[GDG 대전 IO Extended 22] 생산성 향상을 위한 원포인트툴_ Cloud Code[GDG 대전 IO Extended 22] 생산성 향상을 위한 원포인트툴_ Cloud Code
[GDG 대전 IO Extended 22] 생산성 향상을 위한 원포인트툴_ Cloud Code
 
1. github action을 활용한 CI
1. github action을 활용한 CI1. github action을 활용한 CI
1. github action을 활용한 CI
 
0. CI_CD 툴에 대한 오해
0. CI_CD 툴에 대한 오해0. CI_CD 툴에 대한 오해
0. CI_CD 툴에 대한 오해
 
[GDG 대전] Flutter에 Firebase 한스푼 - GDG Flutter Festival
[GDG 대전] Flutter에 Firebase 한스푼 - GDG Flutter Festival[GDG 대전] Flutter에 Firebase 한스푼 - GDG Flutter Festival
[GDG 대전] Flutter에 Firebase 한스푼 - GDG Flutter Festival
 
[GDG 대전] 자율주행로봇 서버는 어떻게 구성되어 있나 - 주니어들 개발자들의 우당탕탕 서버 개발기
[GDG 대전] 자율주행로봇 서버는 어떻게 구성되어 있나 - 주니어들 개발자들의 우당탕탕 서버 개발기[GDG 대전] 자율주행로봇 서버는 어떻게 구성되어 있나 - 주니어들 개발자들의 우당탕탕 서버 개발기
[GDG 대전] 자율주행로봇 서버는 어떻게 구성되어 있나 - 주니어들 개발자들의 우당탕탕 서버 개발기
 
2. aws 네트워크 (2)
2. aws 네트워크 (2)2. aws 네트워크 (2)
2. aws 네트워크 (2)
 
2. aws 네트워크 (1)
2. aws 네트워크 (1)2. aws 네트워크 (1)
2. aws 네트워크 (1)
 
2. aws 네트워크 (0)
2. aws 네트워크 (0)2. aws 네트워크 (0)
2. aws 네트워크 (0)
 
0. 네트워크 공부의 필요성
0. 네트워크 공부의 필요성0. 네트워크 공부의 필요성
0. 네트워크 공부의 필요성
 

1. Docker Network (1)

  • 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 ○ 컨테이너의 네트워크 격리 없이 호스트 머신의 네트워크를 그대로 사용하고 싶을 때 사용 ○ 컨테이너를 단순히 소프트웨어 패키징으로 사용하는 것
  • 7. 질문 0 ● docker0 브릿지가 무엇일까요?
  • 8. 대략적인 네트워크 인터페이스 구성 Host Machine docker0 bridge interface Network Interface 0 Network Interface 1 Network Interface k container 0 virtual network interface 0 container 1 virtual network interface 1 container k virtual network interface k
  • 9. 어? 그런데 도커 사용할 때 네트워크 옵션을 준 적 있어요? 있으면 👍👍👍
  • 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/
  • 12. docker swarm, k8s, mesos 등은 천천히 공부하 는 걸루! 이제 실전 문제!
  • 13. 실전 문제 1. docker container로 띄운 어플리케이션의 8080포트에 호스트 머신의 8080포트로 접 속하고 싶은 상황입니다. 2가지 이상의 실행 방법을 알려주세요🙏
  • 14. 실전 문제 2. docker compose로 도커 네트워크가 어떻게 관리되는지 알려주세요🙏
  • 15. 실전 문제 3. *** docker compose로 프로젝트 스택을 구성할 때 를 기억해봅시다. 웹서버 혹은 웹어플리케이션에서 DB로 연결할 때, `postgresql` 혹은 `mysql` 이런 식으로 URI 를 입력해도 연결이 잘 되었을거에요! 이게 어떻게 가능한지 알려주세요🙏