1. 什么是Docker

一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。容器有点像轻量级的虚拟机,能够提供虚拟化的环境,但是成本开销小得多。

2.安装步骤

2.1 安装wsl2

Docker是基于linux的,在win10中首先需要安装wsl2。wsl全称Windows Subsystem for Linux,让win10能够原生运行Linux二进制可执行文件的兼容层,且不会产生传统虚拟机或双启动设置开销。

wsl2安装步骤参照微软官方教程https://docs.microsoft.com/zh-cn/windows/wsl/install-win10#step-4---download-the-linux-kernel-update-package步骤一到五

2.2 安装Docker Desktop WSL 2 backend

参照Docker官方说明https://docs.docker.com/docker-for-windows/wsl/

Docker原始镜像源在国外,可在Docker设置中的registry-mirrors项添加国内镜像源加速。

Docker安装完成后进入powershell输入

docker run hello-world

如果出现如下信息表示Docker安装成功。

docker成功安装后提示信息

2.3 修改Docker安装位置

Docker默认安装在c盘且安装过程中不可修改安装位置,如果c盘剩余空间太小很不方便,基于hyper-v的Docker Desktop可安装好后在设置中直接修改位置,Docker Desktop WSL 2 backend可按照如下过程转移至其他位置:

1)删除所有容器:

可进入powershell执行以下命令

docker rm $(docker ps -a -q)

或在Docker Desktop中手动删

2)关闭所有发行版

wsl --shutdown

3)备份已有image数据

wsl --export docker-desktop-data E:docker-desktopdocker-desktop-data.tar

最后的E:docker-desktopdocker-desktop-data.tar是备份路径,可视情况自行修改

4)注销当前的docker-desktop-data发行版

wsl --unregister docker-desktop-data

5)重新导入备份的docker-desktop-data

wsl --import docker-desktop-data E:docker-desktopdata E:docker-desktopdocker-desktop-data.tar --version 2

E:docker-desktopdata为指定的Docker新存储路径

E:docker-desktopdocker-desktop-data.tar为第3)步备份的地址

6)重新运行Docker Desktop

2.4安装相应的镜像

