一、发布镜像到 Docker Hub
创建仓库
去到 Docker Hub 创建仓库和镜像名称。比如 raoxiaoya/php-fpm
以我正在运行的php72-fpm容器为例,我是下载的php的官方镜像,然后在里面安装了一些东西,我想保存为新镜像,免得以后每次使用还需要安装他们。
登录到 Docker Hub
docker login
输入用户名密码登录
准备镜像
保存当前容器修改到本地镜像
docker commit -p php72-fpm raoxiaoya/php-fpm:7.2-latest
docker images
如果想发布已经存在的镜像,但是镜像的仓库名称又不是你要保存的目标仓库,那么你需要打标签
docker tag xxxx:xxxx raoxiaoya/php-fpm:7.2-latest
发布镜像
docker push raoxiaoya/php-fpm:7.2-latest
最后去到 Docker Hub 仓库编写描述和Readme,否则时间一长,你也不知道他是什么。
拉取自己的镜像
docker pull raoxiaoya/php-fpm:7.2-latest
如果你闲 Docker Hub 太慢了,你可以发布到阿里云镜像仓库。
二、发布镜像到阿里云镜像仓库
开通服务
首先需要注册阿里云开发者,然后开通容器镜像服务(免费的),记住你开通容器镜像服务时设置的用户名密码,接下来创建镜像仓库。
创建仓库
https://cr.console.aliyun.com/cn-hangzhou/instances/repositories
创建镜像仓库
华东1-杭州
命名空间 raoxiaoya
仓库名称 php-fpm
注意,它这里的命名空间就是 Docker Hub 的仓库名称,仓库名称反而是镜像的名称。
选择代码源为本地仓库,不需要和其他平台同步
创建好后,点击 php-fpm 就能看到详细的使用说明。
登录到阿里云仓库
docker login --username=xxxxxxxxx registry.cn-hangzhou.aliyuncs.com
容器镜像服务的登录名和密码
准备镜像
同样的,你想把某个镜像push到某个仓库,那么需要使用 docker tag 命令来打好对于的标签,或者使用 docker commit -p 来保存。
docker tag raoxiaoya/php-fpm:7.2-latest registry.cn-hangzhou.aliyuncs.com/raoxiaoya/php-fpm:7.2-latest
docker images
提交镜像
docker push registry.cn-hangzhou.aliyuncs.com/raoxiaoya/php-fpm:7.2-latest
讲真,速度的确快很多。
拉取自己的镜像
docker pull registry.cn-hangzhou.aliyuncs.com/raoxiaoya/php-fpm:7.2-latest