在阿里云控制台进入容器镜像服务
创建一个命名空间、再创建一个镜像仓库
在本地linux环境下定位到dockerfile文件目录
执行
docker build -t gkd:v0.1.2 .
-t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
-f :指定要使用的Dockerfile路径;(如果有多个Dockerfile文件 可以用-f指定)
构建完成后可以使用docker images查看构建好的镜像
推送至阿里云
(直接贴上阿里云官方教程)
1. 登录阿里云Docker Registry
$ docker login --username=*****@163.com registry.cn-shanghai.aliyuncs.com
用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
您可以在访问凭证页面修改凭证密码。
2. 从Registry中拉取镜像
$ docker pull registry.cn-shanghai.aliyuncs.com/[命名空间]/[镜像仓库名]:[镜像版本号]
3. 将镜像推送到Registry
$ docker login --username=*****@163.com registry.cn-shanghai.aliyuncs.com $ docker tag [ImageId] registry.cn-shanghai.aliyuncs.com/[命名空间]/[镜像仓库名]:[镜像版本号] $ docker push registry.cn-shanghai.aliyuncs.com/[命名空间]/[镜像仓库名]:[镜像版本号]
请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号][命名空间][镜像仓库名]参数。
4. 选择合适的镜像仓库地址
从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。
如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-shanghai.aliyuncs.com 作为Registry的域名登录。
5. 示例
使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。
$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE registry.aliyuncs.com/acs/agent 0.7-dfb6816 37bb9c63c8b2 7 days ago 37.89 MB $ docker tag 37bb9c63c8b2 registry-vpc.cn-shanghai.aliyuncs.com/acs/agent:0.7-dfb6816
使用 "docker push" 命令将该镜像推送至远程。
$ docker push registry-vpc.cn-shanghai.aliyuncs.com/acs/agent:0.7-dfb6816
PS. 补充
将容器打包成镜像。
$ docker commit -a "runoob.com" -m "my apache" 容器名称或id 打包的镜像名称:标签
OPTIONS说明:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。