1

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 マシンで動作するため、どうすればこれを修正できますか?

4

0 に答える 0