Mysql公式のリポジトリがあるじゃん
そうなんですけどね。 -> https://hub.docker.com/_/mysql/
でも開発する時は全部のせのDockerfile作って使いたいときありませんか?
そんな使い方邪道ですかね?
今回はそんなときにLinux(Ubuntu15.10,16.10)でMySQLがインストールできない問題に遭遇したので、防備がてら投稿です。
注
Dockerは Docker for Mac を使用。バージョンは以下です。
Docker version 1.12.0-rc4, build e4a0dbc, experimental
こんなことをしていた
Dockerを動かす
docker run --rm -it ubuntu:16.10
(vimいれておく)
update & upgrade apt-get
apt-get update && apt-get upgrade -y
apt-get mysql-server
apt-get install -y mysql-server
/etc/mysql/my.cnf 見る
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
/etc/mysql/mysql.conf.d/mysqld.cnf 見る
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
...
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
find /var/run/mysqld/mysqld.sock
ls /var/run/ してみたら...
lock mount utmp <- "mysqld" directoryない
こんなことになりましたとさ
解決方法
質問をすると返事が返ってくるウェブサービスで質問したところ
http://stackoverflow.com/questions/38641183/ubuntu-16-10-in-docker-1-12-claims-there-is-no-socket-for-mysql
Dockerを動かす
docker run --rm -it ubuntu:16.10
で、ポートフォワーディングをしてやる必要があるのだそうな。つまり
docker run --rm -it -p=xxxx:3306 ubuntu:16.10
ということ。見事なまでの初見殺しとは思いました。
みなさんは貴重な一週間を無駄にしないでくださいね!!
後付け
でも、同様のsocketない問題が mysql-client
で発生しています。
誰か答えがわかる方がいらっしゃいませんか?
いらっしゃらなければまた質問をすると返事が返ってくるウェブサービスに...