docker镜像操作
1. 获取镜像:
docker pull NAME[:TAG] #默认是从Docker Hub注册服务器的仓库中下载相当于
docker pull registry.hub.docker.com:5000/仓库名:标签
为了速度,也可以换成其它镜像:
“http://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"
2.查看镜像信息:
docker images 或者docker image ls ,可以列出本机上已有的镜像。
同一个仓库,可能有多个镜像,通过打标签来区分,而镜像的ID是镜像的唯一标识。
(sudo) docker tag test_unbuntu:latest ubuntu:1.0.1
这样该镜像会多一个仓库是ubuntu, TAG为1.0.1的标签。
docker inspect ID可以查看该镜像的详细信息;也可以用-f指定其中一项内容。如
docker inspect -f {{".Architecture"}} 500dt88
3.寻找镜像:
docker search命令可以搜索远程仓库中共享的镜像,默认是官方提供的镜像。
--automated=false仅显示自动创建的镜像.(automated内容允许用户验证镜像的来源和内容)
--no-trunc=false 输出的信息不截断显示
-s, --stars=0指定仅显示评价星级以上的镜像
4.删除镜像:
docker rmi IMAGE [IMAGE...], 其中,IMAGE可以是tag或者ID。当指定tag的方式删除时,只会删除一个标签,只有镜像的所有标签都删除时,该镜像才真正删除。而指定ID,则会一次性真正删除镜像。当该镜像有创建的容器存在时,镜像文件默认是无法删除的,需要先删除其容器(可以用docker ps -a查看所有容器)docker rm 容器的ID。
5.创建镜像:
创建镜像有三种方法:基于已有的容器创建、基于本地模板创建、基于Dockerfile创建。
1)基于已有的容器创建:
该方法主要使用docker commit 命令,docker commit [options] container [repository[:tag]]
主要选项包括: -a ,--author=""作者信息
-m, --message=""提交消息
-p, --pause=true提交时,暂停容器运行
如: docker commit -m "added a new file" -a "Dpcker Newbee" ac925cb test
将返回一个新镜像的ID信息
2)基于模版导入:
这里推荐Open V Z提供的模版来创建。比如下载一个ubuntu-14.04的模版压缩包后,使用命令:
sudo cat ubuntu-14.04-x86_64-minimal.tar.gz |docker import - ubuntu:14.04
这样就导入了一个镜像
6. 存出和载入镜像
存出镜像, 如想要将本地的ubuntu:14.04镜像存出为文件ubuntu_14.04.tar
docker save -o ubuntu_14.04.tar ubuntu:14.04
载入镜像:(也就出从存入的本地文件再导入到本地镜像库)
sudo docker load --input ubuntu_14.04.tar 或者
sudo docker load < ubuntu_14.04.tar
7.上传镜像:
默认上传到Docker Hub官方仓库(需要先登录,速度可能很慢,最好注册一个阿里云容器镜像)
sudo docker tag test:latest user/test:latest #打一个新标签
sudo docker push user/test:latest #上传,第一次可能提醒你登陆
1)登录阿里云Docker Registry
sudo docker login --username=风和牧野 registry.cn-hangzhou.aliyuncs.com
2)将镜像推送到Registry
sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/centos7_python/centos7_python3.7:[镜像版本号]
$ sudo docker push registry.cn-hangzhou.aliyuncs.com/centos7_python/centos7_python3.7:[镜像版本号]