# 【5分で出来る】Dockerを使ったPython環境構築方法と勉強方法！

> 当サイト【スタビジ】の本記事では、Dockerを使ってPython環境を構築していきます！仮想化技術の一つである

- URL: https://toukei-lab.com/docker_python
- 公開: 2022.11.29 / 更新: 2025.01.06
- サイト: スタビジ（https://toukei-lab.com）

:::talk{who="umatan"}
本記事では、Dockerを使ってPython環境を構築していきます！仮想化技術の一つである”コンテナ”を使いこなせるようになると、様々な開発環境を楽にすぐに構築出来るようになりますので、ぜひ試してみましょう！またDockerの勉強法についても簡単にまとめていきます！
:::

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

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

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

:::talk{who="robotan"}
コンテナって最近よく聞くよね！だけど全然イメージがわかないな～
:::

:::talk{who="umatan"}
普段自分のPCだけで作業している人にはなじみがないかも、、、

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

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

## Dockerコンテナとは

Dockerコンテナを作成する前&#x306B;**「コンテナとは？」「Dockerとは？」**&#x306B;ついて解説していきます。

### コンテナとは

「**コンテナ（コンテナ技術）**」とはOSレベルの仮想化技術であり、複数のアプリケーションを単一のOS上で隔離して実行できるものです。

一般的な仮想化（ハイパーバイザー型）とコンテナ型の違いを簡単なイラストで表すと下図の感じです。

![docker](/wp-content/uploads/2022/11/docker2-min.jpg)

コンテナ化したアプリはOS環境（カーネル）を共有しています。

そのため、従来の仮想マシンよりもリソース利用が抑えられるので、<mark>コンテナ化したアプリは軽量で高速に動作します。</mark>

:::talk{who="umatan"}
コンテナは仮想化技術の一つ！軽量で高速に動作することが特徴！
:::

### Dockerとは

続いて「**Docker**」について見ていきましょう。

Dockerは<mark>Docker社が開発しているコンテナ技術を利用したオープンソースのコンテナ管理ソフトです。</mark>

Dockerではコンテナのビルド、デプロイ、管理、監視などの機能を提供しています。

アプリケーションやサービスをコンテナ化して実行できて、このDockerで作成されたコンテナを「**Dockerコンテナ**」と呼びます。

DockerコンテナではDockerレジストリなどのリポジトリからベースイメージ（Dockerイメージ）を取得することで簡単にコンテナを起動することが出来ます。

![docker](/wp-content/uploads/2022/11/docker3-min.jpg)

:::talk{who="umatan"}
Dockerを利用することで簡単にコンテナを使うことが出来るんだね！
:::

## Dockerイメージの作成

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

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

まずは「Dockerイメージの作成」！

ここでDockerを立ち上げる元を準備します！

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

まずはご自身の<mark>PCにDockerエンジンをインストール</mark>します！

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

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

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

![docker](/wp-content/uploads/2021/12/docker_desktop2.jpg)

### Dockerfileの準備

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

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

![docker](/wp-content/uploads/2021/12/dockerfile2-min.jpg)

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

![docker](/wp-content/uploads/2021/12/Dockerfile3-min-e1638974620122.jpg)

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

:::box
FROM python\:3
:::

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

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

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

