軽量python環境を爆速で作成してみる。
関連記事
環境
macOS Ventura 13.3.1 (Chip: Apple M1)
軽量python環境を爆速で作る
ちょっと今pythonプログラムを動かしたい、みたいなことが何度かあるので、手順を記載する。
イメージタグの確認
dockerhubの下記ページからイメージタグを確認する。
https://hub.docker.com/_/python/tags
ここでポイントは、”alpine”という文字が含まれるものを見つけること。
フルのpythonイメージは数百MB程のサイズに対し、alpineは10数MB程度で軽量とされている。
“alpine”と検索バーに入力して検索してみる。
その中から、とりあえず、”3.XX.XX-alpine”(3.XX.XXはpythonのバージョン)を見つける。
ここでは、”3.12.6-alpine”を使用することとする。
コンテナの作成
Terminalを開いて、下記のように実行する。”python:”の後に続くタグ名は前の手順で確認したタグ名に置き換える。
mkdir -m777 ~/pythonwork
docker run -it -v ~/pythonwork:/work -w=/work --rm python:3.12.6-alpine /bin/sh
(実行例)
$ mkdir -m777 ~/pythonwork
$ docker run -it -v ~/pythonwork:/work -w=/work --rm python:3.12.6-alpine /bin/sh
Unable to find image 'python:3.12.6-alpine' locally
3.12.6-alpine: Pulling from library/python
cf04c63912e1: Pull complete
f0d3d23155cb: Pull complete
72912374a9be: Pull complete
a40a09e513fc: Pull complete
Digest: sha256:7130f75b1bb16c7c5d802782131b4024fe3d7a87ce7d936e8948c2d2e0180bc4
Status: Downloaded newer image for python:3.12.6-alpine
/work #
/work # python
Python 3.12.6 (main, Sep 12 2024, 23:14:20) [GCC 13.2.1 20240309] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
これでpython3.12.6が動くはず。
動作確認
まずはpythonと打って、対話モードで確認。
/work # python
Python 3.12.6 (main, Sep 12 2024, 23:14:20) [GCC 13.2.1 20240309] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> print("Hello World")
Hello World
>>>
最後に~/pythonworkフォルダにpythonファイルを配置して実行してみる。
エディタで作成してファインダーから配置してもいいし、viコマンド等で作成してもよい。
配置したファイルを、”test.py”とすると、下記で実行する。
/work # python test.py
Hello World
/work #
必要であれば、pipでライブラリをインストールして良い。
/work # pip install numpy
Collecting numpy
Downloading numpy-2.1.1-cp312-cp312-musllinux_1_2_aarch64.whl.metadata (62 kB)
Downloading numpy-2.1.1-cp312-cp312-musllinux_1_2_aarch64.whl (14.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.2/14.2 MB 8.7 MB/s eta 0:00:00
Installing collected packages: numpy
Successfully installed numpy-2.1.1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable.It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
/work #
/work # python
Python 3.12.6 (main, Sep 12 2024, 23:14:20) [GCC 13.2.1 20240309] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import numpy
>>> a = numpy.array(["A","B","C"])
>>> a
array(['A', 'B', 'C'], dtype='<U1')
>>>
補足
上記の手順で作成したコンテナはexitして抜けるとコンテナは削除される。
削除されたくない場合は、docker run した際の、”–rm”を抜いて実行する。
以上。