Docker 컨테이너 내의 스키마를 사용하여 MySQL 데이터베이스를 초기화하는 것은 데이터베이스 생성과 관련된 일반적인 작업입니다. 스키마를 로드합니다. 이를 수행하는 한 가지 접근 방식은 Dockerfile과 CMD 명령을 사용하여 데이터베이스를 초기화하는 스크립트를 실행하는 것입니다. 그러나 이 방법은 CMD 명령이 일련의 명령이 아닌 단일 명령만 실행할 수 있기 때문에 어려울 수 있습니다.
이 문제를 극복하기 위한 보다 안정적인 접근 방식은 ADD 명령을 활용하여 데이터베이스를 추가하는 것입니다. 스키마 파일을 /docker-entrypoint-initdb.d 디렉터리에 복사합니다. 컨테이너 생성 시 docker-entrypoint.sh 스크립트는 MySQL 데이터베이스에 대해 이 디렉터리에 있는 모든 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
스키마 덤프 준비:
시작하기 전에 다음 사항을 확인하세요. MySQL 스키마 덤프를 Schema.sql이라는 파일에 저장하세요. 이는 mysqldump 명령을 사용하여 얻을 수 있습니다.
mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql
Docker MySQL 인스턴스 시작:
Dockerfile이 수정되고 스키마 덤프가 준비되면 Docker Compose를 사용하여 Docker MySQL 인스턴스를 시작할 수 있습니다.
docker-compose build docker-compose up
다음 단계를 따르면 효과적으로 초기화할 수 있습니다. Docker 컨테이너 내에 스키마가 있는 MySQL 데이터베이스. docker-entrypoint-initdb.d 디렉토리는 컨테이너 생성 중에 스키마가 로드되도록 보장하여 원하는 스키마로 미리 채워진 데이터베이스를 가질 수 있도록 해줍니다.
위 내용은 Docker 컨테이너 내에서 MySQL 데이터베이스 스키마를 안정적으로 초기화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!