ただ、いちいちOSとpythonのバージョンの互換性をチェックしてインストールするのは面倒なので、今回はあらかじめ[公式](https://hub.docker.com/_/python)が用意しているpythonイメージを使います！

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

:::box
RUN \~
:::

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

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

:::talk{who="umatan"}
他にもDockerfileでいろいろな記述することで、Dockerコンテナに最初から好きな設定が出来ます！

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

### コンテナイメージの作成

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

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

![docker](/wp-content/uploads/2021/12/dockerimage1.jpg)

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

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

![docker](/wp-content/uploads/2021/12/dockerimge2-min-1024x28.jpg)

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

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

![docker](/wp-content/uploads/2021/12/dockerimage3-min-e1638974654551.jpg)

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

![docker](/wp-content/uploads/2021/12/dockerimage4-min-1024x161.jpg)

:::talk{who="umatan"}
Dockerイメージを作成して第一段階終了！あとはこのイメージからコンテナを起動していくよ！
:::

## コンテナでPython環境作成

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

### コンテナ起動

<mark>作成したDockerfileからコンテナを起動します！</mark>

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

![docker](/wp-content/uploads/2021/12/dockercontainer1-min-1024x104.jpg)

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

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

![docker](/wp-content/uploads/2021/12/dockercontainer3-min-1024x184.jpg)

### コンテナをいじってみる

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

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

![docker](/wp-content/uploads/2021/12/dockercontainer4-min.jpg)

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

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

![docker](/wp-content/uploads/2021/12/dockerpython1-min.jpg)

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

![docker](/wp-content/uploads/2021/12/dockerpython2-min.jpg)

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

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

![docker](/wp-content/uploads/2021/12/dockerpython3-min.jpg)

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

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

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

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

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

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

![docker](/wp-content/uploads/2021/12/dockercommit-min.jpg)

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

![docker](/wp-content/uploads/2021/12/dockercommit2-min.jpg)

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

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

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

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

![docker](/wp-content/uploads/2021/12/dockercommit3-min.jpg)

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

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

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

:::talk{who="umatan"}
コンテナで自分だけのpython環境を作ってみよう！
:::

## Dockerの勉強方法

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

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

### [米国AI開発者がゼロから教えるDocker講座](https://trk.udemy.com/YRaJYe)

[![Udemy Docker](/wp-content/uploads/2020/04/docker-min-scaled.jpg)](https://trk.udemy.com/YRaJYe)

<table class="table">
<tbody>
<tr>
<th>【オススメ度】</th>
<td><span class="stars" role="img" aria-label="5点中4.5点" data-value="4.5"></span></td>
</tr>
<tr>
<th>【講師】</th>
<td><span>データサイエンティスト</span></td>
</tr>
<tr>
<th>【時間】</th>
<td><span>8時間</span></td>
</tr>
<tr>
<th>【レベル】</th>
<td><span>初級～中級</span></td>
</tr>
</tbody>
</table>

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

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

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

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

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

＼30日以内なら返金無料／

::button[このコースを見てみる]{href="https://trk.udemy.com/YRaJYe"}

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

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

:::talk{who="umatan"}
とってもわかりやすいよ！
:::

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

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

<https://toukei-lab.com/programming-study>

<https://toukei-lab.com/data-scientist>

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

![An illustration depicting the concept of containers in computing. The image features a modern, sleek representation of software containers, symbolized by stacked rectangular blocks with icons of applications and tools inside. The containers are shown running on a cloud platform, with subtle networking and orchestration elements like Docker and Kubernetes symbols. The background is futuristic and clean, highlighting scalability and efficiency.](https://files.oaiusercontent.com/file-D6zXPc3kW3zu6g8gMi8SmQ?se=2025-01-06T12%3A36%3A59Z\&sp=r\&sv=2024-08-04\&sr=b\&rscc=max-age%3D604800%2C%20immutable%2C%20private\&rscd=attachment%3B%20filename%3D56bb15e9-df9c-4381-9b62-149505647028.webp\&sig=TD9LC96oLg3peVufL7ExycCRFp8oKj3R4J4NcwqbHiQ%3D)

最後までご覧いただきありがとうございます！

本記事では、**Dockerを使ったpythonの環境構築**についてその手順をお伝えしました！

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

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

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

:::talk{who="robotan"}
コンテナって最初は難しいと思ってたけど意外と何とかなるかも！
:::

:::talk{who="umatan"}
失敗してもまた作り直せばいいのもコンテナの魅力！何度もトライしてみよう！
:::

コンテナの土台となるLinuxについて勉強したい方は、以下の記事で詳しくまとめてありますので、是非チェックしてみてください。

<https://toukei-lab.com/linux_learn>

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

<https://toukei-lab.com/python-learn>

構築したPython環境でAIやデータ分析をしてみたいという方は当サイト「スタビジ」が提供する[スタビジアカデミー](https://toukei-lab.com/achademy/)というサービスで体系的に学ぶことが可能ですので是非参考にしてみてください！

:::box
**AIデータサイエンス特化スクール「スタアカ」**

![スタアカトップ](/wp-content/uploads/2021/11/2bc9f22d0f8dfe24080b83884b7a5ec6-1024x576.jpg)
:::

<table class="table">
<tbody>
<tr>
<th>【価格】</th>
<td>ライトプラン：1280円/月<br>
プレミアムプラン：149,800円</td>
</tr>
<tr>
<th>【オススメ度】</th>
<td><span class="stars" role="img" aria-label="5点中5点" data-value="5"></span></td>
</tr>
<tr>
<th>【サポート体制】</th>
<td><span class="stars" role="img" aria-label="5点中4点" data-value="4"></span></td>
</tr>
<tr>
<th>【受講形式】</th>
<td>オンライン形式</td>
</tr>
<tr>
<th>【学習範囲】</th>
<td>データサイエンスを網羅的に学ぶ<br>
実践的なビジネスフレームワークを学ぶ<br>
SQLとPythonを組み合わせて実データを使った様々なワークを行う<br>
マーケティングの実行プラン策定<br>
マーケティングとデータ分析の掛け合わせで集客マネタイズ</td>
</tr>
</tbody>
</table>

データサイエンティストとしての自分の経験をふまえてエッセンスを詰め込んだのがこちらのスタビジアカデミー、略して「[スタアカ](https://toukei-lab.com/achademy/)」！！

当メディアが運営するスクールです。

<mark>24時間以内の質問対応と現役データサイエンティストによる複数回のメンタリングを実施します！</mark>

カリキュラム自体は、他のスクールと比較して圧倒的に良い自信があるのでぜひ受講してみてください！

他のスクールのカリキュラムはPythonでの機械学習実装だけに焦点が当たっているものが多く、実務に即した内容になっていないものが多いです。

<mark>そんな課題感に対して、実務で使うことの多いSQLや機械学習のビジネス導入プロセスの理解なども合わせて学べるボリューム満点のコース</mark>になっています！

Pythonが初めての人でも学べるようなカリキュラムにしておりますので是非チェックしてみてください！

ウォルマートのデータを使って商品の予測分析をしたり、実務で使うことの多いGoogleプロダクトのBigQueryを使って投球分析をしたり、データサイエンティストに必要なビジネス・マーケティングの基礎を学んでマーケティングプランを作ってもらったり・Webサイト構築してデータ基盤構築してWebマーケ×データ分析実践してもらったりする盛りだくさんの内容になってます！

:::box
**・BigQuery上でSQL、Google Colab上でPythonを使い野球の投球分析**\
**・世界最大手小売企業のウォルマートの実データを用いた需要予測**\
**・ビジネス・マーケティングの基礎を学んで実際の企業を題材にしたマーケティングプランの策定\
・Webサイト構築してデータ基盤構築してWebマーケ×データ分析実践して稼ぐ**
:::

＼今すぐ試す／

::button[スタアカの受講はこちら]{href="https://toukei-lab.com/achademy/"}