YAML 템 플 릿 파일 작성
5339 단어 docker
기본 템 플 릿 파일 은
docker-compose.yml
그 중에서 정 의 된 모든 서 비 스 는 반드시 통과 해 야 한다. image
명령 어 지정 미 러 또는 build
명령 어 (Dockerfile 필요) 를 자동 으로 구축 합 니 다.다른 대부분의 지령 은
docker run
유사 하 다하면, 만약, 만약...
build
지령 Dockerfile
설정 한 옵션 (예: CMD
, EXPOSE
, VOLUME
, ENV
등) 자동 으로 가 져 옵 니 다. 필요 없습니다. 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swarm의 도커 비밀이 게시물에서는 Redis를 사용한 실제 시나리오 예제를 제공하여 사용 방법을 보여주고자 합니다. Docker 기술에 대한 기본 지식 Docker Swarm 오케스트레이터에 대한 기본 지식 "Docker Swarm ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.