다음을 수행하여 tutum-docker-mysql 이미지에 데이터베이스를 추가하는 목표를 달성 할 수있었습니다.
git clone https://github.com/tutumcloud/tutum-docker-mysql.git
cd tutum-docker-mysql
vi create_mysql_admin_user.sh
는 보통 .sh 파일의 내부 내가 바로 이미있는 두 개의 "MySQL의 -uroot"라인 아래 라인을 추가했다. 나는 단순히 다음을 추가했습니다 :
mysql -uroot -e "create database test;"
그 .sh 파일로 변경 한 후 간단히 도커 이미지를 작성했습니다. 컨테이너가 실행
docker run -d -p 3307:3306 tutum/mysql
되면, 당신이 사용하는 암호와 컨테이너의 IP 주소를 알아야 다음 고정 표시기 이미지가 구축 된 후
docker build -t tutum/mysql .
, 내가 좋아하는 뭔가를 실행할 수 있습니다 . 암호를 얻으려면 당신은 단순히
docker logs 2976a81f1a9b19787d9bde893c831b7e6586d7c8391ccd222ad29b02c282d896
을하지만 물론 그 위의 "고정 표시기 실행"명령에서 반환, 컨테이너 ID를 사용합니다. 이제 비밀번호가 있으니 IP 주소가 필요합니다. 나는 그것을함으로써 얻는다.
docker inspect 2976a81f1a9b19787d9bde893c831b7e6586d7c8391ccd222ad29b02c282d896
"게이트웨이"주소를 확인하십시오. 비밀 번호와 IP 주소를 사용하여 컨테이너의 바깥 쪽에서이 mysql 명령을 수행 할 수있었습니다.
mysql -uadmin -pJcM5FCphMOp4 -h172.17.42.1 -P3307
여기서 ip 주소와 암호는 앞의 두 가지 도커 명령에서 얻은 값입니다. 그 명령이 실행 된 후 다음 결과와 함께 "데이터베이스 표시"명령을 실행할 수 있습니다.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql>
나는 Dockerfile을 수정하여 잠시 노력했다. 나는 그것이 가능할 수도 있다고 생각하지만 잠시 후 위의 해결책을 훨씬 더 빠르고 간단하게 발견했다.
에서 예? – Behe
몇 가지 명령을 시도하고 diff 오류가 발생했습니다. mysql -uroot "데이터베이스 테스트 생성"을 시도했는데 오류가 있습니다 : ERROR 2002 (HY000) : 소켓을 통해 로컬 MySQL 서버에 연결할 수 없습니다 '/ var/run/mysqld /mysqld.sock '(2) – Mohammad
또한 mysqld -uroot -p "" "데이터베이스 테스트 생성"을 시도했으며 오류는 : 140710 10:12:28 [경고] key_buffer_size 대신 unique option 접두사 key_buffer 사용이 중단되고 향후 릴리스에서 제거 될 예정입니다. 대신 성명을 사용하십시오. – Mohammad