[Docker]docker-compose 정리

Docker Compose

여러 docker를 한번에 up(setup)할때 사용하는 방법이다. yml 파일을 사용하며, docker-compose up명령어로 실행하여 사용할 수 있다.


TL;DR

version: '{버전}'
services:
  {도커 이름}:
    driver: {네트워크 이름}
    build: {dockerfile build 할 시 디렉토리}
    ports:
    - "{외부포트}:{컨테이너포트}"
    volumes:
    - {볼륨명}: {컨테이너 위치}
    - logvolume01:/var/log
    links:
    - redis #링크
  redis:
    image: redis # dockerfile에서 build 하지않고 이미지를 받아옴
    environment:
        {환경 변수명}: {컨테이너이름}:3456
        DB_PASSWORD: redis:password
volumes:
  logvolume01: {}

networks:
  {네트워크 이름}:
    # 커스텀 네트워크 사용
    driver: custom-driver-1
  {네트워크 이름}:
    # 커스텀 네트워크 옵션 사용
    driver: custom-driver-2
    driver_opts:
      foo: "1"
      bar: "2"

Version

난빠가엿다..

docker 문법의 버전을 의미한다. 각 버전벌로 필요로하는 docker-engine이 다르고 지원하는 문법이 다르니 주의.

Compose file format Docker Engine release
3.6 18.02.0+
3.5 17.12.0+
3.4 17.09.0+
3.3 17.06.0+
3.2 17.04.0+
3.1 1.13.1+
3.0 1.13.0+
2.3 17.06.0+
2.2 1.13.0+
2.1 1.12.0+
2.0 1.10.0+
1.0 1.9.1.+

Service

아래엔 container의 상세 내용이 기술된다.

{도커 이름} : # run될 container의 이름을 설정한다.

build: . # 빌드할 Dockerfile의 경로
image: ubuntu:16.04 # 빌드 하지않고 이미지를 사용할 수 있음.

ports:
– 8080:80 # 외부포트 : 컨테이너 포트 설정

volume:
– my_data:/data # 볼륨명 : 컨테이너 위치

link:
– container_name # link로 연결할 컨테이너 이름 ( deprecate )

environment:
– ENV_NAME: env_value # 환경변수 설정

Network

driver: bridge # 네트워크에서 사용할 드라이버 종류 (overlay, host, none 등…)

internal : true # 내부망 설정 옵션

ipam:
    driver: default # ipam에서 사용할 드라이버 옵션 기본 설정은 default
    config: # ipam config
        – subnet : 10.0.0.0/24 # subnet 설정 ps. gateway설정은 version 2에서만 지원된다.

 

글의 문제가 있다면 댓글을 달아 주세요.

This site uses Akismet to reduce spam. Learn how your comment data is processed.