Docker ToolboxでNew state of ‘nil’ is invalid.と表示された時の対応

Pocket

現在、以下の本で機械学習を体験中。

pythonや機械学習等の知識がなくても、とりあえず手を動かせば何となく雰囲気を味わえるのがとても良いです。書籍ではDocker Toolbox(WindowsやMacでDockerを使うためのツール)を使って環境を構築していたため、あわせてDockerも勉強中。

何となく難しそうな印象から避けていたDockerですが、簡単に開発環境を調達できて意外に面白いです。

さて、あるコンテナを使っているときに、New state of ‘nil’ is invalid.と表示される現象が発生しました。

具体的にはDockerコンテナ内でpythonのサンプルプログラムを実行した際に表示され、コンテナ操作用のターミナルが強制終了します。

色々調べていくと、どうやら日本語を画面に出力した場合に発生する様子。別マシンで作っていた同様の環境では発生しなかった現象です。

・日本語表示に関わる問題
・コマンドプロンプト経由で発生する現象

上記二点から、文字コードに関わるコマンドプロンプトの仕様ではないかと推測。しかしネット上には、この問題についての情報がほとんどありません。

linux環境なので日本語を使わないケースは多いでしょうが、皆無ではないはず。にしてはエラーメッセージで検索できるページが少なすぎます。問題の原因を見つけるまで苦労したので、記事を残しておくことにしました。

Windowsが10未満(8.1や8, 7など)の場合、[ocker Quickstart Terminal]上のコンテナ操作コンソールで日本語を表示すると「New state of ‘nil’ is invalid.」が発生します。

どうやらコマンドプロンプトがutf8に対応していないことが原因のようです。Windows環境でutf-8のDB内容を表示した時にも文字化けで困った記憶があります。

回避策として、OSをWindows 8から10に上げました。仕事用のマシンだったためすぐにOSをアップデートできましたが、自宅マシン等では対応に困るかもしれません。OSアップデートができない環境の回避策も見つけたくてちょっと粘ったのですが、現状分かりませんでした。

現在はプロキシ環境内でDocker toolboxを動作させるのに悪戦苦闘中。機械学習を学ぶはずが、本来の目的と違うところで苦労する。。。

広告

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です