docker学习记录:创建python环境,使用vscode连接远程docker环境,使其访问同为docker镜像的mongodb的设置。

0.停止目前的库及展示当前的镜像。

1. 创建docker网络

复制代码
kt@kt-SYS-4028GR-TR2:~$ docker network create py-mongo
d221295e855a49217aab50100d7560d7c77a3c6a5e65583199ff775e0784dbdf

2.启动mongo容器

复制代码
docker run -d --name my-mongodb --network py-mongo -v ~/my-mongodata:/data/db mongo

3.创建docker环境

3.1. 创建 Dockerfile• 在你的项目目录中创建一个 Dockerfile ,内容如下:

复制代码
FROM python:latest

# 设置工作目录
WORKDIR /app

# 挂载代码目录
VOLUME /app

# 设置国内 pip 源
RUN mkdir -p /root/.pip && \
    echo "[global]" > /root/.pip/pip.conf && \
    echo "index-url = https://pypi.tuna.tsinghua.edu.cn/simple" >> /root/.pip/pip.conf

# 安装 pymongo
RUN pip install pymongo

3.2. 构建 Docker 镜像• 在项目目录中运行以下命令构建 Docker 镜像:

复制代码
docker build -t python-dev .

kt@kt-SYS-4028GR-TR2:~$ docker build -t python-dev .

+\] Building 85.9s (8/8) FINISHED docker:default =\> \[internal\] load build definition from Dockerfile 0.0s =\> =\> transferring dockerfile: 357B 0.0s =\> \[internal\] load metadata for docker.io/library/python:latest 4.4s =\> \[internal\] load .dockerignore 0.0s =\> =\> transferring context: 2B 0.0s =\> \[1/4\] FROM docker.io/library/python:latest@sha256:cea505b81701dd9e46b8dde96eaa8054c4bd2035dbb660edeb7af947ed38a0ad 75.2s =\> =\> resolve docker.io/library/python:latest@sha256:cea505b81701dd9e46b8dde96eaa8054c4bd2035dbb660edeb7af947ed38a0ad 0.0s =\> =\> sha256:54c7be425079efba0003054ee884bf72f1ffebca733bedd6f077d2809ee9aa6f 23.87MB / 23.87MB 8.7s =\> =\> sha256:7f17499b3a00d0b82c06c5e2e1e7e8f781cc08e7368216ba259365833e12faf2 5.92kB / 5.92kB 0.0s =\> =\> sha256:0a96bdb8280554b560ffee0f2e5f9843dc7b625f28192021ee103ecbcc2d629b 48.50MB / 48.50MB 23.9s =\> =\> sha256:7aa8176e6d893aff4b57b2c22574ec2afadff4673b8e0954e275244bfd3d7bc1 64.39MB / 64.39MB 31.5s =\> =\> sha256:cea505b81701dd9e46b8dde96eaa8054c4bd2035dbb660edeb7af947ed38a0ad 9.72kB / 9.72kB 0.0s =\> =\> sha256:e126f262949ae23c48205532f7459901a0f593b7af6aef0bea051fde0e75df3f 2.32kB / 2.32kB 0.0s =\> =\> sha256:1523f4b3f5602bf41caf8d8e649536ac0b3e56984c81a9f518fb20c6516ca075 211.31MB / 211.31MB 61.2s =\> =\> sha256:e0c71cd0fc9fd854e40e9bf32f375b895cb39af804f151e20c7072f7da577797 6.16MB / 6.16MB 28.1s =\> =\> extracting sha256:0a96bdb8280554b560ffee0f2e5f9843dc7b625f28192021ee103ecbcc2d629b 3.6s =\> =\> extracting sha256:54c7be425079efba0003054ee884bf72f1ffebca733bedd6f077d2809ee9aa6f 1.1s =\> =\> sha256:e1cffcff32633ccc4a30c2704b606fa504a80ba99ba73b041821e312885932c4 27.30MB / 27.30MB 38.3s =\> =\> sha256:065735b4a200d1a2b200f874a83ff2c94966f67b25db69fbc24e8c14e56a7709 249B / 249B 31.9s =\> =\> extracting sha256:7aa8176e6d893aff4b57b2c22574ec2afadff4673b8e0954e275244bfd3d7bc1 4.4s =\> =\> extracting sha256:1523f4b3f5602bf41caf8d8e649536ac0b3e56984c81a9f518fb20c6516ca075 11.7s =\> =\> extracting sha256:e0c71cd0fc9fd854e40e9bf32f375b895cb39af804f151e20c7072f7da577797 0.5s =\> =\> extracting sha256:e1cffcff32633ccc4a30c2704b606fa504a80ba99ba73b041821e312885932c4 1.4s =\> =\> extracting sha256:065735b4a200d1a2b200f874a83ff2c94966f67b25db69fbc24e8c14e56a7709 0.0s =\> \[2/4\] WORKDIR /app 1.1s =\> \[3/4\] RUN mkdir -p /root/.pip \&\& echo "\[global\]" \> /root/.pip/pip.conf \&\& echo "index-url = https://pypi.tuna.tsinghua.ed 0.2s =\> \[4/4\] RUN pip install pymongo 4.6s =\> exporting to image 0.4s =\> =\> exporting layers 0.4s =\> =\> writing image sha256:7ef1d2faf802b1908e6d87355d73ec82b227e695326506b9d794d73587bf3381 0.0s =\> =\> naming to docker.io/library/python-dev

