Сбой развертывания docker python3

Я развернул контейнер docker с этим Dockerfile для моего Django-rest-приложения:

FROM python:3

ENV PYTHONUNBUFFERED 1

RUN mkdir /app WORKDIR /app COPY requirements.txt /app/ COPY . /app/

RUN /usr/local/bin/python -m pip install --upgrade pip RUN pip install -r requirements.txt

Однако docker не устанавливает python3 на мою виртуальную машину, вместо этого он устанавливает python2. Есть ли способ убедиться, что docker устанавливает правильный python?

Спасибо,

Краткий ответ

Python 3 развернут в экземпляре образа, а не на виртуальной машине.

Как проверить, хорошо ли используется python 3 в вашем изображении :

  • Запуск докера
    docker run --rm python:3 /bin/bash -c "python --version && pip --version"
    # Python 3.10.0
    # pip 21.2.4 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)
    
    
  • Простой dockerfile
    FROM python:3
    
    ENV PYTHONUNBUFFERED 1
    
    RUN python --version
    RUN pip --version
    
  • Вывод, пожалуйста, смотрите версию python и версию pip
    Sending build context to Docker daemon  41.47kB
    Step 1/4 : FROM python:3
    ---> 618fff2bfc18
    Step 2/4 : ENV PYTHONUNBUFFERED 1
    ---> Running in 421cfb4445ad
    Removing intermediate container 421cfb4445ad
    ---> acc0f2c36571
    Step 3/4 : RUN python --version
    ---> Running in 399632a39d32
    Python 3.10.0
    Removing intermediate container 399632a39d32
    ---> 3f78b14a2645
    Step 4/4 : RUN pip --version
    ---> Running in 5b541e3ff5a0
    pip 21.2.4 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)
    

Ваш dockerfile

FROM python:3

ENV PYTHONUNBUFFERED 1

WORKDIR /app

COPY . .

RUN pip install --upgrade pip && pip install -r requirements.txt
  • Как использовать его с docker run
    docker run <image id/name>
    

Дополнительная информация :

Если вы хотите проверить версию Python внутри вашего контейнера, вы можете сделать следующее:

$ docker run -it <container_name_or_hash> bash

когда вы "внутри", бегите

python --version
Вернуться на верх