Python

【5分で出来る】Dockerを使ってPython環境を構築してみよう!

Docker×Python
ウマたん
ウマたん
本記事では、Dockerを使ってPython環境を構築していきます!仮想化技術の一つである”コンテナ”を使いこなせるようになると、様々な開発環境を楽にすぐに構築出来るようになりますので、ぜひ試してみましょう!

こんにちは!スタビジ編集部です!

最近IT業界でよく耳にするようになった「コンテナ」という技術!

ただ、言葉は知っていいてなんかすごいらしいけど、中身はよくわからない、、、という方が多いのではないでしょうか?

ロボたん
ロボたん
コンテナって最近よく聞くよね!だけど全然イメージがわかないな~
ウマたん
ウマたん
普段自分のPCだけで作業している人にはなじみがないかも、、、

ただ、コンテナを使うことでアプリの開発がすごく楽になるから知っていて損はない!

この記事では実際にDockerコンテナを使ってpython環境を作りながらコンテナに対するイメージを変えていきたいと思います!

Dockerイメージの作成

ではDockerを使ってPython環境を構築していきましょう!

構築に当たって大きく2つのフェーズがあります!

まずは「Dockerイメージの作成」!ここでDockerを立ち上げる元を準備します!

Dockerエンジンをインストール

まずはご自身のPCにDockerエンジンをインストールします!

これをインストールすることで自分のPCでDockerコンテナを利用することが出来ます!

https://www.docker.com/products/docker-desktop

インストールしたらDocker Desktopを起動しましょう!

docker

Dockerfileの準備

続いて、Dockerコンテナの元になるDockerイメージ、その設計書となる「Dockerfile」を準備していきましょう!

まずは適当な場所に実行場所となるDocker用のフォルダを準備し、Dockerfileを作成しましょう!(今回はwindows10環境で実行しています!)

docker

続いてDockerfileの中身を書いていきます!

docker

一見難しそうですが内容は単純です!ここでは基本の「FROM」と「RUN」を押さえておきましょう!

FROM python:3

FROMコマンドでは、コンテナのベースイメージを選択していますが、ざっくりいうとOSを選択しています!

普段だと「ubuntu」や「centos」といったベースイメージを選択することが一般的です

なので、例えばubuntuのベースイメージを選択してその上にpythonをインストールするということも可能です!

ただ、いちいちOSとpythonのバージョンの互換性をチェックしてインストールするのは面倒なので、今回はあらかじめ公式が用意しているpythonイメージを使います!

そうすることですぐにpythonがインストールされた環境を利用できます!ちなみに「python:3」を選択した場合、OSはDebianのようです!

RUN ~

RUNコマンドはベースイメージで出来上がったコンテナに対して実行する命令を記述する、いわば初期設定のようなものです!

例えば、「○○をインストール」と記述するとコンテナが立ち上がった段階で、コンテナに〇〇がインストールされています!

ウマたん
ウマたん
他にもDockerfileでいろいろな記述することで、Dockerコンテナに最初から好きな設定が出来ます!

他のDockerfileのコマンドを調べてみよう!

コンテナイメージの作成

では用意したDockerfileからコンテナの元になるコンテナイメージを作成しましょう!

今のdockerレポジトリにあるイメージを確認しましょう!Docker Desktopの「Images」から確認できます!

docker

dockerfileからdockerイメージを作成します!dockerfileのある場所で下記のコマンドを実行します

「docker build -t コンテナ名 .」

docker

このコマンドで現在のディレクトリ(.)にあるdockerfileを探して実行します!

各コマンドが順番に実行されていることがわかります!

docker

実行が終わるとDockerイメージが作成されます、dockerレポジトリの中身を見てみましょう!

docker
ウマたん
ウマたん
Dockerイメージを作成して第一段階終了!あとはこのイメージからコンテナを起動していくよ!

コンテナ起動・修正

ここでは前のフェーズで作ったDockerイメージからDockerコンテナを起動していきます!

コンテナ起動

作成したDockerfileからコンテナを起動します!

「docker container run -it dockerイメージ名」で実行!

docker

dockerイメージからdockerコンテナを作成し、そのコンテナの中に入っています!pythonが起動されていますね!(「quit()」か「exit()」と打つとコンテナから抜けられます!)

コンテナ一覧を見てみるとコンテナが作成されたことがわかります(Docker Desktop「Containers/App」でも確認できます!)

docker

コンテナをいじってみる

今度はpythonは起動せずにコンテナに入ります!

「docker container exec -it コンテナID /bin/bash」と入力してみましょう!

docker

コンテナの中に入りました!pythonがインストールされているのがわかります!

ではこの環境で行列の掛け算をするpythonのアプリを実行したいと思います!

docker

このpythonアプリを実行します・・・エラーになります

docker

