質問: Windows10 home + WSL2(Ubuntu) + Docker for Windows (+ VScode)でPythonの環境を構築しようとしています。 DockerでのPython環境の構築方法を調べたら、dockerfileの書き方について、主に二つの方法が挙げられているように思います。 一つはに書かれているように、ubuntuのコンテナを作ってからpythonをインストールする方法。 ``` # ベースとなるイメージ FROM ubuntu:18.04 # RUNでコンテナ生成時に実行する RUN apt-get update RUN apt-get install -y python3 python3-pip ``` もう一つはpythonのイメージをpullしてコンテナを作る方法です。 ``` FROM python:3 USER root RUN apt-get update RUN apt-get -y install locales && \ localedef -f UTF-8 -i ja_JP ja_JP.UTF-8 ``` 前者はubuntuをインストールして、そのOS上でpythonが動くんだなぁという感覚があるのですが、後者だとどのOS上でpythonが動くのでしょうか?WSL2としてインストールしているUbuntuをベースに動くのか、docker hubからpullしているpython::3というイメージに何かしらのOSが組み込まれているのでしょうか? また、単純にどちらの方が適切かという指標はあるのでしょうか? きっととてつもなく初心者質問な気がしているのですが、お答え頂けたら幸いです、よろしくお願いします。
回答: での説明を見る限り、`python:` を指定した場合のOSはDebian (Linux) のようです。 なお、指定を変えれば Alpine Linux や Windows Server Core も選べるようです。 ベースイメージをどう選ぶかについては、何を優先して求めるかによって変わってくるかと思います。 Ubuntu (OS) をベースに選んだ場合、後から入れるPythonパッケージはOSで用意されたものに限定されてきます。(常に最新のPythonが使えるとは限らない) Pythonイメージの方はマイナーバージョンも含めて細かく選択できるので、特定のPythonバージョンの再現環境が必要な場合などはこちらの方が便利かもしれません。