2017-12-18 1 views
0

the official MySQL docker image을 사용하여 만든 도커 컨테이너에서 MySQL 5.7.20을 실행 중입니다. MySQL conf 파일은 호스트 우분투 시스템에 마운트해야합니다. MySQL 도커의 MySQL conf 파일

은 현재 MySQL의 고정 표시기 컨테이너는 그러나 더 conf의 파일이 고정 표시기 컨테이너의 떠들썩한 파티에 연결된 ... /root/test/mysql/etc에 존재하지 명령
sudo docker run -d \ 
-p 3306:3306 \ 
-e MYSQL_ROOT_PASSWORD=test \ 
-v /root/test/mysql/var/lib:/var/lib/mysql \ 
-v /root/test/mysql/etc:/etc/mysql \ 
--name test-mysql \ 
mysql:5.7 

를 사용하기 시작하고 /etc/mysql이 비어있는 것을 발견!

어디에 conf 파일이 있습니까? 거기에 /etc/mysql/conf.d//etc/mysql/mysql.conf.d/ 중 일부가 있을까요?

답변

1

당신은 어떤 볼륨 마운트하지 않고 명령을 실행하는 경우 :

$ docker run -it mysql ls /etc/mysql 
conf.d my.cnf my.cnf.fallback mysql.cnf mysql.conf.d 

/root/test/mysql/etc 경우는 빈 폴더로 존재하고 /etc/mysql의 내용이 /root/test/mysql/etc에서 사람들과 "대체"할 모든 /etc/mysql에 마운트를 .

당신은 빈 /root/test/mysql/etc 폴더가 다음과 같은 수행 할 수 있습니다

docker volume create --driver local \ 
    --opt type=none \ 
    --opt device=/root/test/mysql/etc \ 
    --opt o=bind \ 
    mysql_vol 

sudo docker run -d \ 
-p 3306:3306 \ 
-e MYSQL_ROOT_PASSWORD=test \ 
-v /root/test/mysql/var/lib:/var/lib/mysql \ 
-v mysql_vol:/etc/mysql \ 
--name test-mysql \ 
mysql:5.7 
+0

내가 제거 시도를'/ 루트/테스트/mysql을/etc' 다음 명령을 사용하여 부두 노동자 컨테이너를 시작 진술 질문에. '/ root/test/mysql/etc'이 생성되었지만 여전히 비어 있습니다 ... 제가 잘못하고 있습니까? – Nyxynyx

+0

또한'/ root/test/mysql/etc'을 제거한 다음,'/ etc/mysql'을 마운트하지 않고 먼저 동일한 명령을 사용하여 Docker 컨테이너를 시작했습니다. 그런 다음 Docker 컨테이너를 중지하고 제거하고'-v' 인수를 모두 포함하는 명령을 실행했습니다. '/ root/test/mysql/etc'은 지금 생성되었지만 아직 비어 있습니다 ... – Nyxynyx

+0

제 잘못입니다. 첫 번째 옵션이 작동하지 않습니다. 디렉토리가 비어 있고'/ etc/mysql'에 마운트되어 비어있게됩니다. 유일한 옵션은 볼륨을 생성하고 명명 된 볼륨을 마운트하는 것입니다. 이렇게하면 원하는 효과를 얻을 수 있습니다. – yamenk