사용자 도구

사이트 도구


docker:docker_compose

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
docker:docker_compose [2022/03/18 11:00]
kwon37xi [Multiple docker-compose.yml]
docker:docker_compose [2023/02/02 09:22] (현재)
kwon37xi
줄 2: 줄 2:
   * https://github.com/docker/compose   * https://github.com/docker/compose
   * https://docs.docker.com/compose/cli-command/   * https://docs.docker.com/compose/cli-command/
 +  * [[https://www.docker.com/blog/new-docker-compose-v2-and-v1-deprecation/|Docker Compose: What’s New, What’s Changing, What’s Next | Docker]]
   * v2 부터 cli plugin 으로 ''docker compose'' 형태로 사용가능해졌다.   * v2 부터 cli plugin 으로 ''docker compose'' 형태로 사용가능해졌다.
  
줄 14: 줄 15:
   * ''chmod +x $HOME/.docker/cli-plugins/docker-compose'' 로 실행 권한을 주면 이제 ''docker compose'' 명령으로 사용가능해진다.   * ''chmod +x $HOME/.docker/cli-plugins/docker-compose'' 로 실행 권한을 주면 이제 ''docker compose'' 명령으로 사용가능해진다.
   * [[https://www.rockyourcode.com/how-to-install-docker-compose-v2-on-linux-2021/|How to Install Docker Compose v2 on Linux (2021) | rockyourcode]]   * [[https://www.rockyourcode.com/how-to-install-docker-compose-v2-on-linux-2021/|How to Install Docker Compose v2 on Linux (2021) | rockyourcode]]
 +  * [[:intellij_idea|IntelliJ IDEA]]에서 실행할 경우 **Settings -> Build, Execution, Deployment -> Docker -> Tools**에서 **Use Compose V2** 를 활성화해준다.
 ===== 네트워크 ===== ===== 네트워크 =====
   * ''services'' 의 이름에 밑줄(''_'')이 있을 경우, 동일 docker-compose 내의 다른 컨테이너에서 해당 이름으로 네트워크 접속이 안됐다.   * ''services'' 의 이름에 밑줄(''_'')이 있을 경우, 동일 docker-compose 내의 다른 컨테이너에서 해당 이름으로 네트워크 접속이 안됐다.
줄 101: 줄 102:
 docker-compose -f docker-compose.yml -f docker-compose.admin.yml run dbadmin db-backup docker-compose -f docker-compose.yml -f docker-compose.admin.yml run dbadmin db-backup
 </code> </code>
 +
 +===== Extending Service : 서비스 확장 =====
 +  * 다중 파일 기법과 유사하지만 공통 설정을 빼놓고 항상 읽어들이는 방식
 +  * ''common-services.yml''에 공통 설정으로 된 service 가 하나 있다면 해당 service 의 공통 설정을 가져가는 확장할 수 있다.
 +
 +<code yml>
 +# common-services.yml - 아래 서비스는 설정일 뿐, 실제로 작동하는게 아님
 +webapp:
 +  build: .
 +  ports:
 +    - "8000:8000"
 +  volumes:
 +    - "/data"
 +</code>
 +<code yml>
 +# docker-compose.yml - webapp 을 확장한 web 서비스
 +web:
 +  extends:
 +    file: common-services.yml
 +    service: webapp
 +</code>
 +  * 서비스들은 ''links'', ''volumes_from'', ''depends_on''은 ''extends''로는 공유할 수 없다. 항상 명시해야 한다.
 ===== 참조 ===== ===== 참조 =====
   * [[https://dev-yeon.tistory.com/20|[docker-compose] docker-compose up에서 네트워크 생성이 되지 않을 때]]   * [[https://dev-yeon.tistory.com/20|[docker-compose] docker-compose up에서 네트워크 생성이 되지 않을 때]]
   * [[https://www.44bits.io/ko/post/almost-perfect-development-environment-with-docker-and-docker-compose|도커(Docker) 컴포즈를 활용하여 완벽한 개발 환경 구성하기 | 44BITS 기술 블로그]]   * [[https://www.44bits.io/ko/post/almost-perfect-development-environment-with-docker-and-docker-compose|도커(Docker) 컴포즈를 활용하여 완벽한 개발 환경 구성하기 | 44BITS 기술 블로그]]
   * [[https://meetup.toast.com/posts/277|Docker Compose와 버전별 특징 : NHN Cloud Meetup]]   * [[https://meetup.toast.com/posts/277|Docker Compose와 버전별 특징 : NHN Cloud Meetup]]
docker/docker_compose.1647568835.txt.gz · 마지막으로 수정됨: 2022/03/18 11:00 저자 kwon37xi