ストックドッグ

KatoTakahiro。金融系の会社で働くSEが株やPython、その他諸々について書いています。サービスも運営してます→http://fmbrain.work

dockerでpython環境を整えて、docker hubにimageを上げる

anaconda3が入ったimageを使おう

docker公式がanaconda3を入れたimageを用意しているっぽいです。

https://hub.docker.com/r/continuumio/anaconda3/


それが、これ。

anacondaが最初から入っていれば、とても便利ですね。

imageをpullする。

$ sudo docker pull continuumio/anaconda3


pullにめちゃめちゃ時間がかかりました。

pullが終わったら、とりあえず使ってみたいのでコンテナを立ち上げる。

$ sudo docker run -it continuumio/anaconda3 /bin/bash


pythonが動くか試してみる。

$ python


動く!

用が済んだら適当にexit。

$ exit

動かしたコンテナのIDを確認する

$ sudo docker ps -a

idは、5ab62f54269fc。

オリジナルのimageを作成する

exitで抜けると、dockerコンテナは停止状態になります。

そのため、もう一度そのコンテナにログインするには稼働状態にする必要があります。

IDを指定してコンテナをstart。

$ sudo docker start 5ab62f54269fc


これで稼働状態になったので、ログイン。

作成したdockerにログインする。

$ sudo docker attach 5ab62f54269fc


ログイン後は、適当に自分が欲しいライブラリをインストールしたり、

仮想環境も作ってみたり。

$ conda create -n py3 python=3.4
$ pip install flask


適当にファイルをローカルからdockerコンテナにコピーしてみたり。

sudo docker cp bot 8eba6785543a:/root/


イメージ通りのimageになったら、コミットしてimageを作成する。

sudo docker commit 8eba6785543a user_name/chatbot


このときimageの名前は、ユーザー名/プログラムの内容(任意)にするのが決まりみたいです。

ユーザー名というのは、dockerにユーザー登録をした時のユーザー名。


imageの作成が終わったら、それをdocker hubにpushして共有する。

$ sudo docker login
$ sudo docker push user_name/chatbot

user_nameに、dockerのユーザー登録をした時のものを使っていなかったエラーが発生する。

エラーなく終われば、docker環境のあるPCであればどこからでもpullすることができるはず。

$ sudo docker pull user_name/chatbot

まとめ

以上、終わり!