[도커 컨테이너간 네트워크를 잘 몰라서 생긴 삽질]
- 도커를 사용해서 레드마인 서버를 구축하면서 겪은 상황입니다.
- 아래와 같이 docker-compose 를 이용해 레드마인과 mariadb 를 구축했습니다.
* DB 포트인 3306 과 웹포트인 80, 8080 은 이미 사용중이어서 다른 포트로 매핑했습니다.
여기서... 오해의 시작이...
version: '3'
services:
redmine_db:
image: mariadb
container_name: redmine_db
restart: always
volumes:
- local_directory/db:/var/lib/mysql
ports:
- 9096:3306
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: redmine
MYSQL_USER: user
MYSQL_PASSWORD: user_password
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
networks:
- default
- redmine_network
redmine_web:
image: redmine
container_name: redmine_web
restart: always
volumes:
- local_directory/themes:/usr/src/redmine/public/themes
- local_directory/plugins:/usr/src/redmine/plugins
- local_directory/files:/usr/src/redmine/files
ports:
- 9090:3000
links:
- redmine_db:mysql
environment:
REDMINE_DB_PORT: 9096
REDMINE_DB_MYSQL: redmine_db
REDMINE_DB_USERNAME: user
REDMINE_DB_PASSWORD: user_password
REDMINE_DB_DATABASE: redmine
REDMINE_DB_ENCODING: utf8
depends_on:
- redmine_db
networks:
- redmine_network
networks:
redmine_network:
- 위와 같이 구성한 뒤 컨테이너를 올렸는데 redmine_web 에서 계속 connection 관련 오류가 납니다.
- 도대체 뭘 잘못한거지... 계정도 제대로 만들어졌고 Heidisql 을 이용해서 host:9096 으로 접속도 제대로 되는걸 확인했지만
레드마인은 계속 오류로 인해 재시작만 반복하네요.
[결국 원인을 찾음]
* 문제는 바로 이부분..
environment:
REDMINE_DB_MYSQL: redmine_db // DB 컨테이너 서비스명
- YAML 파일에 작성되는 항목들은 서비스 이름으로 컨테이너들간 연결이 가능하기 때문에 redmine_web 컨테이너에서
redmine_db 컨테이너로 접근할 시 외부 호스트 포트 인 9096 포트 으로 접근할게 아니라 기본 3306 포트로 접속해야 됩니다.
9096 포트는 아예 호스트 서버 외부에서 redmine_db 에 직접 접근할 때 사용됩니다.
- 이전 포스트에서는 기본 포트인 3306, 80, 8080 을 사용해서 몰랐는데.. 이걸 몰라서 이번에 삽질을 좀....
'Programming > Docker' 카테고리의 다른 글
[Nginx] Nginx 를 사용한 reverse proxy 예제 (0) | 2019.03.05 |
---|---|
[Docker] Nginx 를 사용한 SubDomain(서브도메인) 분기 (0) | 2019.02.19 |
[Docker] 사용법 정리 (0) | 2018.10.25 |
[Docker] CnetOS 7 에서 도커 설치 시 사용하는 스크립트 (0) | 2018.09.19 |
[Docker] (2018.06.21) mysql + redmine 설치 후 실행 시 오류 (0) | 2018.06.21 |