DB를 저장해둔 도커 컨테이너와 그 DB와 연동이 되어야하는 프로그램이 들어있는 컨테이너를 연동이 필요하다.
DB를 도커환경에서 이용하려한다면 어떻게 보면 당연한 이야기지만 도커 컨테이너는 각각이 분리되어있는
환경이기 때문에 설정이 필요하다.
그래서 내가 이용한 방법은 docker-compose파일을 이용한 방법이다.
하나의 docker-compose에서 여러개의 도커 컨테이너를 올릴 때, 따로 네트워크를 생성해주지 않는다면
하나의 default 네트워크 상에서 작동하고 그 안에서 컨테이너 간 통신에는 서비스이름을 호스트명으로 사용한다.
version: "3"
services:
db: # 서비스명
container_name: mariaDB_test
image: mariadb
environment:
- MYSQL_ROOT_PASSWORD=seed0111
ports: # 포트번호
- 3306:3306
volumes:
- /home/ubuntu/test/test_volumes/mysql:/var/lib/mysql
- /home/ubuntu/test/test_volumes/conf.d:/var/lib/conf.d
restart: always
crawling: # 서비스명
container_name: sql_spike
image: sql_spike
depends_on:
- db
즉, crawling 컨테이너에서는 db컨테이너의 ip를 db로 사용할 수 있는것!
crawling을 짜기전에 db와 연동을 실험하기위한 spike코드에 db와 연결하는 부분을 보면
import mysql.connector
dbConn = mysql.connector.connect(host="db", port="3306", user="root", passwd="**", database="db")
으로 되어 있는데 ip가 들어갈 부분인 host부분에 "db"라는 이름으로 연결되어 있다.
이제 spike로 연동 해보았으니 sql쿼리문을 만들고 크롤러를 짜는 일을 해야한다.
'SW마에스트로 11기 > 기술페이지' 카테고리의 다른 글
Docker의 docker-compose (0) | 2020.08.14 |
---|---|
Docker의 기초 (0) | 2020.08.08 |
오늘 공부한 Docker 명령어들 (0) | 2020.08.05 |
Docker를 배워보자! (0) | 2020.08.05 |