1
나는 Docker를 시작하면서 tutum/lamp를 실행하고 exec
을 사용하여 MySQL을 필요에 따라 설정할 수있었습니다. 예 :Dockerfile을 사용하여 MySQL 설정하기
docker run -d -p 80:80 -p 3306:3306 --name test tutum/lamp
...
docker exec test mysqldump --host somehost --user someuser --password --databases somedatabase > dump.sql
docker exec test mysql -u root < dump.sql
그러나이 문제를 Dockerfile로 변환하는 데 문제가 있습니다. 특히, ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
에서 다음과 같은 결과 :
FROM tutum/lamp
EXPOSE 80 3306
...
RUN mysqldump --host=$DB_IP --user=$DB_USER --password=$DB_PASSWORD --databases somedatabase > dump.sql
RUN mysql -u root < dump.sql
현재 도움이되지 않습니다. 빌드하는 동안 대신 컨테이너를 시작할 때 문제가 발생하기 때문입니다. 또한 기본 이미지에서 'CMD'를 유지하려고합니다. 나는 해결책이 MySQL 데몬을 시작한 스크립트를'실행 '하고 나서 명령을 실행할 것이라고 생각한다. – user3170702
네 말이 맞아, 투투탄/램프가 어떻게 작동하는지 정확히 알지 못해서 일하기 전까지 약간 놀았 어. 내 대답을 편집했습니다. –