windows 使用docker构建镜像

1. 使用Dockerfile

1. 下载docker desktop

下载docker for windows,这里有个小坑,需要确定是否打开了虚拟化。如果没有,必须重启在BIOS界面打开虚拟化,重启之后就可以启动docker for windows了。

2. 更改工作目录

一定要注意:先改下docker desktop的setting。不然生成镜像直接爆炸,全都放到C盘。

在这里插入图片描述

3. 使用Dockerfile 构建镜像

打开cmd,到Dockerfile的路径(请把dockerfile单独放到一个目录)。
使用

docker build -t image_name .

这个 “.” 就是当前目录,然后就是漫长的等待。
在这里插入图片描述

2. 如何写dockerfile?

创建一个基于某镜像的容器:

docker run -it nvidia/cuda:9.2-cudnn7-devel-ubuntu16.04 /bin/bash

然后调试,调试,调试好了commit,注意user/xxx与你的dockerhub新建的仓库名一致。

 docker commit  a404c6c174a2  user/xxx:v1 

然后登陆docker

 docker login

push 到自己仓库

docker push user/xxx:v1 

之后dockerfile就可以简单的写上一句,就把整个调试好的环境下载下来了。

FROM user/xxx:v1 

4.上传到阿里云

https://cr.console.aliyun.com/cn-hangzhou/instance/repositories

5. 附录、docker常用命令

创建一个基于某镜像的容器:

docker run -it nvidia/cuda:9.2-cudnn7-devel-ubuntu16.04 /bin/bash

如果要挂载目录的话:(通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径。)

docker run -it -v path1:path2 nvidia/cuda:9.2-cudnn7-devel-ubuntu16.04 /bin/bash

查看正在运行的容器:

docker container ls 

查看所有的的容器(不管有没有运行):

docker ps -a

进入容器(容器不停止)

docker exec -it [containerID] /bin/bash

删除容器:(先终止,才能删除)

docker container rm [containerID]

终止 容器:

docker stop [containerID]

查看容器大小

docker system df

查看每个容器大小

docker system df -v

6. 使用调用nVidia gpu的docker

nvidia-docker 代替 docker 命令

基于某个image 开一个容器
(通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径。)

nvidia-docker run -it --shm-size="16g" -v /home/limx/Workspace:/home/limx/Workspace limx/torch1.5_cuda10.1_uss /bin/bash

进入容器(容器不停止)

nvidia-docker exec -it [containerID] /bin/bash

7. 使用pycharm对容器进行debug

加入-p参数

nvidia-docker run -it --shm-size="16g" -v /disk4/limx:/disk4/limx -p 22:8080 limx/torch1.5_cuda10.1_uss /bin/bash

docker 调试时候加环境变量

vim ~/.bashrc
source ~/.bashrc

常见错误

Failed to initialize NVML: Unknown Error

突然发现nvcc和nvidia-smi显示的版本不一致,看到了下面的博文,实际上我们参考的cuda版本还是根据runtime。
参考https://www.jianshu.com/p/eb5335708f2a

实际上最后加了一个--privileged 就好了。

sudo docker run -it --shm-size="16g"  -v /data/limingxing.lmx/:/home/limx --privileged  reg.docker.xxx /bin/bash

dockerfile 书写错误

错误
/bin/sh: 1: RUN: not found

原因
RUN 语句之间不是 && 连接。
所以可以只写一个RUN,

参考网址

https://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html
https://www.runoob.com/docker/docker-tutorial.html

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 Windows构建 Docker 镜像,你需要完成以下步骤: 1. 首先,确保你已经在 Windows 上安装了 Docker Desktop。在 Docker 官方网站上下载并安装适用于 WindowsDocker Desktop 版本。 2. 打开 Docker Desktop,并确保它已经成功启动。 3. 在你的项目目录下创建一个 Dockerfile 文件。Dockerfile 是用来定义镜像构建过程的文本文件。你可以使用任何文本编辑器创建它。 4. 在 Dockerfile 中编写构建镜像的指令。例如,你可以使用以下指令来基于一个基础镜像构建你的镜像: ``` FROM base_image COPY app /app RUN command ``` 其中,`base_image` 是你要基于的基础镜像,`COPY` 命令用于将本地文件复制到镜像中,`RUN` 命令用于在镜像中执行命令。 5. 保存并关闭 Dockerfile。 6. 打开命令提示符或 PowerShell,并导航到 Dockerfile 所在的目录。 7. 运行以下命令来构建镜像: ``` docker build -t image_name . ``` 其中,`image_name` 是你为镜像指定的名称,`.` 表示使用当前目录作为上下文构建镜像。 8. Docker 将按照 Dockerfile 中定义的指令逐步构建镜像构建过程可能需要一些时间,具体取决于你的项目和网络速度。 9. 构建完成后,你可以运行以下命令来查看已构建镜像: ``` docker images ``` 你将看到一个列表,其中包含了刚刚构建镜像以及其相关信息。 这样,你就成功地在 Windows构建了一个 Docker 镜像。你可以使用镜像来创建和运行容器

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值