したがって、私の最終的な目標は、MySQL Dockerコンテナー(パブリックレジストリのtutum/mysqlなど)を実行してから、Gitlab Dockerコンテナー(sameersbn/gitlabなど)を、両方のコンテナーが永続ストレージを使用するコンテナーにリンクすることです。
しかし、MySQLの部分に行き詰まっています。以下に概説されているように、事前に作成されたMySQL Dockerコンテナ(mysql、tutum/mysqlおよびsameersbn/mysql)を実行しようとするたびに、以下の出力が得られます。
手順
これは、以下のエラーメッセージを取得する1つの方法にすぎません。
出力:
root @ 1bbeb34f3491:/#mysqld
140730 4:49:04 [警告] key_buffer_sizeの代わりに一意のオプションプレフィックスkey_bufferを使用することは非推奨であり、将来のリリースで削除される予定です。代わりにフルネームを使用してください。
140730 4:49:04 [警告] myisam-recover-optionsの代わりに一意のオプションプレフィックスmyisam-recoverを使用することは非推奨であり、将来のリリースで削除される予定です。代わりにフルネームを使用してください。
140730 4:49:04 [注]プラグイン「FEDERATED」は無効になっています。
mysqld:テーブル 'mysql.plugin'は存在しません
140730 4:49:04 [エラー] mysql.pluginテーブルを開けません。 mysql_upgradeを実行して作成してください。
140730 4:49:04 InnoDB:InnoDBメモリヒープが無効になっています
140730 4:49:04 InnoDB:ミューテックスとrw_locksはGCCアトミックビルトインを使用します
140730 4:49:04 InnoDB:圧縮テーブルはzlib 1.2.8を使用します
140730 4:49:04 InnoDB:LinuxネイティブAIOの使用
140730 4:49:04 InnoDB:バッファプールの初期化、サイズ= 128.0M
140730 4:49:04 InnoDB:バッファプールの初期化が完了しました
140730 4:49:04 InnoDB:サポートされている最も高いファイル形式はバラクーダです。
140730 4:49:04 InnoDB:バックグラウンドスレッドの開始を待機しています
140730 4:49:05 InnoDB:5.5.37が開始されました。ログシーケンス番号1595675
140730 4:49:05 [注]サーバーのホスト名(バインドアドレス): '0.0.0.0';ポート:3306
140730 4:49:05 [注]-「0.0.0.0」は「0.0.0.0」に解決されます。
140730 4:49:05 [注]サーバーソケットはIP: '0.0.0.0'で作成されました。
140730 4:49:05 [エラー]サーバーを起動できません:UNIXソケットにバインド:権限が拒否されました
140730 4:49:05 [エラー]ソケット/var/run/mysqld/mysqld.sockで別のmysqldサーバーが実行されていますか?
140730 4:49:05 [エラー]中止
140730 4:49:05 InnoDB:シャットダウンを開始しています... 140730 4:49:06 InnoDB:シャットダウンが完了しました。ログシーケンス番号1595675 140730 4:49:06 [注] mysqld:シャットダウンが完了しました
エラーへの対処
root @ 1bbeb34f3491:/#mysql_upgrade
次のように「mysql」を探します:mysql
「mysqlcheck」を次のように探します:mysqlcheck
致命的なエラー:アップグレードに失敗しました
どのMySQLコンテナを試しても、最終的にMySQLを起動すると、同じエラーメッセージが表示されました。これはほぼ間違いなく、設定に問題があり、混乱しているため、公開されたポートや永続ストレージのないDockerコンテナーが、Dockerがインストールされているシステムから分離されると思っていたためです。
また、-dフラグを指定してMySQLコンテナーを実行してから、それにリンクされた新しいubuntu 14.04コンテナー(docker.io run -it --link mysql:mysql ubuntu:14.04 bash)を実行してみました。 Ubuntuコンテナーにapt-getを使用してmysql-clientをインストールし、MySQLコンテナーに接続しようとしましたが、それも機能しません。
私のホストシステムはUbuntu 14.04を実行しており、Dockerはapt-getによってインストールされ、バージョンは0.9.1です。
問題は私にはかなり奇妙に思われるので、私はこの説明に何を入れればよいのかよくわかりませんでした。見逃してしまったことがありましたら、お問い合わせください。追加します。
ありがとう、JamesStewy
[〜#〜] edit [〜#〜]誰かが1つのMySQLコンテナと1つのリンクされたコンテナを作成し、それらのために機能する一連の命令を作成して、私が試してみることができるとしたら。
Sameersbn/mysqlを使用
インタラクティブに実行できるとは思いません。
docker run --name mysql -d sameersbn/mysql:latest
したがって、単にデーモンとして実行し、コンテナを調べて次のようにIPアドレスを見つけます。
docker inspect mysql | grep IPAddres
その後、そのIPでmysqlに接続できます。
同じ問題が発生しました-mysqlが起動するまで待つ必要があります(または少なくともリスナーを起動する必要があります)。そうでなければ、あなたはあなたが得た2013年の問題を取得します。スリープ60を追加しました。これはかなり洗練されていないハックですが、機能しているようです。より良い回避策を聞きたいです。