docker hub push_Docker实战007:docker仓库使用详解

Docker仓库就是用来存储镜像的地方,我们可以将镜像上传至仓库,也可以从仓库下载镜像。Docker提供一个注册服务器(Registry)用来管理仓库的服务器,一个服务器上可以存在多个仓库,每个仓库下也可以存放多个具备不同tag的镜像。Docker官方维护了一个公共仓库:https:/hub.docker.com,这里提供了可以满足大部分需求的镜像,用户无需登录即可通过docker search命令来查找镜像并利用docker pull命令来将它下载到本地。我们也可以在 https://hub.docker.com/ 注册一个 Docker 账号免费使用docker仓库,通过docker push命令来将自己的镜像推送到 Docker Hub(操作跟git相似,很容易上手)。

8521bdbecde5326d850cc58017a5ec26.png

Docker Hub

docker仓库分为公共仓库和私有仓库,公共仓库顾名思义就是一个开放的服务,允许用户通过注册服务进行免费上传、下载公开的镜像。目前Docker官方维护了一个公共仓库 Docker Hub,我们可以通过 https://hub.docker.com 免费注册一个 Docker 账号。这个仓库跟Github等代码托管平台很相似,仓库操作也跟Git很相似(很容易上手)。私有仓库则是不公开的仓库,只有被授权的成员才能访问或者下载该仓库的资源。在本地搭建的一个类似公共仓库,搭建好之后就可以将镜像提交到私有仓库中。这样我们既能使用Docker来运行我们的项目镜像,也可以避免资源被泄露。

2e057188c8d5d7d4c33da426dfcc929c.png

配置docker镜像加速器

除了Docker官方提供了 Docker Hub的镜像服务,国内一些云服务商也提供类似于 Docker Hub 的公开服务。如阿里云、腾讯云、网易云、DaoCloul、时速云等镜像服务,这些镜像服务被称为加速器。我们可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器。登录阿里云获取专属的镜像加速器地址,daemon.json文件一般再在/etc/docker目录下,如果没有则新建即可。使用加速器会直接从国内的地址下载 Docker Hub 的镜像,比直接从 Docker Hub下载速度会提高很多。

1fe12d82ccb32c1df56cacac4b840fab.png

拉取docker镜像

拉取docker hub的镜像很简单,用户不需要登录就可以通过docker search命令查询Docker Hub官方仓库中的镜像,命令格式为:docker search [options] keyword。同时docker提供了拉取命令:docker pull [options] /:,该命令可以从origin远程仓库(默认Docker Hub )中的repository仓库拉取标签为tag的镜像(如果省略标签则拉取标签为latest的镜像)。

deed0fa0a07cb21fe86fa73a93e758b2.png

创建docker仓库

上传镜像之前我们需要先登录docker仓库创建一个资源仓库,在Docker Hub通过“Create Repository”按钮来创建一个资源仓库,输入仓库名称和描述并选择公共 public 的仓库或者私有 private 的仓库,输入信息之后点击下方的“Create”按钮就可以完成仓库的创建了。

d383160c01528e400fabc20e5f3b7bdc.png

登录Docker Hub

在仓库中我们可以看到一个“Docker commands”告诉我们如何上传一个新的标签镜像到该仓库,上传仓库指令为:docker push kevinfan2011/docker:tagname。回到docker中我们需要先登录docker hub服务,在docker中通过docker login命令可以输入用户名和密码(密码不显示)即可登录Docker Hub。登录之后会在本地创建一个.docker/config.json文件,该文件保存了用户登录的认证信息。

b317a9a6a55c3c3be58164d77038114a.png

上传docker镜像

在上传之前先给本地镜像打个tag标签,给镜像打上标签之后才能push。通过docker tag命令将镜像重命名为docker账户名/仓库名称,语法格式为:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]。其中SOURCE_IMAGE指的是本地镜像,TARGET_IMAGE指的是docker账号/docker仓库。指定标签之后就可以开始上传本地镜像标签到镜像仓库,使用docker指令:docker push docker 账号/仓库名称:tagname即可完成镜像上传到Docker Hub(速度比较慢...)。Push成功之后就可以登录到dockerhub网站查看一下刚才创建的仓库名称,里面应该有一个tag为hello-world的镜像了。

ea25a265886dcd2ec90245ab9e74bdcb.png

删除tag镜像

通过docker tag命令打上标签之后此时仓库中有两个镜像,镜像id相同只是多了一个tag标签(就是多了一个镜像引用)。用镜像id强制删除会物理性的镜像删除(引用也会同时被删除),如果只要想要删除不需要的引用镜像我们可以通过tag来删除。

0fe3532c6bd5785584bf2c0eb73a6fb2.png

搭建本地私有仓库

docker提供了registry镜像来搭建本地私有仓库,通过命令:docker run -d -p 5000:5000 --restart=alwarys registry:2会自动下载并启动一个registry容器来创建本地私有仓库服务。此时会在本地启动一个私有仓库服务,监听端口为5000。--restart=alwarys 表示随docker daemon启动一起启动,该仓库默认创建在/var/lib/registry目录下默认情况下仓库会被创建在容器的 /tmp/registry 下(docker默认安装目录为/var/lib/docker),如果怕镜像丢失也可以通过参数-v来指定存放路径。

6960f81e1ffc23670114d18c8176fdf9.png

总结:

Docker将运行环境打包保存至容器使用时直接启动即可,这样就可以实现跨平台在物理机、虚拟机、公有云等环境的中快速迁移和部署。Docker仓库帮助我们在线存储镜像,到哪都可以一键拉取运行,可以实现快速交付到线上。以上内容是小编给大家分享的【Docker实战007:docker仓库使用详解】。希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

7ebb0612f2cbba5ddcc210a39c7569b2.png

为了方便学习,下面附上本文用到的源码:

# mkdir -p /etc/docker# tee /etc/docker/daemon.json <
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值