安装所需的镜像。这里使用的是deepo(https://github.com/ufoym/deepo),集成了常见的深度学习库和相应的环境

docker pull ufoym/deepo:cpu

2.5 vscode在容器环境中开发

vscode是当前最流行的IDE之一,用过的都说好。在vscode中与容器连接非常简单,步骤如下:

  1. 首先在vscode中安装docker插件。
  2. 在powershell中启动容器:docker run -it -p 8022:22 --name docker-python -v D:/docker-python:/docker-python ufoym/deepo:cpu-it 该参数通常的解释是,-t让docker分配一个伪终端并绑定到容器的标准输入上, -i则让容器的标准输入保持打开。Docker中系统镜像的缺省命令是 bash,如果不加 -it bash 命令执行了自动会退出。这是因为如果没有衔接输入流,本身就会马上结束。加-it 后docker命令会为容器分配一个伪终端,并接管其stdin/stdout支持交互操作,这时候bash命令不会自动退出。-p 表示对端口号进行映射,即将 docker 容器的 22 号端口映射到宿主机的 8022 端口,这样设置的目的是方便后续使用 VSCode 连接容器,可以根据需要进行设置--name docker-python 是将容器命名为docker-python,如果不指定名称则会随机名称-v D:/docker-python:/docker-python 将宿主机的D:/docker-python目录映射到容器的/docker-python目录,方便主机和宿主机间共享数据ufoym/deepo:cpu 镜像名称
  3. 在vscode中连接container。如下图所示,在启动的container处右键,点击Attach Visual Studio Code,在新弹出的vscode界面中即可在启动的容器环境中开发了

vscode中连接container

以后再次使用时,只需先启动container:

docker container start docker-python

之后直接执行上述第三步即可

docker修改镜像的存储位置_win10家庭版Docker环境搭建步骤相关推荐

  1. docker修改镜像的存储位置_Docker存储原理

    背景 正在看一篇论文,名为<Efficient Service Handoff Across Edge Servers via Docker Container Migration>,里面 ...

  2. docker修改镜像的存储位置_云原生存储详解:容器存储与 K8s 存储卷(内含赠书福利)...

    作者 | 阚俊宝  阿里巴巴技术专家 参与文末留言互动,即有机会获得赠书福利! 导读:云原生存储详解系列文章将从云原生存储服务的概念.特点.需求.原理.使用及案例等方面,和大家一起探讨云原生存储技术新 ...

  3. 修改 Docker 镜像默认存储位置的方法

    点击上方 "编程技术圈"关注, 星标或置顶一起成长 后台回复"大礼包"有惊喜礼包! 每日英文 Just be yourself and never change ...

  4. docker修改镜像存储路径

    docker修改镜像存储路径 查看docker镜像的默认存储路径 docker info 指定镜像和容器存放路径的参数是--graph=/var/lib/docker,其默认存储位置为/var/lib ...

  5. 怎么修改存储路径_修改桌面文件默认存储位置的正确方式及注意事项

    之前写了篇关于如何修改桌面文件默认存储位置,许多人在修改后出现各种问题,今天重新来讲解一下关于修改桌面文件默认存储位置的正确方式及注意事项. 第一步.在E盘下创建一个文件夹,随便取个名字,或者默认为[ ...

  6. 如何修改linux的java路径_修改桌面文件默认存储位置的正确方式及注意事项

    之前写了篇关于如何修改桌面文件默认存储位置,许多人在修改后出现各种问题,今天重新来讲解一下关于修改桌面文件默认存储位置的正确方式及注意事项. 第一步.在E盘下创建一个文件夹,随便取个名字,或者默认为[ ...

  7. 5. Docker容器互联1--Docker存储原理和基于Docker Volum的容器互联

    目录 Docker 容器互联 1  基于Docker Volum的容器互联 1.1 Docker的文件存储 1.2Docker Volume 1.3 数据容器共享解决方案(volumes-form) ...

  8. docker load镜像报错:open /var/lib/docker/tmp/docker-import-525555606/repositories: no such file or direc

    docker load镜像报错:open /var/lib/docker/tmp/docker-import-525555606/repositories: no such file or direc ...

  9. 如何更改Docker默认的images存储位置

    Docker的镜像以及一些数据都是在/var/lib/docker目录下,它占用的是Linux的系统分区,也就是下面的/dev/vda1,当有多个镜像时,/dev/vda1的空间可能不足,我们可以把d ...

最新文章

  1. 使用python实现多维数据降维操作
  2. linux命令之tee,技术|为初学者介绍的 Linux tee 命令(6 个例子)
  3. 信息系统项目管理师-论文专题(一)论文写作框架+10大管理关系
  4. java main函数_都知道Java程序的入口方法是main,那你知道为什么是main方法吗?
  5. shell模拟php多进程从redis获取数据
  6. 造轮子-AgileConfig一个基于.NetCore开发的轻量级配置中心
  7. Linux 技巧: 从命令行创建像素标尺
  8. Refused to load the image
  9. gimp中文版教程_GIMP中文详细教程.pdf
  10. 微信公众号应用开发(一)
  11. 羽毛球·印尼赛 | 国羽男双新高塔组合惊喜进决赛
  12. Android system_server无法访问sdcard目录问题记录(Android 4.4 mtk平台)
  13. Java课程寒假之开发记账本软件(网页版)之三
  14. BERT模型的结构,特点和实践
  15. JDBC userenv('LANG')
  16. 递归计算过程与迭代计算过程
  17. 夜神模拟器链接不上ADB问题
  18. 实验八:无线城域网ViMax仿真实验
  19. java cookie路径_路径问题以及cookie详解
  20. 可以放GOOGLE广告的博客总汇

热门文章

  1. oracle 主键自增函数_Oracle数据库中创建自增主键的实例教程
  2. sql注释符注入防御_读《SQL注入***与防御》笔记
  3. string转换函数以及hnu暑期实训部分和A+B的例题
  4. LeetCode 57. 插入区间(python、c++)
  5. AcWing1081.度的数量(数位DP)题解
  6. PyTorch中常用Module和Layer的学习笔记~
  7. 【超简单已实现】CSDN实现点击跳转到指定段落
  8. 四则运算表达式二叉树法求后缀表达式
  9. merge合并两个有序数组
  10. ACM基础——OJ上的Java代码提交规范