Bootstrap

windows平台下docker desktop用DockerFile构建基础深度学习镜像 原创

1. 下载Docker Desktop

Docker Desktop 下载地址

2. 修改存储位置并注册账号登录

请添加图片描述

3. 桌面新建文件夹,加入以下内容

# 使用 ubuntu:20.04 作为基础镜像
FROM ubuntu:20.04

# 设置环境变量以避免交互式安装问题
ENV DEBIAN_FRONTEND=noninteractive

# 替换为清华源
RUN echo "deb https://mirrors.tuna.tsinghua.edu.cn/ub\
untu/ focal main restricted universe multiverse\n" \
         "deb https://mirrors.tuna.tsinghua.edu.cn/ub\
untu/ focal-updates main restricted universe multiverse\n" \
         "deb https://mirrors.tuna.tsinghua.edu.cn/ub\
untu/ focal-backports main restricted universe multiverse\n" \
         "deb http://security.ubuntu.com/ub\
untu/ focal-security main restricted universe multiverse\n" \
    > /etc/apt/sources.list

# 临时禁用 HTTPS 验证来安装 ca-certificates
RUN apt-get update -o Acquire::https::Verify-Peer=false && \
    apt-get install -y ca-certificates && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# 更新包列表并安装必要的依赖,包括 SSH、编译工具和常用工具
RUN apt-get update && \
    apt-get install -y wget bzip2 curl git openssh-server \
    vim iputils-ping net-tools iproute2\
    gzip unzip tar zip \
    build-essential cmake make \
    software-properties-common \
    htop screen tmux \
    nano less tree \
    locales sudo \
    lsof strace \
    dnsutils traceroute \
    rsync netcat socat \
    jq dos2unix \
    man-db \
    && apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# 设置 UTF-8 locale
RUN locale-gen en_US.UTF-8
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV LC_ALL=en_US.UTF-8

# 安装 Miniconda 并将其添加到 PATH
RUN wget https://repo.anaconda.com/miniconda/Mini\
conda3-latest-Linux-x86_64.sh -O /tmp/miniconda.sh && \
    bash /tmp/miniconda.sh -b -p /opt/miniconda && \
    rm /tmp/miniconda.sh && \
    export PATH="/opt/miniconda/bin:$PATH" && \
    conda --version

# 更新 conda 并清理
ENV PATH="/opt/miniconda/bin:$PATH"
RUN conda update -n base -c defaults conda && \
    conda clean -ya

# 设置 SSH 服务器
RUN mkdir /var/run/sshd && \
    echo 'root:root' | chpasswd && \
    sed -i 's/#PermitRootLogin prohibit-password/PermitR\
ootLogin yes/' /etc/ssh/sshd_config && \
    mkdir -p /root/.ssh && \
    chmod 700 /root/.ssh   

# 开放22端口
EXPOSE 22

# 如果需要代理访问校园网,可以设置代理环境变量(示例中使用 HTTP 代理)
# 取消注释以下行,并将<proxy-url>替换为实际的代理地址
# ENV http_proxy=http://<proxy-url>:<port>
# ENV https_proxy=http://<proxy-url>:<port>

# 设置默认的工作目录
WORKDIR /workspace

# 启动 SSH 服务并保持容器运行
CMD ["/usr/sbin/sshd", "-D"]

在这里插入图片描述

4. 文件重命名为DockerFile

请添加图片描述

5. 打开Docker Desktop切换到桌面目录 并执行下面命令行

cd D:\desktop  #最后面有个小 --> . <---
docker build -f DockerFile --network=host -t \
 lanzetian2323/ubuntu20.04andminiconda:base .

在这里插入图片描述

6. 查看docker镜像

docker images

在这里插入图片描述

7. 打包docker镜像到本地

docker save -o ubuntu20.04andminiconda.tar \
 ubuntu20.04andminiconda:base #默认当前路径

在这里插入图片描述

8. FTP上传tar包

8.1方法一:windows自带FTP上传

  • 打开网站
    在这里插入图片描述
  • 点击 FTP 上传 记录 FTP 数据
    在这里插入图片描述
  • windows自带ftp 打开任意文件夹 在文件夹路径输入如下格式命令,回车:
    ftp://[FTP 账号]:[FTP 密码]@[FTP 地址]:[FTP 端口]
    eg: ftp://GND8784Q: [email protected]: 6500/
    在这里插入图片描述
  • 将.tar 文件拖拽到此目录中,可以在上传界面看到数据正在传输
    在这里插入图片描述
    在这里插入图片描述

8.2 方法二:使用FileZilla上传

8.3 刷新页码 文件已上传

在这里插入图片描述

9. 导入镜像

在这里插入图片描述

在这里插入图片描述

10. 创建作业 验证ssh+miniconda

  • 任务终端设置密码 重启ssh
passwd #设置密码
/etc/init.d/ssh restart #重启ssh
  • 打开cmd ssh连接 查看版本信息
ssh -p [映射端口号] root@[ip地址]
cat /etc/os-release                         #查看ubuntu版本
export PATH=/opt/miniconda/bin:$PATH        #添加conda bin到环境变量
conda --version                             #查看conda版本

在这里插入图片描述

11. push上docker hub

docker login #登录docker hub
docker images #查看本地镜像
#标记镜像保证格式[仓库名]/[镜像名]:[tag] 仓库名就是用户名 相当于重命名
docker tag lanzetian2323/ubuntu20.04andminiconda:base \ 
lanzetian2323/ubuntu20.04andminiconda:test 
#push镜像到dockerhub
docker push lanzetian2323/ubuntu20.04andminiconda:test 

在这里插入图片描述
在这里插入图片描述

12. 从docker hub上pull镜像到本地 并打包

docker login #登录docker hub
docker rmi lanzetian2323/ubuntu20.04andminiconda:test
docker pull lanzetian2323/ubuntu20.04andminiconda:test
docker images

请添加图片描述

Editor:lan
Time:2024/10/12
QQ:1670074219
链接和源具有时效性 失效请联系

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;