Docker的搭建与使用说明

前言

主要记录在linux服务器环境中安装docker,和docker的相关使用说明

一、简介

  • Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows 机器上,也可以实现虚拟化。
  • 容器是完全使用沙箱机制,相互之间不会有任何接口。
  • docker是一个大的虚拟机环境,其中包含很多的虚拟机镜像(images),而这些镜像会包含已经配置好的环境;容器则是基于这些镜像,实例化得到的虚拟机,在某一个容器内可以随意修改环境配置,而不会存在环境之间的相互干扰。
  • Docker的好处之一,就是在Container里面可以随意折腾,不用担心弄崩Host的环境。
    在这里插入图片描述

二、安装docker

服务器上已经安装好了docker,不需要进行安装操作了,具体安装步骤可以参考:
https://blog.csdn.net/qq_41204464/article/details/97539265

三、docker镜像

Docker官方文档:https://docs.docker.com/
Docker镜像仓库:https://hub.docker.com/search?type=image
Docker镜像仓库国内版:http://hub.daocloud.io/‘

  • docker基本操作
    可参考: https://blog.csdn.net/runingman0000/article/details/107289037
docker ps -a    # 查看docker
docker images -a   #  查看docker镜像
docker rm [docker id]  #  删除docker
docker rmi [docker image id]   #  删除docker image

四、新建docker镜像

1.通过Dockerfile的方式来构建

具体可参考
https://blog.csdn.net/shiqiangdexin/article/details/52472195

2.基于DockerHub上的开源镜像进行修改,构建适用于自己的镜像。

以pytorch为例,使用docker search pytorch在DockerHub(https://hub.docker.com/)上搜索公开的镜像。
找一个torch1.7的docker(自己需要哪个就找哪个),pull下来
比如从torch官方的docker tags里面找到我们想要的torch1.7 develop版本。找到后,在本地(服务器上)运行:

docker pull pytorch/pytorch:1.7.1-cuda11.0-cudnn8-devel

上述操作是将这个docker先拉到本地服务器。

五、新建docker容器

初次使用docker时,要新建属于自己的容器,之后所有的训练任务可在该容器内完成,新建容器的常用指令为:

1.进入docker

docker run --runtime=nvidia -it -v DIR_LOCAL:DIR_CON -p  PORT_LOCAL:PORT_CON --name=test --ipc=host --net=host  pytorch/pytorch:1.7.1-cuda11.0-cudnn8-devel

其中,-it表示使用交互式界面新建容器,即工作在/bash/bin;
-v表示将本地路径映射至容器中的相应路径;
DIR_LOCAL表示本地路径;
DIR_CON表示容器内的路径;
-p表示将本地端口与容器端口建立映射,深度学习中,在使用tensorboard时会用到;
–name表示为自己的容器取名字,方便下次使用该容器时使用NAME来调回,而不需要使用ID

2.示例

docker run -it --gpus all --shm-size 128G -p 1003:1003 -v /data1:/data1 -v /home/moxue:/home/moxue -d --name moxue_v1 -- b07463d2d541  bash

–gpus all:表示使用服务器的所有卡; --shm-size:共享内存大小

3.进入自己创建的容器

docker exec -it moxue_v1 /bin/bash

进入docker后就可以配置自己的环境了,此时可以跳转到
https://blog.csdn.net/weixin_41891632/article/details/134164079?spm=1001.2014.3001.5502用conda创建自己的python虚拟环境。

4. 可以退出docker

exit

六、docker commit :从容器创建一个新的镜像。

这里是直接创建到本地,如果要commit到docker hub的话需要进行翻墙连到docker hub才行

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
其中OPTIONS可选:
	-a :提交的镜像作者
	-c :使用Dockerfile指令来创建镜像
	-m :提交时的说明文字
	-p :在commit时,将容器暂停。

查看并找到配置好的docker的id

docker ps -a 

找到自己要commit的docker id,我这里用的是名为moxue_v1的容器,id是31405b5f1856,然后

docker commit -a "moxue" -m "this is pytorch1.7_python3.7"  31405b5f1cf2 moxue_v1:pytorch1.7

输入上面指令就会在本地创建一个Tag为pytorch1.7,repository为moxue_v1的image镜像
使用docker images可以查看:

docker images

继续第五步骤,开始创容器等操作。

七、将已有的docker打包成tar以及load打包好的docker镜像。

docker ps -a    查看要打包的容器镜像id和name
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]],将docker镜像commit成新的镜像
docker commit 31405b5f1cf2 moxue_test:cuda11.7_torch1.12
docker images -a   查看新生成的镜像名字和tag   moxue_test:cuda11.7_torch1.12
docker save -o tar包名称.tar 待打包镜像名称:待打包镜像版本(在某路径执行,tar包就会保存在那个路径)
docker save -o moxue_test.tar moxue_test:cuda11.7_torch1.12
scp -r moxue_test.tar target_dir  将生成的tar包用scp等传输命令传输到新的机器中
这时会在新的机器中生成 moxue_test:cuda11.7_torch1.12 镜像,用load命令直接load
docker load [OPTIONS] tar包名称.tar
        docker load < imageName.tar 用于从标准输入载入镜像。
        docker load -i imageName.tar 用于从文件载入镜像。
docker load -i  moxue_test.tar
此时会生成新的镜像,进入上述第五步骤,开始新建容器即可

八、vscode里连接服务器中自己的docker

1.打开vscode远程资源管理器,连接进入服务器

安装SSH扩展插件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
左下角出现服务器的IP,说明已经连上了服务器。
在这里插入图片描述

具体docker相关可参考:
https://zhuanlan.zhihu.com/p/83663496
https://blog.csdn.net/QMW19910301/article/details/88070159
https://www.cnblogs.com/kevingrace/p/9599988.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值