docker 常用的命令

本贴最后更新于 2053 天前,其中的信息可能已经时过境迁

列表显示

docker image ls   #列出已经下载下来的镜像

docker system df  #查看镜像、容器、数据卷所占用的空间

docker image ls -f dangling=true  #列出所有虚悬镜像

docker image prune  #删除所有虚悬镜像

docker image ls -a   # 列出所有中间层镜像

docker image ls ubuntu  #列出指定名称(ubuntu)的镜像

docker image ls ubuntu:16.04 #列出特定的某个镜像(ubuntu:16.04),也就是说指定仓库名和标签

docker image ls -f since=mongo:3.2  # 过滤某个镜像显示

docker image ls -q #列出所有镜像的id

 docker image ls --format "{{.ID}}: {{.Repository}}"  #列出镜像只包含镜像ID和仓库名
 
 
docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"  #以表格等距显示,并且有标题行


删除

# 如果要删除本地的镜像,可以使用 docker image rm 命令,其格式为:

docker image rm [选项] <镜像1> [<镜像2> ...]

docker image rm 501ad78535f0  #通过ID(501ad78535f0)删除

docker image rm centos  #通过镜像名称(centos)删除

docker image ls --digests  # 列出所有摘要


# 镜像摘要 删除镜像
docker image rm node@sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b164422be228  


docker image rm $(docker image ls -q redis) #删除所有仓库名为 redis 的镜像


docker image rm $(docker image ls -q -f before=mongo:3.2)  #删除所有在 mongo:3.2 之前的镜像
$ docker run --name webserver -d -p 80:80 nginx

这条命令会用 nginx 镜像启动一个容器,命名为 webserver,并且映射了 80 端口



docker exec -it webserver bash  # 进入webserver容器


docker diff webserver # 看到容器具体的改动


docker commit 的语法格式为:

docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]

我们可以用下面的命令将容器保存为镜像:

docker commit \
    --author "Tao Wang <twang2218@gmail.com>" \
    --message "修改了默认网页" \
    webserver \
    nginx:v2

使用 Dockerfile 定制镜像

空白镜像

FROM scratch
...

docker build 命令进行镜像构建。其格式为:

docker build [选项] <上下文路径/URL/->

ONBUILD

onbuild

容器

# 启动已终止容器
docker container start


#终止容器
docker container stop



  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    491 引用 • 917 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...