본문 바로가기
개발/docker

docker-compose.yml

by 가시죠 2021. 1. 18.
반응형

도커 컴포즈

  • 도커 컴포즈 파일명은 docker-compose.yml로 되어야 한다. (파일명을 다르게 하고 싶을경우 -f 옵션으로 사용가능)
  • 하나의 폴더를 생성하여 하나의 docker-compose.yml 파일을 생성
  • 해당 폴더로 이동하여 도커 컴포즈 명령 실행
  • 다른 디렉터리에서 명령을 시도하면 아래와 같이 .yml오류가 반환
ERROR:
        Can't find a suitable configuration file in this directory or any
        parent. Are you in the right directory?

        Supported filenames: docker-compose.yml, docker-compose.yaml

 

도커 컴포즈 명령

  • 실행 : docker-compose up -d (-d : 백그라운드 실행)
  • 종료 : docker-compose stop
  • 강제종료 : docker-compose kill
  • 컨테이너 삭제 (처음부터 시작할 경우) : docker-compose rm

 

redmine, mariadb, gitlab 

# docker-compose.yml
version: '3'

services:
    redmine:
        image: redmine
        restart: always
        container_name: redmine
        ports:
             - 3000:3000
        environment:
            REDMINE_DB_MYSQL: mariadb
            REDMINE_DB_PASSWORD: redmine-password
            REDMINE_DB_DATABASE: redmine
            REDMINE_DB_ENCODING: utf8
            
    mariadb:
        image: mariadb
        restart: always
        container_name: mariadb
        ports:
            - 3306:3306
        environment:
            MYSQL_ROOT_PASSWORD: redmine-password
            MYSQL_DATABASE: redmine
        command:
            - --character-set-server=utf8mb4
            - --collation-server=utf8mb4_unicode_ci
    
    gitlab:
        image: gitlab/gitlab-ce
        restart: always
        container_name: gitlab
        ports:
            - 8090:80
            - 443:443
            - 22:22
        environment:
            GITLAB_ROOT_PASSWORD: hitomis
            GITLAB_TIMEZONE: Asia/Seoul

ps. 위 파일 중 gitlab 이미지의 기본포트가 80이라 8090으로 매핑해주었다.

 

docker-compose up -d 명령으로 실행 시 아래와 같이 이미지를 다운받고, 실행된다.

 

docker ps 명령으로 실행중이 프로세스를 확인하면 2개의 컨테이너가 실행중이다.

 

브라우저에서 아이피:3000 (ex. localhost:3000) 으로 접속하여 레드마인을 확인한다.

 

docker-compose 설정파일 예시

jenkins

version: '3'

services:
  jenkins:
    image: jenkins/jenkins:lts
    restart: always
    container_name: jenkins
    environment:
      TZ: 'Asia/Seoul'
    ports:
      - 9080:8080

 

Nginx

version: '3'

services:
  nginx:
    image: nginx
    restart: always
    container_name: nginx
    environment:
      TZ: 'Asia/Seoul'
    ports:
      - 8080:80

 

반응형

'개발 > docker' 카테고리의 다른 글

docker 파일 복사 전송 가져오기  (0) 2022.08.22
docker 컨테이너에 root로 접속하기  (0) 2022.08.21
docker에서 mssql 설치  (0) 2022.08.21
docker centos systemctl 문제  (0) 2021.01.18

댓글