Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
titledeploy/docker-compose/docker-compose.yml
linenumberstrue
collapsetrue
version: '2'

services:
  front-end:
    image: weaveworksdemos/front-end:0.3.12
    hostname: front-end
    restart: always
    cap_drop:      #컨테이너 기능 모두 삭제
      - all
    read_only: true
  edge-router:
    image: weaveworksdemos/edge-router:0.1.1
    ports:
      - '80:80'
      - '8080:8080'
    cap_drop:
      - all
    cap_add:    #컨테이너 기능 추가
      - NET_BIND_SERVICE
      - CHOWN
      - SETGID
      - SETUID
      - DAC_OVERRIDE
    read_only: true
    tmpfs:          #임시 파일 시스템을 컨테이너 안에 마운트하십시오.단일 값 또는 목록 일 수 있습니다.
      - /var/run:rw,noexec,nosuid
    hostname: edge-router
    restart: always
  catalogue:
    image: weaveworksdemos/catalogue:0.3.5
    hostname: catalogue
    restart: always
    cap_drop:
      - all
    cap_add:
      - NET_BIND_SERVICE
    read_only: true
  catalogue-db:
    image: weaveworksdemos/catalogue-db:0.3.0
    hostname: catalogue-db
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - MYSQL_ALLOW_EMPTY_PASSWORD=true
      - MYSQL_DATABASE=socksdb
  carts:
    image: weaveworksdemos/carts:0.4.8
    hostname: carts
    restart: always
    cap_drop:
      - all
    cap_add:
      - NET_BIND_SERVICE
    read_only: true
    tmpfs:
      - /tmp:rw,noexec,nosuid
    environment:
      - JAVA_OPTS=-Xms64m -Xmx128m -XX:+UseG1GC -Djava.security.egd=file:/dev/urandom -Dspring.zipkin.enabled=false
  carts-db:
    image: mongo:3.4
    hostname: carts-db
    restart: always
    cap_drop:
      - all
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
    read_only: true
    tmpfs:
      - /tmp:rw,noexec,nosuid
  orders:
    image: weaveworksdemos/orders:0.4.7
    hostname: orders
    restart: always
    cap_drop:
      - all
    cap_add:
      - NET_BIND_SERVICE
    read_only: true
    tmpfs:
      - /tmp:rw,noexec,nosuid
    environment:
      - JAVA_OPTS=-Xms64m -Xmx128m -XX:+UseG1GC -Djava.security.egd=file:/dev/urandom -Dspring.zipkin.enabled=false
  orders-db:
    image: mongo:3.4
    hostname: orders-db
    restart: always
    cap_drop:
      - all
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
    read_only: true
    tmpfs:
      - /tmp:rw,noexec,nosuid
  shipping:
    image: weaveworksdemos/shipping:0.4.8
    hostname: shipping
    restart: always
    cap_drop:
      - all
    cap_add:
      - NET_BIND_SERVICE
    read_only: true
    tmpfs:
      - /tmp:rw,noexec,nosuid
    environment:
      - JAVA_OPTS=-Xms64m -Xmx128m -XX:+UseG1GC -Djava.security.egd=file:/dev/urandom -Dspring.zipkin.enabled=false
  queue-master:
    image: weaveworksdemos/queue-master:0.3.1
    hostname: queue-master
    volumes:              #볼륨을 설정합니다. 호스트 폴더:게스트폴더
      - /var/run/docker.sock:/var/run/docker.sock
    restart: always
    cap_drop:
      - all
    cap_add:
      - NET_BIND_SERVICE
    read_only: true
    tmpfs:
      - /tmp:rw,noexec,nosuid
  rabbitmq:
    image: rabbitmq:3.6.8
    hostname: rabbitmq
    restart: always
    cap_drop:
      - all
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
      - DAC_OVERRIDE
    read_only: true
  payment:
    image: weaveworksdemos/payment:0.4.3
    hostname: payment
    restart: always
    cap_drop:
      - all
    cap_add:
      - NET_BIND_SERVICE
    read_only: true
  user:
    image: weaveworksdemos/user:0.4.4
    hostname: user
    restart: always
    cap_drop:
      - all
    cap_add:
      - NET_BIND_SERVICE
    read_only: true
    environment:
      - MONGO_HOST=user-db:27017
  user-db:
    image: weaveworksdemos/user-db:0.4.0
    hostname: user-db
    restart: always
    cap_drop:
      - all
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
    read_only: true
    tmpfs:
      - /tmp:rw,noexec,nosuid
  user-sim:
    image: weaveworksdemos/load-test:0.1.1
    cap_drop:
      - all
    read_only: true
    hostname: user-simulator
    command: "-d 60 -r 200 -c 2 -h edge-router"