3.3. 启动 Python 容器• 启动 Python 容器,并将其连接到 py-mongo 网络:

复制代码
docker run -itd --name my-python-dev --network py-mongo -v ~/mycode:/app python-dev /bin/bash

4.pycharm设置

0.先安装docker插件

1. 配置 PyCharm•

打开 PyCharm,进入 File -> Settings -> Build, Execution, Deployment -> Docker 。• 点击右上角的 + 添加 Docker 服务器配置,选择 Docker for Windows 或 Docker for Mac ,根据你的操作系统选择合适的选项。

2. 新建项目并配置解释器•

在 PyCharm 中新建一个项目,选择 Docker 作为解释器类型。• 在解释器配置中,选择 python-dev 容器作为解释器来源。

3.只有专业版才可以。放弃

5.vscode及相关设置

0.安装 VSCode 插件•

打开 VSCode,点击左侧活动栏的"扩展"图标(或按 Ctrl+Shift+X )。• 搜索并安装以下插件:• Python:提供 Python 开发支持。• Docker:提供 Docker 集成支持。• Dev Containers:允许你在 Docker 容器中直接开发。

如果个别不好用。找差不多的替换。

1. 打开 VSCode• 启动 VSCode,并打开你的项目目录。

2. 连接到 Docker 容器• 在左侧活动栏中,点击 Docker 图标。

• 找到 python-dev 容器,右键点击并选择 Attach Visual Studio Code ,这样你就可以在 Docker 容器中进行开发。

3.代码编写

  1. 新建 mymongo.py 文件• 在 VSCode 中新建一个名为 mymongo.py 的文件,内容如下:

    from pymongo import MongoClient

    def connect_mongo():
    client = MongoClient('mongodb://mongodb:27017/')
    db = client['testdb']
    collection = db['testcollection']
    return collection

  2. 新建 main.py 文件• 新建一个名为 main.py 的文件,内容如下:

    from mymongo import connect_mongo
    import random

    def main():
    collection = connect_mongo()
    data = {'number': random.randint(1, 100)}
    collection.insert_one(data)
    print(f"Inserted data: {data}")

    if name == "main":
    main()

3.测试并 commit 镜像1. 测试代码• 在 VSCode 中运行 main.py ,检查是否能成功连接到 MongoDB 并插入数据。2. commit 镜像• 测试成功后,使用以下命令将容器保存为新的镜像:

复制代码
docker commit -m "Updated with new modules and code" -a "Your Name" python-dev new_python_dev

总结通过以上步骤,你可以在 VSCode 中创建一个 Docker Python 开发环境,连接到 MongoDB,并进行开发和测试。VSCode 的 Docker 插件和 Remote - Containers 插件使得在容器中开发变得更加简单和高效。

以上测试记录。

相关推荐
努力毕业的小土博^_^11 分钟前
【深度学习|学习笔记】 Generalized additive model广义可加模型(GAM)详解,附代码
人工智能·笔记·深度学习·神经网络·学习
虾球xz23 分钟前
游戏引擎学习第277天:稀疏实体系统
c++·学习·游戏引擎
小堃学编程27 分钟前
前端学习(2)—— CSS详解与使用
前端·css·学习
上天_去_做颗惺星 EVE_BLUE1 小时前
Docker入门教程:常用命令与基础概念
linux·运维·macos·docker·容器·bash
alden_ygq2 小时前
Kubernetes容器运行时:Containerd vs Docker
docker·容器·kubernetes
努力搬砖 ing2 小时前
Docker疑难杂症解决指南
docker·容器·eureka
林九生2 小时前
【Docker】Docker环境下快速部署Ollama与Open-WebUI:详细指南
java·docker·eureka
Grassto2 小时前
dockerfile: PaddleOCR hubserving api 服务
docker·ocr·paddleocr
虾球xz3 小时前
游戏引擎学习第276天:调整身体动画
c++·学习·游戏引擎
虾球xz3 小时前
游戏引擎学习第275天:将旋转和剪切传递给渲染器
c++·学习·游戏引擎