实验二、镜像管理
1.拉取镜像
(1)从官方镜像上拉取一个14.04标签的镜像ubuntu:
docker image pull ubuntu:14.04
(2)从私有仓库quay.io上拉取一个latest标签的镜像flannel:
从私有仓库上拉取镜像:
docker pull <私有库ip>:<端口>/ < 镜像repository> :<镜像tag>
sudo docker pull quay.io/coreos/flannel:y0.10.0-amd64
2.搜索镜像
采用不同的两种方式进行镜像的搜索
(1)在docker hub网站上搜索https://hub.docker.com,搜索镜像名为ubuntu的所有镜像
(2)在终端下,通过docker命令行方式搜索。
docker search ubuntu
问题:如何从Docker Hub查找所有镜像名包含ubuntu,并且收藏数大于20的镜像?
docker search -s 20 ubuntu
上面写的会出现错误。不知道是什么原因。下面的就不会。(应该和网速有关系,网慢的时候就会出现timeout)
3.查看镜像
(1)列出包含中间层的所有镜像
sudo docker images -a
docker images -a --no-trunc
(3)Docker inspect,查看镜像的详细信息,包含制作者、适应架构和各层的数字摘要等
可以查看ubuntu镜像的详细信息,并通过-f参数可以快速定位,查看ubuntu镜像的创建时间:
docker inspect ubuntu
没有这个镜像,docker inspect ubuntu:14.04
docker inspect -f '镜像创建时间是:{{.Created}}' ubuntu:14.04
4.导出和导入镜像
(1)使用导出镜像(save)操作将镜像保存在本地
(2)使用导入镜像(load)操作,将镜像包加载到本地仓库中
5.发布镜像
(1)首先在dockerhub网站上注册账号
(2)假如在docker hub上,现有用户名为username,但是想要推送一个叫做user/image的镜像到docker hub上,怎么办?
网速太慢,导致登不上去试了好多次都不成功。终于在我的多次尝试之下,登陆成功了。
将镜像发布到docker hub中。
sudo docker push wjj/ubuntu:14.04
时不时的timeout真的是无语,然后就是重复试了好多次,终于把镜像发布上去了。
不过网速可真够差劲的,发布了将近1个小时!!!
6.删除镜像
(1)第一种删除镜像的方法是docker rmi不加-f,只能删除无tag的镜像,被曾经打过多处tag就无法直接删除,需要先删除tag,删除曾经启动过的容器,最后才能删除镜像。此时,tag可比作引用,image为tag指向的对象。
(2)加-f可以删除正在使用的镜像。
(3)如何删除本地全部镜像?
删除全部容器:docker rm $(docker ps -aq)
一条命令实现停用并删除容器:docker stop $(docker ps -q)& docker rm $(docker ps -aq)
(4)如果想要删除一个镜像,但是有容器正在使用它,该如何处理?
删除docker中的镜像,我们可以使用如下命令:docker rmi 镜像id
删除docker中的容器可以使用如下命令:docker rm 容器id
使用如下命令可以查看当前正在运行的容器:docker ps
对于已退出的容器,可以使用如下命令进行查看:docker ps -a
7.查看镜像历史
(1)查看一下ubuntu:14.04镜像的历史,并描述一下
docker image history ubuntu:14.04
镜像 创建时间 创建者 大小
8.通过已有镜像ubuntu:14.04启动一个容器,在容器中安装nginx,
用docker commit命令提交新容器为镜像。相关命令如下:
Docker commit [options] container [REPOSITORY[:TAG]]
docker run -it -p 80 --name commit_test ubuntu:14.04 /bin/bash
apt-get update
apt-get install -y nginx,然后exit退出容器。
docker commit -a ‘catherine’ -m ‘nginx’ commit_test catherine2005/commit_image1
docker images
docker run -d --name nginx_web1 catherine2005/commit_image nginx -g “daemon off;”(已创建)
docker ps
docker run -d –name nginx_web2 -p 80 catherine2005/commit_image1 nginx -g “daemon off;”
(9)再次查看容器
docker ps
此时应该可以看到端口映射出49155->80
(10)使用命令来查看index.html网站
curl http://127.0.0.1:49155
或者在浏览器上直接输入http://127.0.0.1:49155 就可以看到index.html网站
9.如何通过新建一个Dockerfile文件来构建一个和题目8一样的新镜像?
主要分为两步
sudo docker pull ubuntu:14.04
sudo docker pull quay.io/coreos/flannel:v0.10.0-amd64
sudo docker pull quay.io/latest/flannel:v0.10.0-amd64
sudo docker search –limit int TERM
sudo docker search –limit 5 TERM
sudo docker search –limit ubuntu
sudo docker search -s 20 ubuntu
sudo docker images --no-trunc
sudo curl -XGEThttp://192.168.217.8:5000/v2/nginx/tags/list