官方文档:https://docs.docker.com/engine/reference/commandline/docker/
菜鸟教程:https://www.runoob.com/docker/docker-command-manual.html
Docker的操作命令和可用参数非常多,经常不用容易生疏,做个文档记录一下做个备忘,持续补充…
镜像管理
images
docker images列出镜像信息,还有一个命令是image,是用于镜像操作的
常用命令
列出最近创建的镜像:docker images
列出某个仓库和Tag的镜像:docker images REPOSITORY:TAG
仅列出id:docker images -q
过滤未打tag的镜像:docker images --filter "dangling=true"
格式化输出:
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
rmi
docker rmi用于删除镜像
常用命令
强制删除镜像:docker rmi -f IMAGES
tag
docker tag标记本地镜像,将其归入某一仓库。不是修改镜像元信息,原来的镜像保留,生成一个新的镜像:docker tag busybox freeze/busybox:1.0
build
docker build构建镜像,之前也写了一篇关于dockerfile的文章,里面有更详细的介绍。
常用命令
使用dockerfile构建镜像:docker build - < Dockerfile或Get-Content Dockerfile | docker build -
打标签:docker build -t vieux/apache:2.0 .
history
docker history查看指定镜像的创建历史
常用命令
查看创建历史,不省略输出信息:docker history --no-trunc nginx
列出具体日期:docker history freeze/busybox:1.0 --human=false
格式化输出,列出创建命令:
docker history --format "{{.CreatedBy}}" --no-trunc nginx
仅输出镜像id:docker history busybox -q
load/save
docker save将指定(多个)镜像保存成 tar 归档文件。仅指定REPOSITORY会把所有关联的TAG也导出。
docker load导入使用 docker save命令导出的镜像。docker load 不能对载入的镜像重命名。
常用命令
导出:docker save busybox:1.32 > busybox_1.32.tar
导入:docker load < busybox_1.32.tar
commit
docker commit从容器创建一个新的镜像。一般用于调试,不建议用到实际生产,因为commit会提交额外的文件,添加新的层,并且commit内容不透明。
常用命令
本地提交:docker commit --author "Freeze" --message "修改index内容" webserver nginx:v1.1
修改镜像配置:docker commit --change "ENV DEBUG=true" c3f279d17e0a svendowideit/testimage:version3
diff
docker diff列出容器和镜像之间的差异文件,
A表示文件或目录添加
D表示文件或目录被删除
C表示文件或目录变更
镜像仓库
search
docker search搜索镜像
常用命令
限制输出,默认限制是25:docker search --limit=5 busybox
格式化输出,配合--no-trunc完整显示:
docker search --format "{{.Name}}: {{.Description}}" --no-trunc nginx
根据START过滤:docker search --filter=stars=10 busybox
过滤仅显示官方镜像:docker search --filter is-official=true busybox
login
docker login登录到镜像仓库
常用命令
交互式登录:docker login docker.io
通过文件流登录:cat ~/my_password.txt | docker login --username foo --password-stdin
push/pull
通过docker login成功登录镜像仓库后(这里使用的是默认的docker hub,私有仓库要在仓库前加地址),使用docker push USERNAME/busybox:1.0推送本地镜像到镜像仓库
使用docker pull USERNAME/busybox:1.0从镜像仓库中拉取镜像。
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