Docker常用命令大全
2021-11-15 本文已影响0人
文景大大
Docker常用的客户端就是Docker命令行,因此掌握常用的命令也是非常必要的。但也不是要求我们对所有命令都烂熟于心,那样的时间成本也比较高,可以大致有个印象,需要的时候可以看看笔记文档、或者查查操作手册。
通常情况下,可以通过以下两种方式来查询想要使用的命令详情:
- 客户端输入
docker
或者docker --help
就能查看简易版的命令行列表; - 访问官方命令行文档查阅详尽版的命令行介绍;
如下是平时常用的命令及状态关系图:
docker常用命令介绍一、管理命令
-
docker version
,查看docker客户端及服务端的版本信息; -
docker info
,查看docker容器的详细信息,除了如上版本信息,还有镜像、容器数据卷、容器网络、Registry地址、物理配置等信息; -
docker --help
,查看命令帮助;
二、镜像命令
-
docker images
,查看本地所有顶层镜像(top level)信息的命令,按照创建时间倒序展示 ;-
docker images -a
,查看本地所有镜像信息的命令,包含中间层; -
docker images -q
,只显示镜像ID; -
docker images name:tag
,根据镜像name:tag来查看详细信息,不支持模糊搜索;
-
-
docker history
,查看镜像的历史信息;-
docker history name:tag
,查看name:tag对应镜像的历史信息;
-
-
docker search
,镜像搜索命令;-
docker search name
,根据镜像name进行搜索; -
docker search --filter=stars=1000 name
,增加筛选条件,只查询stars数量在1000以上的;
-
-
docker pull
,拉取镜像;-
docker pull name:tag
,根据name和tag拉取镜像;
-
-
docker rmi
,移除镜像;-
docker rmi name:tag
,根据name和tag删除镜像,该镜像如果已经生成容器则不能删除;如果同一个镜像有多个tag,则只有当最后一个tag删除时才会删除镜像; -
docker rmi -f name:tag
,强制删除镜像,如论是否创建容器; -
docker rmi -f ${docker images -q}
,强制删除本地所有镜像; -
docker rmi id
,根据镜像ID删除镜像,会先删除所有tag,然后删除镜像;
-
-
docker build
,构建镜像;-
docker build -f container_path/dockerfile -t name:tag .
,指定dockerfile构建name:tag镜像,注意最后有一个.符号;
-
-
docker save
,导出镜像,适用于需要将镜像安装到没有网络条件的服务器上的场景;-
docker save -o E:\httpd.zip httpd:latest
,将本地仓库中的httpd镜像导入到指定目录的指定文件中;
-
-
docker load
,从指定文件中加载镜像,适用于在无网络条件的服务器上使用;-
docker load -i E:\httpd.zip
,从指定目录的指定文件中加载镜像到本地仓库中;
-
-
docker tag
,给指定的镜像打tag,常用于指定别名,用于上传到远程镜像仓库场景;-
docker tag httpd:latest zhangxun/httd:latest
,一个镜像两个tag,删除任意一个都不会删除镜像,只有当所有tag都删除了才会真正删除镜像;但是如果删除镜像ID,则会先删除所有tag,再删除镜像; -
docker tag id zhangxun/httpd:latest
,对指定ID的镜像打tag; -
docker tag id test.tecentcloudcr.com/project/httpd:latest
,在新tag前面加上registry地址,表示后续将该镜像推送到指定的远程仓库,而非官方的Docker Hub;
-
-
docker push
,将镜像推送到远程镜像仓库;-
docker push zhangxun/httpd:latest
,默认是推送到Docker Hub的远程仓库,一定要加上用户名前缀,否则无法推送,没有用户名前缀的都是官方镜像; -
docker push test.tecentcloudcr.com/project/httpd:latest
,推送到指定的远程仓库;
-
三、容器命令
-
docker run
,新建并启动容器命令;-
docker run -it name
,以交互方式新建启动容器,此处name为image的,非容器的,此时容器name随机; -
docker run --name newname name
,新启动的容器指定名称为newname; -
docker run -d name
,以守护方式启动容器; -
docker run -it -v local_path:container_path name
,-v是指挂载数据卷,使得主机和容器地址挂载; -
docker run --name name02 --volumes-from name01 name:tag
,启动name02容器,共享name01数据卷,name01称为数据卷容器; -
docker run -it --network=bridge name
,启动容器使用某个指定的网络;
-
-
docker start
,启动容器命令;-
docker start name
,这里的name是容器的name;
-
-
docker restart
,重启容器命令;-
docker restart name
,这里的name是容器的name;
-
-
docker stop
,停止容器命令; -
docker kill
,杀掉正在运行中的某个容器; -
docker rm
,移除容器; -
docker ps
,查看容器命令;-
docker ps -q
,只显示容器ID; -
docker ps -a
,显示正在运行和历史运行过的容器信息; -
docker ps -l -n num
,显示最近创建的num个容器信息;
-docker container ps
和docker container ls
的效果和docker ps
完全一样;
-
-
docker top
,查看容器中的进程信息;-
docker top name
,查看name容器中的进程信息; -
docker container top name
效果完全一样。
-
-
docker stats
,查看容器的运行情况资源占用情况;-
docker stats name
,查看某个容器的运行情况; -
docker container stats
,效果完全一样;
-
-
docker logs
, 查看容器中的日志;-
docker logs -f -t --tail=20 name
,查看name容器中的日志,-f表示跟踪日志输出,-t显示时间戳,--tail n,只显示最新的n条日志信息;
-
-
docker inspect
,查看docker容器的详细信息;-
docker inspect name
,查看某个容器的详细信息;
-
-
docker attach
,进入容器;-
docker attach name
,进入正在运行的容器name的命令行,显示该容器的运行信息;
-
-
docker exec
,进入容器并执行命令;-
docker exec -it name cmd
,以交互方式进入容器name,同时执行cmd命令;
-
-
docker commit
,打包生成镜像;-
docker commit -a="author" -m="commit info" name newname:tag
,写上作者、提交信息,并将当前容器打包为newname:tag的容器;
-
-
docker cp
,容器与宿主机之间的数据拷贝;推荐使用数据卷的功能,所以这个命令实际中不常用;-
docker cp name:/container_path local_path
,将name容器中container_path路径下内容cp到宿主机的local_path路径下; -
docker cp local_path name:/container_path
,将宿主机的local_path路径下内容cp到name容器中container_path路径下
-
-
docker volume
,查看数据卷的信息;-
docker volume ls
,查看所有存在的数据卷信息; -
docker volume inspect name
,查看数据卷的详细信息,比如对应主机的路径; -
docker volume create name
,创建一个name名称的数据卷;
-
-
docker network
,网络设置相关;-
docker network ls
,查看宿主机上docker的网络列表; -
docker network inspect name
,根据name查看某个具体网络的信息; -
docker network create --driver bridge --subnet 172.17.0.0/16 --gateway 172.17.0.1 yourNetName
,创建自定义网络,指定网络类型、子网范围以及网关地址;
-
-
docker export
,导出容器;-
docker export -o /root/docker/httpd-01.tar container-id
,将某个容器(无论是否正在运行)导出到指定路径的指定文件;
-
-
docker import
,导入容器;-
docker import /root/docker/httpd-01.tar - test/imagename:tag
,从指定路径导入容器,同时创建一个基于容器快照的镜像;
-