LoginSignup
25
19

More than 5 years have passed since last update.

DockerでMySQL on Ubuntuコンテナ

Posted at

DockerでMySQL on Ubuntuコンテナ

DockerでMySQLコンテナを作成したかったのですが、私はubuntuしか使ったことが無かったため、自分の環境に合ったコンテナを作成するためのDockerfileを作成しました。単純に忘備録です。
なお、ホストOSもubuntu 14.04です。

Dockerfile

# ubuntu 14.04のイメージを利用
FROM ubuntu:14.04


# Dockerfile作成者
MAINTAINER kxphotographer


# コンテナのタイムゾーンがデフォルトでUTCになっているので、ホストOSの/etc/localtimeを読み込み専用でマウント
VOLUME /etc/localtime:/etc/localtime:ro


# そのままapt-getでインストールするとパスワードを聞かれる箇所で止まってしまうので、予め設定しておく。この例ではパスワードは「root」。
RUN echo "mysql-server mysql-server/root_password password root" | debconf-set-selections && \
    echo "mysql-server mysql-server/root_password_again password root" | debconf-set-selections && \
    apt-get -y install mysql-server


# my.cnfを編集
# bind-address行をコメントアウトして、外部から接続出来るようにする
RUN sed -i -e "s/^bind-address\s*=\s*\(.*\)/#bind-address = \1/" /etc/mysql/my.cnf

# デフォルトの文字コードをUTF-8に設定
RUN sed -i -e "s/\(\[mysqld\]\)/\1\ncharacter-set-server = utf8/g" /etc/mysql/my.cnf
RUN sed -i -e "s/\(\[client\]\)/\1\ndefault-character-set = utf8/g" /etc/mysql/my.cnf
RUN sed -i -e "s/\(\[mysqldump\]\)/\1\ndefault-character-set = utf8/g" /etc/mysql/my.cnf
RUN sed -i -e "s/\(\[mysql\]\)/\1\ndefault-character-set = utf8/g" /etc/mysql/my.cnf


# 一度MySQLサーバを起動し、外部から接続した際の権限を設定する。
# この場合は172.17.0.0/16から接続した際の権限。
RUN mysqld_safe & \
    sleep 10 && \
    echo "grant all on *.* to root@'172.17.%.%' identified by 'root' with grant option" | mysql -uroot -proot


# コマンドを指定せずにdocker runした際にデフォルトで実行するコマンドを指定
ENTRYPOINT ["mysqld_safe"]

参考にさせていただいた記事

25
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
19