将镜像发布到Docker Hub上:
Docker镜像是可以发布出去让别人访问或使用的,我们可以将自己制作的镜像发布到Docker Hub 或者发布到阿里云
上传镜像的步骤:
1、注册账号。
2、确定这个账号可以登录。
3、在我们的服务器上提交自己的镜像。
4、登录完毕后就可以提交镜像了
首先我们要注册docker hub的账号,因为上传镜像是需要登录账号才能上传的
注册Docker Hub账号:
docker Hub地址:
Docker Hub
https://hub.docker.com/
我们要先登录,才能docker push 上传镜像,没有登录我们是上传不了镜像的
[root@localhostaaa]#docker login --help
Usage: docker login [OPTIONS] [SERVER]
Log in to a Docker registry.
If no server is specified, the default is defined by the daemon.
Options:
-p, --password string Password
--password-stdin Take the password from stdin
-u, --username string Username
用法:docker登录选项
登录Docker注册表。
如果未指定服务器,则默认值由守护进程定义。
选项:
-p、 --密码字符串密码
--密码stdin从stdin获取密码
-u、 --用户名字符串用户名
在容器中登录和退出Docker Hub:
登录docker hub:
命令:
docker login -u 用户名 -p 密码 #不建议在命令里加-p,这样会显示出密码,不写-p回车后就会出现输入密码的提示,然后再输入密码,更安全。如下:
[root@localhost aaa]# docker login -u huazhiwei
Password:
出现这个,就代表登录成功:
Login Succeeded
退出登录docker hub
登出、退出: docker logout
命令:
docker logout
上传Docker镜像
登录完毕后就可以提交镜像了,就是一步:docker push
上传镜像的命令:docker hub
注意事项:
上传的镜像需要有作者名,镜像名,和镜像标签,和docker hub镜像仓库重名的镜像是会上传失败的。
可以通过:docker tag 来修改镜像名和标签:
使用方法:
docker tag 镜像id 修改的镜像名:标签
例:
上传本地的镜像:
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos2022/vim 2.0 a498b068b5da 16 minutes ago 231MB
huazhiwei/centosvim 2022 a498b068b5da 16 minutes ago 231MB
push 镜像
[root@localhost ~]# docker push huazhiwei/centosvim:vim
The push refers to repository [docker.io/huazhiwei/centosvim]
74ddd0ec08fa: Pushing 226.9MB/231.3MB
docker push 作者名/镜像名:标签
Docker Hub需要规范上传镜像:
docker push 上传镜像 要带镜像作者名字,什么镜像,镜像的标签
1、写作者名字是为了知道是谁做的镜像,可以写笔名,比如孙悟空的另一个名字是齐天大圣。
2、写什么镜像是让别人知道这个是什么镜像,比如centos镜像,mysql镜像,nginx镜像。
3、写标签是为了让大家知道你这个镜像有什么作用,与官网的镜像有什么区别,比如centos:vim,大家就知道你这个centos镜像比官方多了vim的功能。
上传镜像可能会遇到的问题:
问题一:
[root@localhost /]# docker push paidaxing/centos:2.1
The push refers to repository [docker.io/paidaxing/hzw/centos]
An image does not exist locally with the tag: paidaxing/hzw/centos
问题二:
[root@localhost ~]# docker push mycentos:vim
The push refers to repository [docker.io/library/mycentos]
74ddd0ec08fa: Preparing
denied: requested access to the resource is denied
这样的问题就是我们的镜像名字不正确,或者没有标签,我们给镜改个名字像加个标签:
给镜像增加一个tag
docker tag 镜像id 给镜像改的名字和标签
将镜像改个名字并加个标签 名字:huazhiwei/centosvim 标签:2022
[root@localhost ~]# docker push huazhiwei/centosvim:2022
出现这个就代表正在上传了
The push refers to repository [docker.io/huazhiwei/centosvim]
74ddd0ec08fa: Pushing 6.056MB/231.3MB
可以发现,我们提交的时候也是一层层来发布的,docker镜像的特点。
将镜像发布到阿里云上:
1、注册并登录阿里云账号
2、找到容器镜像服务
3、创建命名空间(一个账号只能创建3个命名空间)
4、创建容器镜像
注册并登录阿里云:
https://www.aliyun.com/
https://www.aliyun.com/
登录后点击控制台:
搜索容器镜像服务:
根据需求创建企业版实例或创建个人版实例:
创建镜像仓库、命名空间:
设置仓库名称,公开或私有仓库:
选择本地仓库:
创建完成后就会跳转到阿里云官方上传镜像的步骤:
点击镜像仓库也能查看上传步骤:
宿主机命令行登录阿里云账号:
push镜像到阿里云:
上传镜像到阿里云对比与docker Hub稍微更加复杂,因为阿里云对镜像命名的规则比较严格,需最好按照阿里云官网步骤命名,不然很容易上传失败,因为阿里云官网会按照个人的镜像仓库和命名规则给出命名代码,只需要修改镜像id和容器名即可。如下图:
push镜像到阿里云和Docker Hub的步骤是一样的,就是需要创建不同镜像仓库的账号,因为docker上传镜像到镜像仓库需要登录对应的镜像仓库上传,所以区别就在于创建对应镜像仓库的步骤。
以下就是成功上传阿里云的实例:
上传完成后即在镜像版本处查看自己上传的镜像:
点击层信息即可查看自己的镜像信息:
可以显示镜像的每一层是怎么做的,镜像的构建方式都是可以查看的,也可以开放给别下载。
docker常用命令汇总:
学完上传docker镜像,在日常使用docker已经没有多大问题了,以下就是docker命令的汇总: