docker image 上传阿里云

docker image 上传阿里云


前言

一直以来对docker使用不熟练,最近因为需要考虑部署方便,考虑使用容器这个大杀器,下面记录一下docker 安装 和常用的一些方法


一、安装

以前很复杂,现在都比较简单.
使用官方安装脚本自动安装
安装命令如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun

也可以使用国内 daocloud 一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

安装完成之后,启动起来

systemctl start docker
systemctl enable docker

添加一个用户组,以免每次输sudo

sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

然后就可以愉快玩耍了

二、常规使用

一般是直接拉取别人创建好的image
常用的一般是
国外: https://registry.hub.docker.com

国内一般是阿里 网易 DaoCloud

pull 操作

在docker hub 搜索关键字tensorrt7 随便找一个合适的

docker pull pierrezhiwei/tensorrt7.2.1_cuda11.1_opencv3.4.6

然后就是等待(ps:现在dockerhub的速度已经非常快了)
下载完成后,查看

docker images

在这里插入图片描述

run操作

有了image,需要运行起来

docker run -itd -v $PWD:/work --name tensorrt pierrezhiwei/tensorrt7.2.1_cuda11.1_opencv3.4.6

参数讲解:
-v:指定挂载目录 可以多挂载几个目录
PWD:取当前绝对目录
:/work:挂载到当前生成容器中的work目录
-name:为当前生成容器取一个名字
pierrezhiwei/tensorrt7.2.1_cuda11.1_opencv3.4.6 image的名字

如果需要当前容器调用GPU

docker19.0版本之后就集成了gpu的调用
加编译选项 –gpus all(也可以单独指定gpu)

执行命令后终端便切换到创建容器的终端环境了

attach操作

当前终端被关闭后,下一次要进入之前的容器

docker ps -a

在这里插入图片描述

查看所有容器,并且tensorrt相关镜像生成的容器启动方式并不一样,在图中箭头处可以看到

docker attach 5fe66678c892

(这串奇怪的字符串就是容器的ID 可以通过docker ps -a 查看)
又进入到上一次使用的容器终端了

在这里插入图片描述

commit操作

在对当前容器执行一系列操作之后,需要将这个容器重新打包成image,以供其他人pull
比如我对当前容器安装了openblas之后,想把带有openblas的容器一起打包

docker commit -m ‘tensorrt7.2’ -a ‘hset’ tensorrt7.2 tensorrt7.2

格式:docker commit -m ‘镜像描述’ -a ‘制作者’ 容器名(需要被打包的容器NAMES) 镜像名(生成镜像名)

在这里插入图片描述

三、上传阿里云

1.注册阿里云账户

   阿里云官方网站链接:https://dev.aliyun.com/search.html

   例如:

   账户:msjtest

   密码:123456

2.登陆账户
3.搜索 “容器镜像服务”,找到镜像仓库,创建镜像仓库

在这里插入图片描述


在这里插入图片描述


4.进入仓库查看创建后的镜像仓库信息

在这里插入图片描述


(ps:login的时候因为是使用sudo命令,需要先输终端密码,再输入容器镜像仓库的密码)
5.从公网拉取上传的镜像

总结

以上就是今天要讲的内容,本文仅仅简单介绍了docker的使用,而docker提供了大量能使我们快速便捷地配置环境和部署。好用的话点个赞 ^ o ^。

相关文章

Docker是什么Docker是 Docker.Inc 公司开源的一个基于 LXC技...
本文为原创,原始地址为:http://www.cnblogs.com/fengzheng...
镜像操作列出镜像:$ sudo docker imagesREPOSITORY TAG IMA...
本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p...
在 Docker 中,如果你修改了一个容器的内容并希望将这些更改...
在Docker中,--privileged 参数给予容器内的进程几乎相同的权...