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 插件使得在容器中开发变得更加简单和高效。

以上测试记录。

相关推荐
Lvan的前端笔记5 小时前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
敬往事一杯酒哈6 小时前
海康 AGV 导航读码器学习
学习
qq_284274058 小时前
机械原理笔记:平面机构自由度计算(复合铰链、局部自由度、虚约束)与四杆机构入门(含考点)
笔记·学习·平面·自动化·制造
qq_284274059 小时前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造
Titan202410 小时前
MySQL访问个人学习笔记
笔记·学习·mysql
sbjdhjd10 小时前
云安全 | Docker 容器逃逸复盘(三):docker.sock 挂载与 Docker-in-Docker 风险
经验分享·网络安全·docker·云原生·容器·kubernetes·云安全
热爱Liunx的丘丘人11 小时前
1、什么是K8s
云原生·容器·kubernetes
小雪崩11 小时前
嵌入式学习 day64:字符设备驱动
学习
个 人 练 习 生11 小时前
C++ string 类模拟实现:从底层理解字符串(上)
开发语言·c++·经验分享·学习·程序人生
坤坤子吖12 小时前
C++智能指针:RAII、shared_ptr与内存泄漏
开发语言·c++·笔记·学习