JAVA/프로젝트

쿠폰 선착순 발급 이벤트 - MySql, Docker 설정, 포트 충돌 해결.

whyHbr 2024. 11. 28. 15:31
728x90
반응형

 

 

version: '3.7'
services:
  redis:
    container_name: coupon-redis
    image: redis:7.2-alpine
    command: redis-server --port 6380
    labels:
      - "name=redis"
      - "mode=standalone"
    ports:
      - 6380:6380
  mysql:
    container_name: coupon-mysql
    image: mysql:8.0.38
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --explicit_defaults_for_timestamp=1
    ports:
      - 3306:3306
    environment:
      - MYSQL_DATABASE=coupon
      - MYSQL_ROOT_PASSWORD=878878
    volumes:
      - ./mysql/init:/docker-entrypoint-initdb.d

 

docker-compose.yml 파일을 작성 하고

docker-compose up -d 를 하면

컨테이너가 생성된다. 

 

 

 

 

나는 기존에 redis6379 와 mysql3306를 띄워뒀던 컨테이너가 있었고... 연습겸 띄워봤다가 기존 3306 포트에 있는 db가 다 사라지고 coupon만 덩그러니 생긴 상황

 

기존 컨테이너 사용하니 mysql work bench에 접근 할 수가 없었고 에러가 떴다. 


해결 방법:

일단 충돌된 3306 포트를 중지시킨다.

 

cmd:

netstat -ano | findstr :3306
taskkill /PID <PID> /F

 

window + r 

services.msc 

 

Mysql- 시작을 누른다.

 

완료 되었다면 기존에 있던 container 를 실행 시키고, mysql 에 접속한다.

 

그럼 기존 사용하던 database 다 나오고, 컨테이너 실행도 된다.

 

기존 사용하고 있던 컨테이너가 있다면 그걸 사용하고, 포트 번호 안겹치게 조심하자..


 

728x90