YAML 템 플 릿 파일 작성

5339 단어 docker
http://wiki.jikexueyuan.com/project/docker-technology-and-combat/yaml_file.html
기본 템 플 릿 파일 은  docker-compose.yml 그 중에서 정 의 된 모든 서 비 스 는 반드시 통과 해 야 한다.  image  명령 어 지정 미 러 또는  build  명령 어 (Dockerfile 필요) 를 자동 으로 구축 합 니 다.
다른 대부분의 지령 은  docker run  유사 하 다
하면, 만약, 만약...  build  지령  Dockerfile  설정 한 옵션 (예: CMDEXPOSEVOLUMEENV  등) 자동 으로 가 져 옵 니 다. 필요 없습니다.  docker-compose.yml  다시 설정 합 니 다.
image
미 러 이름 이나 미 러 ID 로 지정 합 니 다.미 러 가 로 컬 에 존재 하지 않 는 다 면 Compose 이 거울 을 끌 어 내 려 고 시도 할 것 이다.
예 를 들 면:
image: ubuntu
image: orchardup/postgresql
image: a4bc65fd

build
지정  Dockerfile  폴 더 의 경로 입 니 다.  Compose  이 미 러 를 이용 해 자동 으로 구축 한 후 이 미 러 를 사용 합 니 다.
build: /path/to/build/dir

command
용기 가 시 작 된 후 기본적으로 실행 되 는 명령 을 덮어 씁 니 다.
command: bundle exec thin -p 3000

links
다른 서비스 에 연 결 된 용기.서비스 이름 (동시에 별명) 또는 서비스 이름 사용: 서비스 별명  (SERVICE:ALIAS)  격식 은 다 괜찮아 요.
links:
 - db
 - db:database
 - redis

사용 하 는 별명 은 자동 으로 서비스 용기 에 있 습 니 다.  /etc/hosts  창설예 를 들 면:
172.17.2.186  db
172.17.2.186  database
172.17.2.187  redis

해당 환경 변수 도 생 성 됩 니 다.
external_links
docker - compose. yml 외부 에 연 결 된 용기, 심지어 그렇지 않 습 니 다.  Compose  관리 용기.매개 변수 형식  links  유사 하 다.
external_links:
 - redis_1
 - project_db_1:mysql
 - project_db_1:postgresql

ports
포트 정보 노출.
사용 숙주: 용기  (HOST:CONTAINER) 형식 이나 용기 만 지정 한 포트 (숙주 는 랜 덤 으로 포트 를 선택 합 니 다) 모두 가능 합 니 다.
ports:
 - "3000"
 - "8000:8000"
 - "49100:22"
 - "127.0.0.1:8001:8001"

주: 사용 할 때  HOST:CONTAINER  포트 를 매 핑 할 때 사용 하 는 용기 포트 가 60 보다 작 으 면 잘못된 결 과 를 얻 을 수 있 습 니 다. 왜냐하면  YAML 해석 합 니 다.  xx:yy  이 숫자 형식 은 60 진법 이다.따라서 문자열 형식 을 사용 하 는 것 을 권장 합 니 다.
expose
포트 를 노출 하지만 호스트 에 비치 지 않 고 연 결 된 서비스 만 접근 합 니 다.
내부 포트 만 매개 변수 로 지정 할 수 있 습 니 다.
expose:
 - "3000"
 - "8000"

volumes
볼 륨 마 운 트 경로 설정.호스트 경로 HOST:CONTAINER 를 설정 하거나 접근 모드 HOST:CONTAINER:ro 를 추가 할 수 있 습 니 다.
volumes:
 - /var/lib/mysql
 - cache/:/tmp/cache
 - ~/configs:/etc/configs/:ro

volumes_from
다른 서비스 나 용기 에서 모든 볼 륨 을 마 운 트 합 니 다.
volumes_from:
 - service_name
 - container_name

environment
환경 변 수 를 설정 합 니 다.너 는 배열 이나 사전 두 가지 형식 을 사용 할 수 있다.
주어진 이름 의 변수 만 이 Compose 호스트 에 있 는 값 을 자동 으로 가 져 와 불필요 한 데이터 유출 을 방지 할 수 있 습 니 다.
environment:
  RACK_ENV: development
  SESSION_SECRET:

environment:
  - RACK_ENV=development
  - SESSION_SECRET

env_file
파일 에서 환경 변 수 를 가 져 오 면 단독 파일 경로 나 목록 을 가 져 올 수 있 습 니 다.
하면, 만약, 만약...  docker-compose -f FILE  템 플 릿 파일 을 지정 하면  env_file  중간 경 로 는 템 플 릿 파일 경 로 를 기반 으로 합 니 다.
변수 이름과  environment  지령 이 충돌 하면 후 자 를 기준 으로 한다.
env_file: .env

env_file:
  - ./common.env
  - ./apps/web.env
  - /opt/secrets.env

환경 변수 파일 의 줄 마다 형식 과 지원 이 있어 야 합 니 다.  #  첫머리 의 주석 줄.
# common.env: Set Rails/Rack environment
RACK_ENV=development

extends
기 존 서비스 기반 확장.예 를 들 어 웹 앱 서비스 가 있 습 니 다. 템 플 릿 파일 은  common.yml
# common.yml
webapp:
  build: ./webapp
  environment:
    - DEBUG=false
    - SEND_EMAILS=false

새 것 을 만들다  development.yml  파일  common.yml  웹 앱 서비스 가 확장 되 었 습 니 다.
# development.yml
web:
  extends:
    file: common.yml
    service: webapp
  ports:
    - "8000:8000"
  links:
    - db
  environment:
    - DEBUG=true
db:
  image: postgres

후 자 는 common. yml 의 웹 앱 서비스 와 관련 된 부분 변 수 를 자동 으로 계승 합 니 다.
net
네트워크 모드 설정.사용  docker client  의  --net  매개 변수 같은 값.
net: "bridge"
net: "none"
net: "container:[name or id]"
net: "host"

pid
호스트 시스템 과 프로 세 스 네 임 스페이스 를 공유 합 니 다.이 옵션 의 용 기 를 열 면 서로 프로 세 스 ID 를 통 해 접근 하고 조작 할 수 있 습 니 다.
pid: "host"

dns
DNS 서버 설정.하나의 값 일 수도 있 고 목록 일 수도 있 습 니 다.
dns: 8.8.8.8
dns:
  - 8.8.8.8
  - 9.9.9.9

cap_add, cap_drop
용 기 를 추가 하거나 포기 하 는 Linux 능력 (Capabiliity).
cap_add:
  - ALL

cap_drop:
  - NET_ADMIN
  - SYS_ADMIN

dns_search
DNS 검색 영역 을 설정 합 니 다.하나의 값 일 수도 있 고 목록 일 수도 있 습 니 다.
dns_search: example.com
dns_search:
  - domain1.example.com
  - domain2.example.com

working_dir, entrypoint, user, hostname, domainname, mem_limit, privileged, restart, stdin_open, tty, cpu_shares
이것들 은 모두  docker run  지원 하 는 옵션 이 유사 합 니 다.
cpu_shares: 73

working_dir: /code
entrypoint: /code/entrypoint.sh
user: postgresql

hostname: foo
domainname: foo.com

mem_limit: 1000000000
privileged: true

restart: always

stdin_open: true
tty: true

좋은 웹페이지 즐겨찾기