docker コンテナー内で mysql ベンチマーク (sysbench) を実行しようとしています。スクリプトはうまく機能し、ホスト ターミナルでの実行中にベンチマークを実行しますが、コンテナー内で実行しようとすると、次のようなエラーが発生します。
FATAL: MySQL サーバーに接続できません、中止しています... FATAL: エラー 2002: ソケット '/var/run/mysqld/mysqld.sock' を介してローカル MySQL サーバーに接続できません (2) ALERT: エラー: 判別できませんでしたテーブル 'sbtest' タイプ! ALERT: MySQL エラー: ソケット '/var/run/mysqld/mysqld.sock' を介してローカル MySQL サーバーに接続できません (2) 致命的: データベース機能の取得に失敗しました!
私のdockerファイルは次のとおりです。
FROM ubuntu:14.04
RUN apt-get -y update && apt-get install -y sysbench
ADD ./script.sh /code/script.sh
WORKDIR /code
ENTRYPOINT ./script.sh
そして、私のスクリプトは次のとおりです。
export DEBIAN_FRONTEND="noninteractive"
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password root'
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password root'
sudo apt-get -y install mysql-server
sudo mysql --user="root" --password="root" -e "create database dbtest"
sudo sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=dbtest --mysql-user=root --mysql-password=root prepare
sudo sysbench --test=oltp --oltp-table-size=1000000 --oltp-test-mode=complex --oltp-read-only=off --num-threads=6 --max-time=60 --max-requests=0 --mysql-db=dbtest --mysql-user=root --mysql-password=root run
同じスクリプトが通常の Linux マシンで動作するため、どうすればこれを修正できますか?