

Windows10 home + WSL2(Ubuntu) + Docker for Windows (+
VScode)でPythonの環境を構築しようとしています。

DockerでのPython環境の構築方法を調べたら、dockerfileの書き方について、主に二つの方法が挙げられているように思います。  
一つは<https://blauthree.hatenablog.com/entry/2019/07/13/000839>に書かれているように、ubuntuのコンテナを作ってからpythonをインストールする方法。

[code]

    # ベースとなるイメージ
    FROM ubuntu:18.04
    
    # RUNでコンテナ生成時に実行する
    RUN apt-get update
    RUN apt-get install -y python3 python3-pip
    
[/code]

もう一つはpythonのイメージをpullしてコンテナを作る方法です。

[code]

    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
    
[/code]

前者はubuntuをインストールして、そのOS上でpythonが動くんだなぁという感覚があるのですが、後者だとどのOS上でpythonが動くのでしょうか？WSL2としてインストールしているUbuntuをベースに動くのか、docker
hubからpullしているpython::3というイメージに何かしらのOSが組み込まれているのでしょうか？

また、単純にどちらの方が適切かという指標はあるのでしょうか？

きっととてつもなく初心者質問な気がしているのですが、お答え頂けたら幸いです、よろしくお願いします。


CC BY-SA 4.0
2021-03-13T16:58:37.207
74654
2022-06-03T02:03:30.380
44325
question
ubuntu docker wsl
DockerでPythonイメージからコンテナを作った際、どのOSでPythonは動いているのか


<https://hub.docker.com/_/python> での説明を見る限り、`python:<version>`
を指定した場合のOSはDebian (Linux) のようです。

なお、指定を変えれば Alpine Linux や Windows Server Core も選べるようです。

ベースイメージをどう選ぶかについては、何を優先して求めるかによって変わってくるかと思います。

Ubuntu (OS)
をベースに選んだ場合、後から入れるPythonパッケージはOSで用意されたものに限定されてきます。(常に最新のPythonが使えるとは限らない)

Pythonイメージの方はマイナーバージョンも含めて細かく選択できるので、特定のPythonバージョンの再現環境が必要な場合などはこちらの方が便利かもしれません。


CC BY-SA 4.0
2021-03-13T17:23:03.287
74655
2021-03-13T17:31:20.200
2021-03-13T17:31:20.200
3060
3060
74654
answer