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在相应的容器环境中进行开发了。

相关推荐
阿凡达蘑菇灯8 分钟前
pycharm 中 终端环境与解释器环境不一致 解决办法
ide·python·pycharm
k***921636 分钟前
【Linux】进程概念(五):详解环境变量的本质
linux·运维·服务器
专业开发者41 分钟前
艾通科技(ITON Technology)借助蓝牙 ® 网状网络,构建适用于自动化控制应用的大规模设备网络
运维·物联网·自动化
KakiNakajima1 小时前
CentOS 7 x86系统安装EMQX 【kaki备忘录】
linux·运维·centos
weixin_462446231 小时前
【原创实践】Docker 镜像批量导出镜像与导入镜像
运维·docker·容器
qq7590353661 小时前
Docker快速部署一款堡垒机系统
运维·docker·容器
敢敢のwings2 小时前
云服务器上部署Dify完整教程
运维·服务器
zz-zjx2 小时前
Kubernetes 的部署方式 (二)通过 kubeasz部署单机版1.34.1
云原生·容器·kubernetes
yiSty2 小时前
linux命令行下使用百度云网盘【自用】
linux·运维·百度云
是小崔啊3 小时前
叩丁狼k8s - 组件篇
云原生·容器·kubernetes