通过容器提交镜像(docker commit)以及推送镜像到阿里云
目的:在本地创建一个容器后,可以依据这个容器创建本地镜像,并可把这个镜像推送到阿里云镜像仓库中,以便在网络上的其他docker主机下载使用。
注意:我的仓库类型为私有的,所以不论是push镜像还是pull镜像,都需要提前登录,不然无法上传和拉取镜像。
如果仓库类型为公有的,那可以被匿名拉取,也就是不登录时就能拉取我仓库的镜像
1.创建一个新镜像
查看镜像现有的镜像 [root@docker-test1 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/ubuntu 16.04 7aa3602ab41e 5 weeks ago 115 MB 根据docker.io/ubuntu镜像创建一个名为myubuntu的容器 [root@docker-test1 ~]# docker run -ti --name myubuntu -d docker.io/ubuntu [root@docker-test1 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 651a8541a47d docker.io/ubuntu "/bin/bash" 37 seconds ago Up 36 seconds myubuntu docker commit :从容器创建一个新的镜像。 # docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] -a :提交的镜像作者; -c :使用Dockerfile指令来创建镜像; -m :提交时的说明文字; -p :在commit时,将容器暂停。 根据这个myubuntu容器创建一个名为myubuntu:v1镜像 [root@docker-test1 ~]# docker commit -a "wt" -m "this is ubuntu" 651a8541a47d myubuntu:v1
2.制作镜像,并将镜像推送到阿里云的容器仓库
再次查看镜像,发现镜像myubuntu:v1已经是镜像了
[root@khfw_manager ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
myubuntu v1 6ce4aedd12cd 59 seconds ago 84.1 MB
docker.io/ubuntu 16.04 7aa3602ab41e 5 weeks ago 115 MB
//根据阿里云仓库要求,使用docker tag 重命名镜像,其中registry.cn-shanghai.aliyuncs.com/wt_space/wt_hub为镜像仓库的公网地址, ubuntu-v1为tag。
[root@khfw_manager ~]# docker tag 6ce4aedd12cd registry.cn-shanghai.aliyuncs.com/wt_space/wt_hub:ubuntu-v1
//查看生成的镜像
[root@khfw_manager ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
myubuntu v1 6ce4aedd12cd 59 seconds ago 84.1 MB
registry.cn-shanghai.aliyuncs.com/wt_space/wt_hub ubuntu-v1 6ce4aedd12cd 1 seconds ago 84.1 MB //这个是根据要求重新命名的镜像
docker.io/ubuntu 16.04 7aa3602ab41e 5 weeks ago 115 MB
//登录aliyun的仓库
[root@khfw_manager]# docker login --username=0下一秒未知0 registry.cn-shanghai.aliyuncs.com
Password: //输入密码,密码为开通服务时设置的密码。
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded //表示登录成功
[root@khfw_manager ~]# docker push registry.cn-shanghai.aliyuncs.com/wt_space/wt_hub:ubuntu-v1 //将镜像推送到阿里云仓库
he push refers to repository [registry.cn-shanghai.aliyuncs.com/wt_space/wt_hub]
f4a670ac65b6: Pushed
ubuntu-v1: digest: sha256:817cfe4672284dcbfee885b1a66094fd907630d610cab329114d036716be49ba size: 529 //推送成功
3.在阿里云的镜像仓库中查看:
4.在其他的服务器下载刚刚上传到阿里云镜像仓库的ubuntu镜像:
//这是一个新服务器,首先需要登录到我的镜像仓库 [root@server]# docker login --username=0下一秒未知0 registry.cn-shanghai.aliyuncs.com Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded
//使用pull拉取版本为ubuntu-v1的镜像 root@server:/# docker pull registry.cn-shanghai.aliyuncs.com/wt_space/wt_hub:ubuntu-v1 ubuntu-v1: Pulling from wt_space/wt_hub e96e057aae67: Pull complete Digest: sha256:817cfe4672284dcbfee885b1a66094fd907630d610cab329114d036716be49ba Status: Downloaded newer image for registry.cn-shanghai.aliyuncs.com/wt_space/wt_hub:ubuntu-v1 registry.cn-shanghai.aliyuncs.com/wt_space/wt_hub:ubuntu-v1 //表示镜像下载成功
root@AI-server:/home/ubuntu# docker images //查看下载的镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.cn-shanghai.aliyuncs.com/wt_space/wt_hub ubuntu-v1 a8780b506fa4 3 weeks ago 77.8MB