코드 복사 코드는 다음과 같습니다.
$ docker run --name some-mysql -e mysql_root_password=my-secret-pw -d daocloud.io/mysql:tag
some-mysql은 컨테이너의 이름을 지정하고, my-secret -pw는 루트 사용자의 비밀번호를 지정하고 태그 매개변수는 원하는 mysql 버전을 지정합니다
이렇게 하면 데이터가 유지되지 않으므로 로컬 디렉터리를 시작 매개변수에 마운트해야 합니다
그래서 데이터베이스는 실행 중이었는데, 최근 프로그램에서 이모티콘 표현을 지원해야 하고, mysql의 문자셋도 변경되어야 합니다.
코드 복사 코드는 다음과 같습니다.
$ docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e mysql_root_password=my-secret-pw -d daocloud.io /mysql: tag
이때 사용자 정의 구성 파일을 마운트할 수 있습니다. 공식 문서에는 mysql 서비스가 시작되면 /etc/mysql/my.cnf가 구성 파일로 사용된다고 명시되어 있습니다. /etc/mysql/conf.d .cnf 접미사가 있는 디렉터리의 모든 파일입니다. 이러한 파일은 /etc/mysql/my.cnf 파일의 구성을 확장하거나 재정의합니다. 따라서 고유한 구성 파일을 생성하여 mysql 컨테이너의 /etc/mysql/conf.d 디렉터리에 마운트할 수 있습니다.
따라서 데이터베이스 구성을 변경하는 가장 쉬운 방법은 호스트 시스템에서 새 구성 파일을 생성하고 이를 utf8mb4
[client] default-character-set=utf8mb4 [mysqld] character-set-client-handshake = false character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci [mysql] default-character-set=utf8mb4
docker cp /home/my.cnf(宿主机文件路径) [容器id]:/etc/mysql/mysql.conf.d
# docker run --name mysql-b \ > -p 33002:3306 -v /zc/mysql/datadir-b:/var/lib/mysql \ > -e mysql_root_password='123456' -d mysql:latest
docker의 공식 mysql 이미지로 구성된 컨테이너를 시작할 수 없습니다.
docker exec -it mysql-b bash
# cat >test.cnf <<eof [mysqldump] user=root password='123456' [mysqld] max_allowed_packet=8m lower_case_table_names=1 character_set_server=utf8 max_connections=900 max_connect_errors=600 default-character-set=utf8 eof
default-character-set=utf8
Solution
docker run -it --rm mysql:tag --verbose --help > help.txt
문제 원인
모든 구성 항목을 보려면 다음 명령을 사용하고 파이프라인을 사용하여 출력 도움말을 help.txt 파일에 넣을 수 있습니다.
rrreee
위 내용은 Docker 공식 mysql 이미지 사용자 정의 구성 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!