docker速成(阿里版)

Docker出现的背景

随着云原生、AI等技术的向前推进,容器技术逐渐成为每位算法同学的必备技能之一Docker的出现是一种历史趋势,因为微服务的出现,导致了使用的技术更加多元化,所以在部署上的难度也变得更大。而docker可以减轻我们在部署上面的复杂性。docker相当于起到了承上启下的桥梁作用:将App连带环境一同打包直接部署到服务器上。
dockVS虚拟机:
传统的虚拟机是在宿主机之上,又添加了一个新的操作系统,这就直接导致了虚拟机的臃肿,不适合迁移。而docker这是直接寄存在宿主机上,完全就会避免大部分虚拟机带来的困扰。

Docker简介

docker底层技术支持

NameSpaces:用于做进程之间的隔离
Control Groups: 用于做资源控制,根据需求划分资源的核心数,内存,硬盘等等,例如我们之前新建一个虚拟机一样
Union file systems(UFS,联合文件系统):Container和image的分层

docker的基本概念

docker最重要的三个概念是:镜像(image),容器(container),仓库(repository),在这三个概念中,镜像是最重要的概念。
镜像
镜像是文件与meta data的集合
分层的,并且每一层都可以添加删除文件,从而形成新的镜像,不同的镜像可以共享相同的层(layout)。镜像我们可以理解为树状结构,每一个镜像都会依赖于另一个镜像,这个依赖关系是体现在docker镜像制作的dockerfile中的FROM指令中的。如果要是树的根,那么我们需要"FROM scratch",这个是值得注意的。如果需要对它进行修改,该怎么办呢,别着急,这个就得看我们的容器了。
容器
容器是镜像的一个运行实例,可以不准确的把镜像当作类,容器当作对象。容器其实他的结构是与镜像相类似的,底部也是一层层的只读层,只不过在最上层会存在一个存储层,我们可以在这一层定制化我们的这个容器,还可以通过build命令,把容器打包成我们自己需要的镜像。另外镜像启动后会形成一个容器,容器在计算机中是一个进程,但这个进程对其他进程并不可见。
仓库
这个理解起来就很简单了,大家应该有使用过git,他是有一个远程的仓库,这个仓库记录着我们的代码,和每一次我们提交的记录。但是在这里,把docker的仓库比做maven仓库更加恰当,就相当于我们可以去maven远程仓库取我们需要的依赖,多个依赖构成了我们的整个项目,这个思想同样适用于docker。默认情况下,我们都是从docker hub中取得的镜像(http://registry.hub.docker.com/)

Docker安装

注意:本人只提供linux安装方法,因为本人比较愚钝不会使用mac系统,无法对安装的成功性进行检验

Linux安装:

sudo curl -sS https://get.docker.com/ | sh
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
systemctl start docker && systemctl enable docker

检验

在这里插入图片描述
在这里插入图片描述
第二幅图中有docker-ce.repo证明装成功了

Docker基础命令

拉取镜像

docker pull [选项] [docker镜像地址:标签]

运行镜像

docker run 镜像名称

查看本地镜像(list 镜像)

docker images

查看运行中的容器

docker ps

进入运行中/后台运行的容器

docker exec -it [CONTAINER ID] /bin/bash

保存修改

docker commit [CONTAINER ID] registry.cn-shanghai.aliyuncs.com/test/pytorch:myversion

打TAG

docker tag registry.cn-shanghai.aliyuncs.com/test/pytorch:myversion my_tmp_version:0.1

推送镜像到仓库

docker push registry.cn-shanghai.aliyuncs.com/test/pytorch:myversion

使用dockerfile管理镜像

构建镜像

docker build -t registry.cn-shanghai.aliyuncs.com/target:test
指定dockerfile
docker build -f ./dockerfile -t registry.cn-shanghai.aliyuncs.com/target:test

删除镜像/容器

删除镜像:
docker rmi registry.cn-shanghai.aliyuncs.com/target:test
删除容器:
docker rm [CONTAINER ID]
如果容器还在运行,则会删除失败,应先结束掉容器:
docker kill [CONTAINER ID]
查看运行中的容器:
docker ps
查看所有容器:
docker ps -a
深度学习常用镜像集合(包含国内源和海外源)
阿里镜像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值