• toc {:toc}

웹어셈블리 시스템인터페이스 wasm

  • Docker Services

  • 서비스는 생산적 측면에서의 컨테이너를 말한다.

  • 하지만 이미지가 동작하는 방식을 코드화한다.

    • 사용할 포트가 무엇인지
    • 얼마나 많은 컨테이너를 만들어 사용할 것인지
  • Docker Compose

  • 2개 이상의 컨테이너(서비스)를 하나의 어플리케이션처럼 구동하도록 한다.

  • 이미지를 실행하기 위해, 통신을 위해 연결하기 위해 포트, ip 주소가 필요하다.

  • 비디오 공유 사이트를 구축한다고 가정

    • 어플리케이션 데이터를 저장하기 위한 데이터베이스 서비스
    • 비디오 압축, 변환을 위한 서비스
    • 프론트 엔드 서비스 등등
  • yaml 파일을 사용한다.

  • docker-compose 명령

    • docker-compose up : 멀티 컨테이너 서비스를 시작
    • docker-compose down : 모든 서비스 중지
    • docker-compose scale : 특정 컨테이너가 성능이 부족하다 생각되면 scale을 통해 선택된 서비스에 더 많은 자원을 할당한다.
  • docker compose file 만들기

    • 작업 폴더 만들기
    • 작업 폴더로 경로 이동
    • docker-compose.yml 파일 생성
    • 파일을 채울 때 탭을 사용하지 않는다.
    • 두 개 이상의 이미지를 띄울 수 있다.
  • 3가지 모두 넣을 수 있다.

    • CPU
    • Disk Storage
    • Network
  • YAML 파일

    • Indentation-based로 구성
    • 일반적인 모든 태스크에 잘 작동한다.
    • 데이터 나열화 언어
  • YAML 사용 케이스

    • configuration files
    • Log file
    • cross-language data sharing
    • 복잡한 자료구조 디버깅
  • DNS 서버

image

  • 컨테이너 서비스 안에 DNS(Domain Name Service) 서버를 만들어준다.

    • docker-compose를 통해 같이 실행되고 있는 컨테이너의 이름을 설정한다.
    • 이름만으로 접속이 가능하다.
  • 컨테이너 서비스에 대해 이름을 지정할 수 있다.

  • worker1 / 2 로 지정한 경우 curl http://worker1:80 과 같이 이름을 통해 접속할 수 있다.

  • curl : Client URL

  • 다양한 프로토콜을 사용하는 데이터를 전송하기 위한 라이브러리, 커멘드 라인 도구를 제공하는 소프트웨어 프로젝트이다.

  • 서버 클라이언트를 띄웠을 경우 서버에 데이터를 요청하고 받아오는 http 프로토콜을 사용할 수 있다.

  • PAT (Port Address Transport)

  • Private 포트와 Public 포트를 연결해 통신이 가능하도록 만든다.

  • 컨테이너는 호스트와 떨어져 독립적이기 때문에 내부에서 80번 포트를 연결하더라도 호스트 입장에서는 인식할 수 없다. 때문에 외부와의 통신을 위해 private 네트워크와 public 네트워크를 포트를 지정해 연결한다.