大家好,今天来介绍docker阿里云镜像地址啥用(docker部署镜像)的问题,以下是渲大师小编对此问题的归纳和整理,感兴趣的来一起看看吧!
阿里云 上的docker 怎么用
包括三部分:
从Docker Hub或者其他镜像源安装Docker镜像
从Image file安装Docker镜像
从Docker file制作Docker镜像
查找Docker镜像
安宏雀漏装Docker镜像的第一步,是查找你需要的Docker镜像列表,键入:
docker search mysql
如果出现权限问题,请在最前面加入sudo:
sudo docker search mysql
查询返回一个列表:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relati... 2981 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Crea... 194 [OK]
centurylink/mysql Image containing mysql. Optimized to be li... 46 [OK]
sameersbn/mysql 36 [OK]
jdeathe/centos-ssh-mysql CentOS-6 6.8 x86_64 / MySQL. 8 [OK]
appcontainers/mysql Centos/Debian Based Customizable MySQL Con... 8 [OK]
marvambass/mysql MySQL Server based on Ubuntu 14.04 6 [OK]
drupaldocker/mysql MySQL for Drupal 2 [OK]
azukiapp/mysql Docker image to run MySQL by Azuki - http:... 2 [OK]
yfix/mysql Yfix docker built mysql 2 [OK]
alterway/mysql Docker Mysql 2 [OK]
frodenas/mysql A Docker Image for MySQL 2 [OK]
andreluiznsilva/mysql A extension of the offical MySQL container... 1 [OK]
phpmentors/mysql MySQL server image 1 [OK]
sin30/mysql MySQL images with my own config files. 1 [OK]
tozd/mysql MySQL (MariaDB fork) Docker image. 0 [OK]
nanobox/mysql MySQL service for nanobox.io 0 [OK]
...
列表包含了所有的MySQL镜像,其中:
NAME字段是镜像的名字
DESCRIPTION字段是对镜像的简单描述
STARS数量反映了用户的喜爱程度
OFFICIAL字段如果是OK,代表了这个镜像是官方提供的,可以蔽烂信任
AUTOMATED字段如果是OK,代表了这个镜像是基于公开的脚岁扒本制作的,可以信任
如果OFFICIAL和AUTOMATED都不为OK,那使用的时候需要额外小心了,这类镜像中可能包含恶意软件,不过对于个人非敏感数据还是可以使用的。
此外,你也可以通过访问https://hub.docker.com/,通过Web来搜索你需要的镜像。
下载Docker镜像
当你找到合适的镜像后,可以通过:
docker pull [REGISTRYHOST/][USERNAME/]NAME[:TAG]
来进行下载,方括号中的是可选项:
docker pull mysql
导出Docker镜像
你可以将本地镜像导出为文件,如我们刚才下载的MySQL镜像:
docker save -o mysql.tar mysql
将我们的MySQL镜像导出为mysql.tar.
导入Docker镜像
有导出就有导入,导入的命令是:
docker load -i mysql.tar
将我们的MySQL镜像导入。
删除Docker镜像
为了节约磁盘空间,有时候我们需要删除不需要的Docker镜像文件,首先查看我们拥有的Docker镜像文件:
docker images
然后删除不需要的镜像,释放磁盘空间:
docker rmi [REGISTRYHOST/][USERNAME/]NAME[:TAG]
通过Docker File编译Docker镜像
制作Docker File我们放在后面再讲,假设你有一个名为Dockerfile的文件,编译制作Docker的命令是:
docker build -f Dockerfile .
成功后将在当前路径下制作出一个Docker镜像文件。
Summary
我们简单的介绍了Docker镜像的使用方法。通过此实战,你应该对Docker镜像有了更深入的体会。
以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索docker , 镜像 , docker使用镜像 , 删除镜像 查找镜像 docker 删除镜像、docker 镜像、docker 国内镜像仓库、docker hub 国内镜像、docker 镜像仓库,以便于您获取更多的相关知识。
docker 部署镜像
以阿里云镜像示范:
一、手动部署:
1.mkdir ktc: 创建文件夹
2.把项目里的maven缓存 clean 清理掉
3.然后package 打成 jar包
4.然后登录阿里云,在产品与服务找到容器镜像服务
5.创建好命名空间,然后再创个公开的岁滚镜像仓库;
6.创建好之后 登录阿里云Docker Registry,创建好仓库有操作指南,后面的是公网地址,*要自己补全
7.输入密码是看不到的,显示Login Succeeded 就登录成功,然后就构建镜像 名字自己锋雀穗取
8.sudo其银卜实可有可无,管理员权限,imageid是什么构建的镜像的id 后面版本号也是自己设置
9.然后就是提交了
阿里云daocloud的docker是啥os/docker 注意事项
Docker是Docker.Inc公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议。通过分层镜像标准化和内核虚拟化技术,Docker使得应用开发者和运维工程师运嫌可以以统一的方式跨平台发布应用,并且以几乎没有额外开销的情况下提供资源隔离的应用运行环境。由于众多新颖的特性以及项目本身的开放性,Docker在不到两年的时间里迅速获得诸多IT厂商的参与,其中更是包括Google、Microsoft、VMware等业界行业领导者。同时,Docker在开发者社区也是一石激起千层浪,许多如我之码农纷纷开始关注、学习和使用Docker,许多企业,尤其是互联网企业,也在不断加大对Docker的投入,大有掀起一场容器革命之势。
Docker镜像命名解析
镜像是Docker最核心的技术之一,也是应用发布的标准格式。无论你是用docker pull image,或者是在Dockerfile里面写FROM image,从Docker官方Registry下载镜像应该是Docker操作里面最频繁的动作之一了。那么在我们执行docker pull image时背后到底发生了什么呢?在回答这个问题前,我们需要先了解下docker镜像是如何命名的,这也是Docker里面比较容易令人混淆的一块概念:Registry,Repository, Tag and Image。
下面是在本贺悄磨地机器运行docker images的输出结果:
我们可以发现我们常说的“ubuntu”镜像其实不是一个镜像名称,而是代表了一个名为ubuntu的Repository,同时在这个Repository下面有一系列打了tag的Image,Image的标记是一个GUID,为了方便也可以通过Repository:tag来引用。
那么Registry又是什么呢?Registry存储镜像数据,并且提供拉取和上传镜像的功能。Registry中镜像是通过Repository来组织的,而每个Repository又包含了若干个Image。
Registry包含一个或多个Repository
Repository包含一个或多个Image
Image用GUID表示,有一个或多个Tag与之关联
那么在哪里指定Registry呢?让我们再拉取一个更完整命名的镜像吧:
上面我试图去拉取一个ubuntu镜像,并且指定了Registry为我本机搭建的私有Registry。下面是Docker CLI中pull命令的代码片段 (docker/api/client/command.go中的CmdPull函数)
在运行时,上面的taglessRemote变量会被传入localhost:5000/ubuntu。上面代码试图从taglessRemote变量中解析出Registry的地址,在我们的例子中,它是localhost:5000。
那我们回过头再来看看下面这个耳熟能详的pull命令背后的故事吧:
我们跟着上面的示例代码,进一步进入解析函数ResolveRepositoryName的定义代码片段(docker/registry/registry.go)
我们发现,Docker CLI会判断传入的taglessRemote参数的第一部分中是否包含’.’或者':’,如果存在则认为第一部分是Registry地址,否则会使用Docker官方默认的Registry(即index.docker.io其实这里是一个Index Server,和Registry的区别留在后面再去深究吧),即上面代码中高亮的部分。背后的故事还没有结束,如果你向DockerHub上传过镜像,应该记得你上传的镜像名称格式为user-name/repository:tag,这样用户Bob和用户Alice可以有相同名称的Repository,通过用户名前缀作为命名空间禅斗隔离,比如Bob/ubuntu和Alice/ubuntu。官方镜像是通过用户名library来区分的,具体代码片段如下(docker/api/client/command.go中的CmdPull函数)
我们回过头再去看Docker命令行中解析Tag的逻辑吧(docker/api/client/command.go中的CmdPull函数):
代码会试着在用户输入的Image名称中找’ : ‘后面的tag,如果不存在,会使用默认的‘DEFAULTTAG’,即‘latest’。
也就是说在我们的例子里面,命令会被解析为下面这样(注意,下面的命令不能直接运行,因为Docker CLI不允许明确指定官方Registry地址)
配置Registry Mirror
Docker之所以这么吸引人,除了它的新颖的技术外,围绕官方Registry(Docker Hub)的生态圈也是相当吸引人眼球的地方。在Docker Hub上你可以很轻松下载到大量已经容器化好的应用镜像,即拉即用。这些镜像中,有些是Docker官方维护的,更多的是众多开发者自发上传分享的。而且你还可以在Docker Hub中绑定你的代码托管系统(目前支持Github和Bitbucket)配置自动生成镜像功能,这样Docker Hub会在你代码更新时自动生成对应的Docker镜像,是不是很方便?
不幸的是Docker Hub并没有在国内放服务器或者用国内的CDN,下载个镜像20分钟最起码,我等码农可耗不起这么长时间,老板正站在身后催着我们搬运代码呢。为了克服跨洋网络延迟,一般有两个解决方案:一是使用私有Registry,另外是使用Registry Mirror,我们下面一一展开聊聊.
方案一就是搭建或者使用现有的私有Registry,通过定期和Docker Hub同步热门的镜像,私有Registry上保存了一些镜像的副本,然后大家可以通过docker pull private-registry.com/user-name/ubuntu:latest,从这个私有Registry上拉取镜像。因为这个方案需要定期同步Docker Hub镜像,因此它比较适合于使用的镜像相对稳定,或者都是私有镜像的场景。而且用户需要显式的映射官方镜像名称到私有镜像名称,私有Registry更多被大家应用在企业内部场景。私有Registry部署也很方便,可以直接在Docker Hub上下载Registry镜像,即拉即用,具体部署可以参考官方文档。
方案二是使用Registry Mirror,它的原理类似于缓存,如果镜像在Mirror中命中则直接返回给客户端,否则从存放镜像的Registry上拉取并自动缓存在Mirror中。最酷的是,是否使用Mirror对Docker使用者来讲是透明的,也就是说在配置Mirror以后,大家可以仍然输入docker pull ubuntu来拉取Docker Hub镜像,除了速度变快了,和以前没有任何区别。
了以更便捷的方式对接Docker Hub生态圈,使用Registry Mirror自然成为我的首选。接下来我就和大家一起看看Docker使用Mirror来拉取镜像的过程。下面的例子,我使用的是由DaoCloud提供的Registry Mirror服务,在申请开通Mirror服务后你会得到一个Mirror地址,然后我们要做的就是把这个地址配置在Docker Server启动脚本中,重启Docker服务后Mirror配置就生效了(如何获得Mirror服务可以参考本篇文章的附录)
Ubuntu下配置Docker Registry Mirror的命令如下:
sudo echo “DOCKER_OPTS=\”\$DOCKER_OPTS –registry-mirror=http://your-id.m.daocloud.io -d\”” >> /etc/default/docker
sudo service docker restart
如果你是用的Boot2Docker,配置命令为:
# 进入Boot2Docker Start Shell,并执行
sudo su
echo “EXTRA_ARGS=\”–registry-mirror=http://your-id.m.daocloud.io\”” >> /var/lib/boot2docker/profile
exit
# 重启Boot2Docker
配置好Registry Mirror后,就可以拉取Docker镜像了,经我测试,使用DaoCloud的Mirror后,拉取常见镜像的速度可以达到1.5M左右,具体速度在你的网络环境可能会略有不同。
我们来看看配置了Registry Mirror后,Docker拉取镜像的过程吧。首先是CLI拉取镜像命令代码片段(docker/api/client/command.go中的CmdPull函数)
首先,Docker CLI会试图获得授权,在我们的例子中会向https://index.docker.io/v1请求认证,认证完成后,认证服务器会返回一个对应的Token。注意,这里用户认证与配置的Registry Mirror完全无关,这样我们就不用担心使用Mirror的安全问题了。接着Docker CLI会调用Docker Server(即Docker daemon程序)的创建镜像命令,Docker Server随之会执行具体的拉取镜像动作,代码片段如下(docker/graph/pull.go的pullRepository函数)
从代码中可以发现,如果配置了Registry Mirror,Docker Server会首先从Mirror中拉取镜像,如果Mirror拉取失败会退而求其次从镜像中指定的Registry拉取。大家又可以松口气了,就算配置的Registry Mirror失效,也不会影响用户拉取镜像,只不过速度就。。。
镜像拉下来后,就可以运行容器了
docker 使用阿里云加速器快速拉取docker镜像
本文介绍使用阿里云加速器快速拉取docker镜像的方法,以此避免拉取过程中的可能出现的网络太慢的问题。
登录阿里云官网,打开容器镜像服务控制台(如果找不到,可芦饥以在产品与服务中搜索一下),点击左侧镜像加速器栏目就可以看到了。
直接编辑配置文件 /察姿etc/docker/daemon.json
需要根据不同的操作系统进行配置,例如Ubuntu 12.04 14.04的配置文件的位置在 /etc/default/docker。
你只需要在这个配置文件败哗绝里,添加加速器的配置项,然后重启Docker就可以了。
其他操作系统的配置方法,可以参考 这篇文章 。
本文地址:https://gpu.xuandashi.com/72509.html,转载请说明来源于:渲大师
声明:本站部分内容来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场!