Info

cap-add / cap-drop 설명

https://docs.docker.com/engine/reference/run/


기본적으로 허용되며 제거 할 수있는 Linux 기능 옵션

기능 키기능 설명
SETPCAP프로세스 기능을 수정하십시오.
MKNODmknod (2)를 사용하여 특수 파일을 작성하십시오.
AUDIT_WRITE기록을 커널 감사 로그에 기록하십시오.
CHOWN파일 UID와 GID를 임의로 변경하십시오 (chown (2) 참조).
NET_RAWRAW 및 PACKET 소켓을 사용하십시오.
DAC_OVERRIDE파일 읽기, 쓰기 및 실행 권한 검사를 건너 뜁니다.
FOWNER일반적으로 프로세스의 파일 시스템 UID가 파일의 UID와 일치해야하는 작업에 대한 권한 검사를 건너 뜁니다.
FSETID파일을 수정할 때 set-user-ID 및 set-group-ID 사용 권한 비트를 지우지 마십시오.
KILL신호 전송에 대한 사용 권한 검사를 건너 뜁니다.
SETGID프로세스 GID 및 보충 GID 목록을 임의로 조작합니다.
SETUID프로세스 UID를 임의로 조작하십시오.
NET_BIND_SERVICE소켓을 인터넷 도메인 권한 포트 (1024보다 작은 포트 번호)에 바인딩합니다.
SYS_CHROOTchroot (2)를 사용하여 루트 디렉토리를 변경하십시오.
SETFCAP파일 기능을 설정하십시오.


다음 표는 기본적으로 부여되지 않고 추가 될 수있는 기능을 보여줍니다.

기능 키기능 설명
SYS_MODULE커널 모듈로드 및 언로드.
SYS_RAWIOI / O 포트 작업을 수행하십시오 (iopl (2) 및 ioperm (2)).
SYS_PACCTacct (2)를 사용하여 프로세스 계정을 켜거나 끕니다.
SYS_ADMIN다양한 시스템 관리 작업을 수행합니다.
SYS_NICE프로세스 nice 값 (nice (2), setpriority (2))을 올리고 임의 프로세스의 nice 값을 변경합니다.
SYS_RESOURCE리소스 제한을 무시하십시오.
SYS_TIME시스템 시계 설정 (settimeofday (2), stime (2), adjtimex (2)); 실시간 (하드웨어) 시계를 설정하십시오.
SYS_TTY_CONFIGvhangup (2) 사용; 가상 터미널에서 다양한 권한이 부여 된 ioctl (2) 작업을 사용합니다.
AUDIT_CONTROL커널 감사를 활성화 및 비활성화합니다. 감사 필터 규칙을 변경합니다. 감사 상태 및 필터링 규칙을 검색합니다.
MAC_ADMINMAC 구성 또는 상태 변경을 허용합니다. Smack LSM을 위해 구현되었습니다.
MAC_OVERRIDE필수 액세스 제어 (MAC)를 재정의하십시오.Smack Linux Security Module (LSM)을 위해 구현되었습니다.
NET_ADMIN다양한 네트워크 관련 작업을 수행합니다.
SYSLOG권한이있는 syslog (2) 작업을 수행하십시오.
DAC_READ_SEARCH파일 읽기 권한 검사 및 디렉토리 읽기 및 실행 권한 검사 무시.
LINUX_IMMUTABLEFS_APPEND_FL 및 FS_IMMUTABLE_FL i- 노드 플래그를 설정하십시오.
NET_BROADCAST소켓 브로드 캐스트를 만들고 멀티 캐스트를 수신합니다.
IPC_LOCK메모리를 잠급니다 (mlock (2), mlockall (2), mmap (2), shmctl (2)).
IPC_OWNERSystem V IPC 오브젝트에 대한 조작에 대한 권한 점검을 생략하십시오.
SYS_PTRACEptrace (2)를 사용하여 임의의 프로세스를 추적합니다.
SYS_BOOTreboot (2) 및 kexec_load (2)를 사용하고 재부팅하고 나중에 실행할 수 있도록 새 커널을로드하십시오.
LEASE임의 파일에 대한 임대 설정 (fcntl (2) 참조).
WAKE_ALARM시스템을 깨울 뭔가를 방아쇠를 당깁니다.
BLOCK_SUSPEND시스템 일시 중지를 차단할 수있는 기능을 사용합니다.


...