...
Code Block |
---|
title | deploy/docker-compose/docker-compose.yml |
---|
linenumbers | true |
---|
collapse | true |
---|
|
version: '2'
services:
front-end:
image: weaveworksdemos/front-end:0.3.12
hostname: front-end
restart: always
cap_drop: #컨테이너 기능 모두 삭제
- all
read_only: true #flag to set the volume as read-only
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 |
---|
|
출처: http://www.realhanbit.co.kr/books/226/pages/2205/preview
Image Removed
Info |
---|
Docker Documents : cap-add / cap-drop 설명
https://docs.docker.com/engine/reference/run/
기본적으로 허용되며 제거 할 수있는 Linux 기능 옵션
기능 키 | 기능 설명 |
---|
SETPCAP | 프로세스 기능을 수정하십시오. |
MKNOD | mknod (2)를 사용하여 특수 파일을 작성하십시오. |
AUDIT_WRITE | 기록을 커널 감사 로그에 기록하십시오. |
CHOWN | 파일 UID와 GID를 임의로 변경하십시오 (chown (2) 참조). |
NET_RAW | RAW 및 PACKET 소켓을 사용하십시오. |
DAC_OVERRIDE | 파일 읽기, 쓰기 및 실행 권한 검사를 건너 뜁니다. |
FOWNER | 일반적으로 프로세스의 파일 시스템 UID가 파일의 UID와 일치해야하는 작업에 대한 권한 검사를 건너 뜁니다. |
FSETID | 파일을 수정할 때 set-user-ID 및 set-group-ID 사용 권한 비트를 지우지 마십시오. |
KILL | 신호 전송에 대한 사용 권한 검사를 건너 뜁니다. |
SETGID | 프로세스 GID 및 보충 GID 목록을 임의로 조작합니다. |
SETUID | 프로세스 UID를 임의로 조작하십시오. |
NET_BIND_SERVICE | 소켓을 인터넷 도메인 권한 포트 (1024보다 작은 포트 번호)에 바인딩합니다. |
SYS_CHROOT | chroot (2)를 사용하여 루트 디렉토리를 변경하십시오. |
SETFCAP | 파일 기능을 설정하십시오. |
다음 표는 기본적으로 부여되지 않고 추가 될 수있는 기능을 보여줍니다.
기능 키 | 기능 설명 |
---|
SYS_MODULE | 커널 모듈로드 및 언로드. |
SYS_RAWIO | I / O 포트 작업을 수행하십시오 (iopl (2) 및 ioperm (2)). |
SYS_PACCT | acct (2)를 사용하여 프로세스 계정을 켜거나 끕니다. |
SYS_ADMIN | 다양한 시스템 관리 작업을 수행합니다. |
SYS_NICE | 프로세스 nice 값 (nice (2), setpriority (2))을 올리고 임의 프로세스의 nice 값을 변경합니다. |
SYS_RESOURCE | 리소스 제한을 무시하십시오. |
SYS_TIME | 시스템 시계 설정 (settimeofday (2), stime (2), adjtimex (2)); 실시간 (하드웨어) 시계를 설정하십시오. |
SYS_TTY_CONFIG | vhangup (2) 사용; 가상 터미널에서 다양한 권한이 부여 된 ioctl (2) 작업을 사용합니다. |
AUDIT_CONTROL | 커널 감사를 활성화 및 비활성화합니다. 감사 필터 규칙을 변경합니다. 감사 상태 및 필터링 규칙을 검색합니다. |
MAC_ADMIN | MAC 구성 또는 상태 변경을 허용합니다. Smack LSM을 위해 구현되었습니다. |
MAC_OVERRIDE | 필수 액세스 제어 (MAC)를 재정의하십시오.Smack Linux Security Module (LSM)을 위해 구현되었습니다. |
NET_ADMIN | 다양한 네트워크 관련 작업을 수행합니다. |
SYSLOG | 권한이있는 syslog (2) 작업을 수행하십시오. |
DAC_READ_SEARCH | 파일 읽기 권한 검사 및 디렉토리 읽기 및 실행 권한 검사 무시. |
LINUX_IMMUTABLE | FS_APPEND_FL 및 FS_IMMUTABLE_FL i- 노드 플래그를 설정하십시오. |
NET_BROADCAST | 소켓 브로드 캐스트를 만들고 멀티 캐스트를 수신합니다. |
IPC_LOCK | 메모리를 잠급니다 (mlock (2), mlockall (2), mmap (2), shmctl (2)). |
IPC_OWNER | System V IPC 오브젝트에 대한 조작에 대한 권한 점검을 생략하십시오. |
SYS_PTRACE | ptrace (2)를 사용하여 임의의 프로세스를 추적합니다. |
SYS_BOOT | reboot (2) 및 kexec_load (2)를 사용하고 재부팅하고 나중에 실행할 수 있도록 새 커널을로드하십시오. |
LEASE | 임의 파일에 대한 임대 설정 (fcntl (2) 참조). |
WAKE_ALARM | 시스템을 깨울 뭔가를 방아쇠를 당깁니다. |
BLOCK_SUSPEND | 시스템 일시 중지를 차단할 수있는 기능을 사용합니다. |