linux系统docker使用操作记录


安装docker

服务器配置:ubuntu18.04
安装代码

sudo curl -sS https://get.docker.com/ | sh

如果服务器有GPU,继续执行以下代码(这一步不是必须的!)

# Add the package repositories 
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) 
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - 
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list 

sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit 
sudo systemctl restart docker

开通阿里云镜像服务

这一步请参考阿里云镜像服务官网
需要注意的是:
创建镜像仓库一定要和比赛官方要求的一致!!!!

#登陆操作
sudo docker login --username=你的阿里云用户名 registry.cn-区域名称.aliyuncs.com
# 直接copy阿里云镜像服务的登陆就好了。。。

构建镜像:pull , build, push

1、pull 拉取一个基础镜像

阿里云提供很多基础镜像,要根据比赛要求拉取,比如这个docker-GPU练习比赛,就需要pull的是pytorch和cuda的镜像

  • 注意 :
  • 1、cuda版本不要太高,否则阿里云服务器的nvidia显卡不支持!!!)
    具体代码操作:
  • 2、pull 拉取的镜像一定要和 Dockerfile 文件夹里面的 base image 一致!!! (详情后面会讲)
  • 3、pull 过程过慢,可以添加镜像加速器,具体操作可以参考阿里云的镜像服务左边菜单栏。
sudo docker pull registry.cn-shanghai.aliyuncs.com/tcc-public/pytorch:1.1.0-cuda10.0-py3 

2、build 自己需要提交的文件

一般是需要提交四个文件的:
在这里插入图片描述

  • 1、Dockerfile一定一定要写对,最大的坑就在这!!!以这次docker-GPU入门赛为例。
    在这里插入图片描述
  • 2、main.py就是你要提交的文件
  • 3、requirements.txt是main.py需要用的一些环境,本来Dockerfile里面可以用 pip 安装 requirements就好了,但是总是报错,可能是地址没写好,所以就把要安装的包都写在了Dockerfile里面了。。。。
    (所以,比较笨的方法就是先生成requirements.txt文件,然后手动按上面图片信息写入到Dockerfile里面。)
    生成requirements.txt操作:
    在电脑本地上(不是服务器),进入main.py所在文件夹,在左上角点击“文件”,然后以管理员身份运行 windows powershell。输入:
pip install pipreqs  # 如果报错没找到pip,需要在将anaconda3的Script的地址,即pip所在地址添加到环境变量中。
# 然后输入
pipreqs . --encoding=utf8 --force
# 有些电脑是这样的 .\pipreqs . --encoding=utf8 --force 看电脑有没有报错,没报错,忽略这行注释
  • 4、run.sh是脚本文件,这次需要输出一下nvidia显卡的信息,以及运行main.py文件操作。
    在这里插入图片描述
    保证上面四个步骤没错误之后,进行 build :
sudo docker build  公网地址:版本号 .  # 注意版本号后面要空一格,然后有个英文字符的点
  • 注意
  • 版本号是自己任意取的,0.1,1.0,…都可以,尽量每次build的时候不要重复用一个镜像版本号,push的时候会分不清!!!

3、 push 本地build好的文件

build操作得到的镜像需要push到自己的阿里云镜像中,这些build好的文件是存在本地的服务器上的。

sudo docker push 公网地址:版本号   # 这里的公网地址和版本号和 build保持一致,而且没有点。
  • 完成push之后,会发现在自己的镜像版本处有一个刚push上去的镜像,说明成功了。

4、提交结果

在阿里云docker提交push的镜像公网地址和版本号就好了。

5、一些docker简单常用指令

  • 1、删除镜像
    因为镜像是在自己的服务器上,特别大,没用的时候可以删掉。
  • 注意,需要先删除容器才能删镜像
# 查看当前容器
sudo docker ps -a 
# 查看当前镜像
sudo docker images
# 注意看镜像ID与容器ID有对应关系的,看你想删除哪个镜像,就先删哪个容器
sudo docker rm 容器ID  # 删除容器
sudo docker rmi 镜像ID  # 删除镜像
# 注意,没有报错,返回的是一串你要删除的ID,就说明删除成功了
  • 2、查看docker信息
sudo docker ps

总结自己的bug

  • 1、尝试win10家庭版去装docker destop失败,搞了很久hyper-v不行,最终放弃,原来win10 home 不能用docker的!!!
  • 2、最终白嫖腾讯云的服务器实现了,但是有个问题,腾讯云在push的时候特别慢!!!!(当然,当发现push特别慢的时候,耐心等一等,要是 time out 了,就重新 push , 它会接着上次中断的运行的!!!)
  • 3、Dockerfile处疯狂出错,首先是RUN pip install 那里,不能安装requirements.txt,只好把依赖库手动加入到Dockerfile;其次是FROM,必须和pull的一致!!!!
  • 4、还需要学习。。。。。。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值