>데이터 베이스 >MySQL 튜토리얼 >Docker 컨테이너 내부의 스키마를 사용하여 MySQL 데이터베이스를 초기화하는 방법은 무엇입니까?

Docker 컨테이너 내부의 스키마를 사용하여 MySQL 데이터베이스를 초기화하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-25 12:34:09179검색

How to Initialize a MySQL Database with Schema Inside a Docker Container?

Docker 컨테이너의 스키마를 사용하여 MySQL 데이터베이스 초기화

Docker 컨테이너 내에서 스키마를 사용하여 MySQL 데이터베이스를 초기화하는 것은 어려울 수 있습니다. 이 문제를 해결하는 솔루션은 다음과 같습니다.

1. MySQL 스키마 덤프

다음 명령을 사용하여 MySQL 스키마를 파일에 덤프합니다.

mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql

2. Dockerfile에 스키마 파일 추가

Dockerfile에서 ADD 명령을 사용하여 /docker-entrypoint-initdb.d 디렉터리에 스키마 파일을 추가합니다. 컨테이너의 docker-entrypoint.sh 스크립트는 데이터베이스에 대해 이 디렉터리에 있는 모든 .sql 파일을 실행합니다.

샘플 Dockerfile:

FROM mysql:5.7.15

MAINTAINER me

ENV MYSQL_DATABASE=<schema_name> \
    MYSQL_ROOT_PASSWORD=<password>

ADD schema.sql /docker-entrypoint-initdb.d

EXPOSE 3306

3. Docker 컨테이너 빌드 및 실행

Dockerfile이 수정되면 컨테이너를 빌드하고 실행합니다.

docker-compose build
docker-compose up

4. 추가 참고 사항

  • MySQL 사용자에게 데이터베이스와 테이블을 생성할 수 있는 충분한 권한이 있는지 확인하세요.
  • 필요에 따라 MySQL 호스트, 사용자 이름, 비밀번호 및 스키마 이름을 조정하세요. .
  • docker-entrypoint.sh 스크립트가 스키마 실행을 담당하므로 컨테이너 내 루트 사용자가 실행할 수 있는지 확인하세요.

이러한 단계를 따르면 Docker 컨테이너 내의 스키마를 사용하여 MySQL 데이터베이스를 성공적으로 초기화하고 CMD가 제대로 실행되지 않는 문제를 해결할 수 있습니다.

위 내용은 Docker 컨테이너 내부의 스키마를 사용하여 MySQL 데이터베이스를 초기화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.