本文是我在学习《Docker技术入门与实战》第3版(杨保华 戴王剑 曹亚仑编著)时所做的笔记,有许多描述不清楚的地方,建议自行购买学习。
使用docker镜像
获取镜像
docker [image] pull [URL/]NAME[:TAG]
image可要可不要,URL为仓库地址(不写的话默认官方仓库地址registry.hub.docker.com),NAME为镜像名称,TAG为版本号(不写的话默认最新的版本号latest,不看镜像具体的版本号)
例如,从官方获取ubuntu18.04系统,执行命令:
docker pull ubuntu:18.04
从第三方获取镜像ubuntu:latest(没找到免费能用的第三方仓库,so,就这么看吧,后续看看私库怎么访问好了):
docker pull #{url}/ubuntu
运行ubuntu:18.04:
docker run -it ubuntu:18.04 bash
如果镜像没有下载,也可直接执行上述命令,docker发现本地没有的话会自动从官方仓库下载,例如,直接执行
docker run -it ubuntu bash,之前并没有获取ubuntu:latest,仍然可以执行成功
查看镜像列表
docker images
或
docker image ls
从命令的运行结果可以看到上一节安装完docker后,测试docker时运行hello-world时下载的hello-world的镜像,TAG是latest,也就是默认最新的版本号。之前运行docker pull ubuntu:18.04时下载的ubuntu:18.04和运行docker run -it ubuntu bash时下载的ubuntu:latest镜像,这两个镜像的IMAGE ID一样,所以这两个镜像其实是同一个镜像。
使用tag命令添加镜像标签
docker tag ubuntu:latest myubuntu:latest
执行后可使用docker images查看镜像列表。tag命令其实是给镜像起个别名而已。
使用inspect命令查看镜像详细信息
docker [image] inspect NAME[:TAG]
查看指定属性
docker inspect -f {{".Architecture"}} ubuntu:18.04
查看镜像历史
docker history ubuntu:18.04
搜索镜像
搜索nginx:
docker search nginx
只看官方的nginx:
docker search --filter=is-official=true nginx
删除和清理镜像
docker rmi IMAGE 或docker image rm IMAGE
IMAGE可以是镜像名:版本号,也可以是IMAGE ID
删除之前创建的镜像别名
docker rmi myubuntu
或者删除hello-world
docker image rm fce289e99eb9
提示
容器占用中,执行
docker rm 5e3cb4abe56f
删掉容器后执行
docker image rm fce289e99eb9
清理镜像
只清理系统中遗留的临时的镜像文件
docker image prune
子命令
-a:删除所有无用的镜像
-f:强制删除镜像,不提示确认
创建镜像
基于已有容器创建
重新创建一个容器
记住容器id
7c05d9332455
执行
docker commit -m “create a new image” -a “duanhun” 7c05d9332455 myubuntu:0.0.1
子命令
-m:备注
-a:作者
基于Dockerfile创建
找个目录创建文件Dockerfile,代码:
From ubuntu
LABEL verison="1.0" maintainer="duanhun"
RUN apt-get update && \
apt-get install -y git && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
在当前目录执行:
docker build -t my-git:0.0.1 .
my-git:0.0.1表示提交的镜像名和版本号,最后一个.是指Dockerfile所在目录
然后查看下镜像列表,可以尝试运行下。
存出镜像
命令:
docker save -o my-git_0.0.1.tar my-git:0.0.1
载入镜像
先删掉已有的my-git:0.0.1镜像,确定my-git:0.0.1已经删除后,执行命令:
docker load -i my-git_0.0.1.tar
或者
docker load < my-git_0.0.1.tar
尝试运行重新导入的my-git:0.0.1。如果有条件的话可以尝试放到另一台部署过docker的电脑上尝试运行。
上传镜像
上传镜像时,默认上传到Docker Hub官方仓库中,因此需先到官方docker Hub上注册个账号,然后执行命令:
docker login -u #{yourUserName} -p #(yourPassword}
docker tag my-git:0.0.1 user/my-git:0.0.1 #打个标签
docker push user/my-git:0.0.1