阿里云提供了免费的 code 仓库, 地址: https://code.aliyun.com/
1. 上传本地镜像到阿里云
以下操作在阿里云的 docker 仓库里
1. 创建名称空间
image
2. 创建镜像仓库
image
此处选择 "本地仓库"
image
3. 上传镜像
以下操作在 Linux 操作系统上:
a. 登录阿里云 docker registry:
- $ docker login --username=2580259468@qq.com registry.cn-hangzhou.aliyuncs.com
- # 登录 registry 的用户名是您的阿里云账号全名, 密码是您开通 namespace 时设置的密码.
- # 你可以在镜像管理首页点击右上角按钮修改 docker login 密码.
b. 从 registry 中拉取镜像:
$ docker pull registry.cn-hangzhou.aliyuncs.com/mykernel/test1:[镜像版本号]
c. 将镜像推送到 registry:
$ docker login --username=2580259468@qq.com registry.cn-hangzhou.aliyuncs.com
$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/mykernel/test1:[镜像版本号]
$ docker push registry.cn-hangzhou.aliyuncs.com/mykernel/test1:[镜像版本号]
## 其中 [ImageId] 为你本地镜像的名称或者镜像 ID 号,[镜像版本号]为你自己设置的版本号码.
4. 演示
使用 docker tag 重命名镜像, 并将它通过私网 ip 推送至 registry:
- $ sudo docker images
- REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
- registry.aliyuncs.com/acs/agent 0.8-test 1133168aac6 7 days ago 37.89 MB
- $ docker tag 1133168aac6 dregistry.cn-hangzhou.aliyuncs.com/mykernel/test1:0.8-test
- ## 通过 docker images 找到您的 imageId 并对于改 imageId 重命名镜像 domain 到 registry 内网地址.
- $ docker push registry.cn-hangzhou.aliyuncs.com/mykernel/test1
- ## 从内网 push 镜像, 速度将大大提升, 并且将不会损耗您的公网流量.
- ## 注意, 如果您申请的机器是在 vpc 网络的, 请使用 registry-cn-hangzhou-vpc.aliyuncs.com 的域名前缀进行推送.
下载镜像
$ docker pull registry.cn-hangzhou.aliyuncs.com/mykernel/test1:0.8-test
2. 使用阿里云代码仓库构建
1. 上传 dockerfile 文件
在 1 中的图中我们发现, 此处选择的是阿里 code, 所以我们需要在 1 之前完成这一步, 将相关的 Dockerfile 及其相关文件至阿里云代码仓库.
仓库地址: https://code.aliyun.com/
新建项目
image
image
上传 dockerfile 文件(本地 Linux 上)
- Git config --global user.name "2580259468"
- Git config --global user.email "2580259468@qq.com"
- # 创建新版本库
- Git clone https://code.aliyun.com/mykernel/my-first-p.git
- cd my-first-p
- ## 复制你需要上传的文件到 my-first-p 目录下
- touch README.md
- Git add *
- Git commit -m "add 描述"
- Git push -u origin master
- ## 输入你登录代码仓库的用户名和密码, 完成上次.
2. 构建镜像
在阿里云镜像仓库中, 其他前期操作都一样, 仅仅在创建镜像仓库时候, 如下选择:
image
点击 "构建" 菜单:
image
点击 "立即构建" 按钮:
image
若构建失败, 可以查看 "日志" 进行调试.
当然可以选择启动代码仓库中的代码进行构建镜像.
博主一般不写 dockerfile 了, 一般使用阿里云的镜像仓库就是做一个 docker 官方镜像的中转. dockerfile 中只需要写一行代码就行了.
个人小站: http://www.mykernel.cn/
来源: http://www.jianshu.com/p/912651de9090