본문 바로가기

SW마에스트로 11기/기술페이지

Docker-MariaDB 연동

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