Member-only story
コードをDockerコンテナでラップする
機械学習モデルを持っているだけでは、どんなビジネスも十分ではありません。必要なときに簡単に使えるように、モデルをデプロイする必要があるからです。そのための最初のステップは、モデルをファイルに保存することです。
# it’s just a one among plenty possible ways to save your modelimport picklewith open(‘model.pkl’, ‘wb’) as f:pickle.dump(model, f)
そして、第二のステップは、技術的な問題なしにモデルを任意のサーバーに移動して使用できるようにするためにラップをすることです。Dockerコンテナは非常によく使われるラッパーです(実際、業界標準となっています)。
今回のこの記事では、2番目のステップに焦点を当てます。
Dockerコンテナとは?
公式サイトによると、「コンテナとは、コードとそのディペンデンシーをすべてパッケージ化したソフトウェアの標準単位であり、アプリケーションをあるコンピュータ環境から別のコンピュータ環境へ迅速かつ確実に実行できるようにするもの」となっています。
べてのDockerコンテナは、最初は、必要なシステムライブラリからあなた自身のコードまで、アプリケーションを実行するために必要なすべてを記述したインストラクションを伴った軽量のイメージです。コンテナイメージは、実行されるとコンテナになります(提供されたインストラクションが1つずつ実行されます)。それ以前は、各Dockerイメージは単なる読み取り専用のエンティティです。複数のイメージを組み合わせて、自分だけのオリジナルイメージを簡単に作成することができます。
軽量という点以外にも、コンテナにはもう一つ大きな利点があります。コンテナは、ソフトウェアを環境から分離し、異なる環境でも均一に動作するという点です。
インストールの方法
Dockerコンテナの利用には、Dockerのインストールが必要です。
そのためには、リンクから、お使いのOSに適したファイルをダウンロードする必要があります(DockerはLinux、Windows、iOSに対応しており、個人利用であれば無料で利用できます)。
次に、ダウンロードした .exe ファイルを起動します。インストールに時間がかかるので、この間にDocker…