このコンテナにはnumpyをインストールしていないので、エラーになるんですね

ではnumpyをインストールして再度実行してみます!

docker

実行されて計算結果が出力されています!

このように、コンテナを立ち上げた後も必要なツールのインストールなど環境を拡張することも簡単にできます!

新しいコンテナをDockerイメージにする

今のコンテナはnumpyをインストールされた環境です!

DockerではこのコンテナをDockerイメージに戻すこともできます!

一度コンテナから出て、「docker commit コンテナ名 コンテナイメージ名:タグ」を実行するとそのコンテナのコンテナイメージを作成できます!

docker

コンテナイメージの一覧を見てみましょう!

docker

今回はわかりやすく「docker_python」でコンテナイメージ名を統一しました!

新しい方(ver2)の方は前のもの(latest)に比べて、容量が多いですね!

numpyをインストールしたりsample.pyを作成した分が反映されているのがわかります!

では、新しいコンテナイメージでコンテナを起動してみましょう!

docker

先ほど作ったsample.pyがありnumpyでの計算も実行されています!

このようにコンテナで環境を作ってコンテナイメージにすることで、いろんな環境構築を試すことが出来ます!

また、コンテナで試した後でインストールして大丈夫なものを最初のDockerfileのRUNコマンドにまとめることもあります!

ウマたん
ウマたん
コンテナで自分だけのpython環境を作ってみよう!

Dockerの勉強方法

Dockerは比較的新しい技術ですので今のうちに勉強しておくとよいでしょう!

Dockerを学ぶのにおすすめなのはUdemyの以下の講座!

米国AI開発者がゼロから教えるDocker講座

Udemy Docker
【オススメ度】
【講師】データサイエンティスト
【時間】8時間
【レベル】初級~中級

チームでの開発環境を構築する上でおさえておきたいのが、Docker

従来の分析・開発環境は、各自がローカルに持っていたり共有サーバーに持っていたり、場所が違えば環境が変わり、環境を整えるのが面倒でした。

それがこのDockerを使うことで他人と共有、PJごとに共有、することが容易になったのです。

ただなかなか分かりやすい教材がないなか、米国AI開発者のかめさんのこの動画は素晴らしい!

Dockerを学ぶならまず見ておきたい教材です!

\30日間返金無料/このコースを見てみる

非常に分かりやすくDockerについて教えてくれます。

この講座をやれば一通りDockerについては理解が深まると思います。

ただDockerだけできても意味がありません。

プログラミングやデータサイエンスについても一緒に勉強していきましょう!

プログラミングの勉強 順番
プログラミング言語を勉強する順番はこれだ!勉強方法と一緒に解説!当サイト【スタビジ】の本記事では、プログラミング言語の勉強方法をプログラミングの勉強を挫折しながらも試行錯誤して継続してきた僕がまとめていきます。今振り返った時に感じるプログラミング学習の順番を解説していきますので是非参考にしてみてくださいね!...
【入門者向け】データサイエンティストに必要なスキルと独学勉強ロードマップ!当サイト【スタビジ】の本記事では、データサイエンティストに求められるスキルとそれを身に付けるための勉強法について徹底的にまとめていきます!入門者でも、しっかりデータサイエンティストについて理解しある程度独学で駆け出しの状態までいけることを目指します。...

Dockerを使ったpython環境構築 まとめ

ここまでDockerを使ったpythonの環境構築についてその手順をお伝えしました!

コンテナは一見難しそうですが、実際に触ってみると簡単にpython環境を作れることがわかると思います!

またコンテナを改造したらまた新しいDockerイメージとして作ることで、自分の環境をいろんな人に渡すこともできます!

こうしていろんな環境を手軽に使えるのがコンテナの良さなので、ぜひ試してみてください!

ロボたん
ロボたん
コンテナって最初は難しいと思ってたけど意外と何とかなるかも!
ウマたん
ウマたん
失敗してもまた作り直せばいいのもコンテナの魅力!何度もトライしてみよう!

pythonの勉強法については以下の記事で詳しくまとめてありますので、是非見てください!

Python 勉強
【Python独学勉強法】初心者が3か月で習得できるロードマップ!当サイト【スタビジ】の本記事では、過去僕自身がPythonを独学を駆使しながら習得した経験をもとにPythonを効率よく勉強する方法を具体的なコード付き実装例と合わせてまとめていきます。Pythonはできることが幅広いので自分のやりたいことを明確にして勉強法を選ぶことが大事です。...
スタビジアカデミーでデータサイエンスをさらに深く学ぼう!
スタアカトップ

スタビジのコンテンツをさらに深堀りしたコンテンツが動画と一緒に学べるスクールです。

プレミアムプランでは私がマンツーマンで伴走させていただきます!ご受講お待ちしております!

スタビジアカデミーはこちら