制作容器时,啥是远程 Docker 解释器?
Posted
技术标签:
【中文标题】制作容器时,啥是远程 Docker 解释器?【英文标题】:What is a remote Docker interpreter when you make a container?制作容器时,什么是远程 Docker 解释器? 【发布时间】:2020-10-03 12:13:49 【问题描述】:例如,如果您正在为 Django 项目制作容器,那么远程解释器是存储在 Docker 云中而不是您的 PC 上的 Python 解释器吗?
所以当有人在另一台 PC 上运行容器时,它会使用 Docker 云中为该项目指定的同一个远程解释器?
【问题讨论】:
什么是 docker 云?你是说 DockerHub(它是一个images 的存储库,不运行容器)还是一些运行 docker 的服务,比如 Azure/AWS 等? 【参考方案1】:你的 docker docker 容器就像一个包含 python 解释器 + django 源代码 + 其他任何东西的盒子。
所以当你用你的 Django 应用程序制作 Docker 容器时,你显然有一个 Dockerfile 看起来像这样:
FROM python:3.8.0-alpine
# set work directory
WORKDIR /usr/src/app
# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# install dependencies
RUN pip install --upgrade pip
COPY ./requirements.txt /usr/src/app/requirements.txt
RUN pip install -r requirements.txt
# copy project
COPY . /usr/src/app/
和docker-compose.yml
版本:'3.7'
services:
web:
build: ./app
command: python manage.py runserver 0.0.0.0:8000
volumes:
- ./app/:/usr/src/app/
ports:
- 8000:8000
env_file:
- ./.env.dev
因此,当有人在另一台 PC 上运行容器时,它将使用容器中相同的本地解释器。
【讨论】:
那么为什么解释器实际上位于容器内部时却被称为“remote”(来源:blog.jetbrains.com/pycharm/2015/12/using-docker-in-pycharm)? 因为它在容器中的某个地方:) 我不会将 pycharm 的术语与 docker 核心混在一起。容器的重点是将所有依赖代码打包并放置为一个独立的“盒子”以上是关于制作容器时,啥是远程 Docker 解释器?的主要内容,如果未能解决你的问题,请参考以下文章
VsCode远程调试,更改pythonpath指向docker容器的python解释器
Pycharm 使用 Docker Container Python 作为远程解释器