🐳Docker (KT DS 5일차) - 끝

Jake_Young·2020년 8월 7일
0

도커, Docker

목록 보기
7/9
post-thumbnail

😆 수업 내용

Docker network 종류: host

  • container가 docker host의 NIC를 그대로 사용하는 것

docker run -d --name myweb2 -p 8080:80 --net host httpd

  • 이렇게 하고 방화벽을 끄면 어느 컴퓨터든 curl localhost로 접속할 수 있다.
  • 방화벽 끄는 명령어 "systemctl disable firewalld"

docker0

  • 기본적으로 docker container가 host 외부와 통신할 때는 docker0라는 virtual bridge로 이루어진다.
  • container를 생성할 때 network를 지정하지 않으면 기본적으로 docker0의 virtual bridge에 연결된다

docker network 생성하기

  • docker network create --driver bridge --subnet 10.10.10.0/24 mynet

web-container와 db-container를 연결하기

  • docker run --link <db-container 이름>:

Docker Compose

  • 여러 개의 서비스를 하나의 container로 묶어서 관리하는 것
  • kubernetes를 컴퓨터 한 대에서 하는 거라고 생각하면 된다.
  • 이것은 여러 개의 container의 옵션과 환경을 정의한 파일(*.yml)을 읽어 Container를 순차적으로 생성하는 방식으로 동작한다.
  • 이 설정 파일은 run 명령어의 옵션을 그대로 사용하며, 각 container의 의존성, 네트워크, 볼륨 등을 함께 정의할 수 있다.

Docker Swarm

  • 하나의 Docker Host에 여러 대의 Container를 운영하다가 CPU, RAM, Disk 같은 자원이 부족한 상황에 대응하기 위한 기술
  • 성능 좋은 하드웨어를 쓰기보다는 여러 대의 서버를 하나로 묶어서 서비스하는 Clutering 기술
  • Manager Node(2대 이상이고 서로를 감시해야한다.)와 Worker Node로 구성된다.
  • 먼저 vi /etc/sysconfig/selinux 에 가서 selinux를 disabled로 바꾼다
    • selinux는 centos의 보안 프로그램
    • 바꾼 후엔 reboot 해준다
  • docker swarm init --advertise-addr "현재 IP 주소"
    • 시작하는 명령어
    • 결과를 복사해서 worker로 만들고 싶은 docker에 붙여넣는다.
    • 예시 "docker swarm join --token SWMTKN-1-0xmdo75vsuwlz2jfm6hoyot9mzd61xxob61rbatwc0mad4f65u-4tkbtx8tuwa9rtdhwyfz4aa37 10.0.2.4:2377"
  • docker network ls를 했을 때 docker_gwbridge가 생겨야 한다.
  • Swarm mode의 service 개념
    • Docker swarm이 관리하는 단위는 컨테이너가 아니라 service이다.
    • Service는 컨테이너의 집합이다
  • docker service create --name myweb --replicas 4 -p 80:80 httpd
  • docker service ps myweb
  • docker service scale myweb=2 (서비스 스케일 줄이기)

Kubernetes

  • 소프트웨어적으로 Load Balance를 구현해두었다.
  • 기본 단위를 Pod로 갖는다.
  • Pod 덕분에 같은 포트를 공유하게 서비스를 열 수 있다.

😃 명령어

Docker network ls

hostname -I


🤗 꿀팁

랜카드 확인하기

  • yum install bridge-utils -y
  • brctl show

quorum

  • container가 죽었는 지 살았는 지 확인하는 것. 클러스터에서.

attach랑 exec의 차이

  • 그냥 exec 써라
  • 책에는 attach가 많지만 그냥 무시해라


😏 질문

그런데 AWS 쓰면 K8S 쓸 이유가 있나?

  • 로드밸런싱과 같은 것들 다 지원해주지 않나?
profile
자바스크립트와 파이썬 그리고 컴퓨터와 네트워크

0개의 댓글