win10中Docker安装、构建镜像、创建容器、Vscode连接实例

  Docker方便一键构建项目所需的运行环境:首先构建镜像(Image)。然后镜像实例化成为容器(Container),构成项目的运行环境。最后Vscode连接容器,方便我们在本地进行开发。下面以一个简单的例子介绍在win10中实现:Docker安装、构建镜像、创建容器、Vscode连接使用。

Docker安装

  首先进入官网安装Docker软件。安装好打开可能会出现错误:

  1、让更新WSL:直接在cmd中输入命令 WSL --update更新即可。

  2、An unexpected error was encountered while executing a WSL command... 看:

  https://zhuanlan.zhihu.com/p/633252579

  修复以上错误之后一般就能进入Docker界面了。

创建镜像

  镜像的创建通常在Dockerfile文件中写成代码的形式,以下举例一个简单的镜像创建代码:

# 使用官方 Ubuntu 镜像进行初始化
FROM ubuntu:22.04# 设置容器目前的工作目录
WORKDIR /app# Let the python output directly show in the terminal without buffering it first.
ENV PYTHONUNBUFFERED=1# 更新包以及安装必要的依赖
RUN apt-get update && apt-get install -y \wget \git \bzip2 \libglib2.0-0 \libxext6 \libsm6 \libxrender1 \make\g++ 
RUN rm -rf /var/lib/apt/lists/*# 安装最新版本miniconda
RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh \&& bash Miniconda3-latest-Linux-x86_64.sh -b -p /opt/conda \&& rm Miniconda3-latest-Linux-x86_64.sh 
ENV PATH /opt/conda/bin:$PATH# 使用conda创建一个新的python环境HelloDocker
RUN conda create -n HelloDocker python=3.9.7
# 初始化bash shell从而 'conda activate' 可以马上使用
RUN conda init bash# 激活conda环境
RUN echo "conda activate HelloDocker" >> ~/.bashrc
ENV PATH /opt/conda/envs/HelloDocker/bin:$PATH# 复制本地当前目录的 requirement.txt 文件到容器的app文件夹中
COPY requirements.txt /app# 设置pip的镜像源为清华源
RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 根据 requirement.txt 为 python 安装各种包
RUN /bin/bash -c "source ~/.bashrc && pip install --no-cache-dir -r requirements.txt"

  然后在Dockerfile目录下使用如下命令即可创建镜像:

docker build -t hello-docker .

  以上代码创建了一个Ubuntu系统镜像。除了系统镜像之外,还可以只创建python环境镜像,具体可以查询ChatGPT。以上代码需要去外国镜像网站下载Ubuntu的镜像文件,可能很慢,因此可以在Docker软件设置中修改镜像源,在json中添加:

  "registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com","http://hub-mirror.c.163.com"]

  即修改为清华源。

创建容器及Vscode连接

  镜像创建好之后,Vscode先安装Docker插件,然后在需要使用容器运行的项目工作目录下,创建目录.devcontainer,并在该目录下创建devcontainer.json文件,填写容器创建配置:

{"name": "HelloDocker Container","image": "hello-docker", // 替换为你构建的Docker镜像名称"extensions": ["ms-python.python"],"settings": {"python.pythonPath": "/opt/conda/envs/HelloDocker/bin/python"}
}

  以上配置表示,使用我们前面已经创建的名为hello-docker的镜像创建名为HelloDocker Container的容器。之后点击VsCode右下角的绿色图标"><",点击“在容器中重新打开”。等待容器创建好之后,即可使用Vscode在相应的容器环境中进行开发了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/67421.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解Python装饰器:解析高阶函数与代码美学

文章目录 &#x1f340;引言&#x1f340;什么是装饰器&#xff1f;&#x1f340;装饰器的基本用法&#x1f340;带参数的装饰器&#x1f340;类装饰器&#x1f340;总结 &#x1f340;引言 当谈到Python编程中的高级特性时&#xff0c;装饰器&#xff08;decorators&#xff0…

纯js点击按钮切换首页部分页面

像我这种大数据的&#xff0c;不会前端的&#xff0c;懒得学框架&#xff0c;现在有gpt了&#xff0c;前端对于我来说&#xff0c;用原生的更加友好&#xff0c;毕竟算法gpt都能优化。 首页我有个页面&#xff0c;然后我现在想点击gm替换上面的统计&#xff0c;点击用户替换回…

【C++】多态的概念和简单介绍、虚函数、虚函数重写、多态构成的条件、重载、重写、重定义

文章目录 多态1.多态的概念和介绍2.虚函数2.1final2.2override 3.虚函数的重写3.1协变3.2析构函数的重写 4.多态构成的条件5.重载、重写、重定义...... 多态 1.多态的概念和介绍 C中的多态是一种面向对象编程的特性&#xff0c;它允许不同的对象对同一个消息做出不同的响应。 …

多线程与高并发--------线程池

线程池 一、什么是线程池 在开发中&#xff0c;为了提升效率的操作&#xff0c;我们需要将一些业务采用多线程的方式去执行。 比如有一个比较大的任务&#xff0c;可以将任务分成几块&#xff0c;分别交给几个线程去执行&#xff0c;最终做一个汇总就可以了。 比如做业务操…

使用wxPython和PyMuPDF提取PDF页面指定页数的内容的应用程序

在本篇博客中&#xff0c;我们将探讨如何使用wxPython和PyMuPDF库创建一个简单的Bokeh应用程序&#xff0c;用于选择PDF文件并提取指定页面的内容&#xff0c;并将提取的内容显示在文本框中。 C:\pythoncode\new\pdfgetcontent.py 准备工作 首先&#xff0c;确保你已经安装了…

微信小程序(由浅到深)

文章目录 一. 项目基本配置1. 项目组成2. 常见的配置文件解析3. app.json全局的五大配置4.单个页面中的page配置5. App函数6.tabBar配置 二. 基本语法&#xff0c;事件&#xff0c;单位1. 语法2. 事件3. 单位 三. 数据响应式修改四 . 内置组件1. button2. image3. input4. 组件…

同比增长近4倍!5G智能座舱爆发

5G智能座舱&#xff0c;正在进入爆发期。 高工智能汽车研究院监测数据显示&#xff0c;2023年1-6月中国市场&#xff08;不含进出口&#xff09;乘用车前装标配5G智能座舱交付63.18万辆&#xff08;含选装&#xff09;&#xff0c;同比增长370.09%。 同时&#xff0c;5G与车载智…

在Visual Studio上,使用OpenCV实现人脸识别

1. 环境与说明 本文介绍了如何在Visual Studio上&#xff0c;使用OpenCV来实现人脸识别的功能 环境说明 : 操作系统 : windows 10 64位Visual Studio版本 : Visual Studio Community 2022 (社区版)OpenCV版本 : OpenCV-4.8.0 (2023年7月最新版) 实现效果如图所示&#xff0…

【设计模式——学习笔记】23种设计模式——状态模式State(原理讲解+应用场景介绍+案例介绍+Java代码实现)

文章目录 案例引入介绍基本介绍登场角色应用场景 案例实现案例一类图实现 案例二&#xff1a;借贷平台源码剖析传统方式实现分析状态修改流程类图实现 案例三&#xff1a;金库警报系统系统的运行逻辑伪代码传统实现方式使用状态模式 类图实现分析问题问题一问题二 总结文章说明…

小米发布会:雷军成长故事与创新壮举,AI大模型技术引领未来,雷军探索之路之从创业波折到小米AI领航,成就高端化传奇!

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

【EI/SCOPUS检索】第三届计算机视觉、应用与算法国际学术会议(CVAA 2023)

第三届计算机视觉、应用与算法国际学术会议&#xff08;CVAA 2023) The 3rd International Conference on Computer Vision, Application and Algorithm 2023年第三届计算机视觉、应用与算法国际学术会议&#xff08;CVAA 2023&#xff09;主要围绕计算机视觉、计算机应用、计…

Java并发编程(六)线程池[Executor体系]

概述 在处理大量任务时,重复利用线程可以提高程序执行效率,因此线程池应运而生。 它是一种重用线程的机制,可以有效降低内存资源消耗提高响应速度。当任务到达时&#xff0c;任务可以不需要的等到线程创建就能立即执行线程池可以帮助我们更好地管理线程的生命周期和资源使用,…