Docker Compose를 사용하여 포트 3307에서 MySQL 실행

2931 단어
때때로 기본 포트 3306이 아닌 다른 포트에서 MySQL 이미지를 실행하고 싶을 때가 있습니다. 백엔드 애플리케이션을 서버에 배포했는데 포트 3306에서 실행 중인 다른 서비스가 있다는 것을 알게 되었다고 가정해 보겠습니다. 이것이 제 상황이었습니다. 이 문제를 해결하기 위해 docker-compose.yml 파일에서 아래와 같이 MYSQL 이미지MYSQL_TCP_PORT: 3307 섹션 아래에 변수environments:를 추가했습니다.


  db:
    restart: always
    image: mysql:5.7

    command: --default-authentication-plugin=mysql_native_password

    environment:
      MYSQL_ROOT_PASSWORD: test#$!
      MYSQL_DATABASE: default_schema
      MYSQL_USER: test
      MYSQL_PASSWORD: test
      MYSQL_TCP_PORT: 3307

    ports:
      - "3307:3307"



응용 프로그램의 DB 설정에서 데이터베이스 포트 설정을 변경했는지 확인하십시오. 제 경우에는 Django 프레임워크를 사용하여 백엔드 서비스를 개발하고 있었습니다. 다음 설정은 다음과 같습니다.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', 
        'NAME': 'default_schema',
        'USER': 'root',
        'PASSWORD': 'test#$!',
        'HOST': 'db',
        'PORT': '3307',
    }
}

좋은 웹페이지 즐겨찾기