2017-10-06 5 views
0

Ubuntu 16.04 on Docker 17.05.0-ce私はホストディレクトリマッピング(ボリューム)でpercona-mysqlドッカーイメージを設定しようとします。ここでの画像は以下のとおりです。ボリューム(-v)が定義されているときに、ubuntuで実行した後、percona(mysql mariadb)コンテナが停止する

docker pull percona/percona-server:latest

そしてここでは、コンテナの実行コマンドです:

docker run --name percona -e MYSQL_ROOT_PASSWORD=secret -v /home/myuser/db/files:/var/lib/mysql -p 6603:3306 -d percona/percona-server:latest mysql -h docker_host_ip -P 6603

問題は、コンテナはすぐにこのコマンドの後に停止することである - しかし、私は-v ...パラメータ(ボリュームマッピングを使用しないとき)コンテナは問題なく起動します。この問題を解決するには?

この問題は、mysqlまたはmariadbイメージでも発生する可能性があります。あなたのホスト上でコマンドを次

答えて

0

ソリューション

タイプ:次に

cd /home/myuser/db 
sudo chown 1001:0 files 

再びコンテナを実行し、実行しているのフェイル後

  1. すべて:)

    ウェイのthats、私が見てログにはdocker logs perconaとmysqlにディレクトリへの書き込み権限がないことを確認してください/var/lib/mysql

  2. 私はボリュームなしでコンテナを実行します:docker run --name percona -e MYSQL_ROOT_PASSWORD=secret -p 6603:3306 -d percona/percona-server:latest mysql -h docker_host_ip -P 6603
  3. 私はコンテナにログイン:docker exec -it percona /bin/bash
  4. は私が入力します。drwxr-xr-x 5 mysql root 4096 Oct 6 14:39 mysqlcd /var/lib
  5. 後行以下のmysqlディレクトリの近くに私が見るls -lを実行します。これは、所有者がmysqlであり、グループがrootであることを意味します。私はid -u mysqlして、MySQLのユーザーUID(私はを取得)
  6. を取得
  7. 私は、MySQLが一つのグループ(ルート)を持つことgroups mysqlで確認してください。だから私はid -g mysqlを入力し、ルートGIDを取得するために
  8. chownコマンド
  9. は、ファイルのUIDを設定することができます(私はを取得):GID doesntのユーザーが存在するので、我々はホスト上のユーザ mysqlを作成する必要はありませんさえのために(!)。したがって、ホスト上で chown ...を実行した後、フォルダ filesは、コンテナ内のmysqlとまったく同じユーザとグループを持っています。
関連する問題