docker(3):docker常用命令

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25448409/article/details/85245666

帮助命令

版本验证

docker version

docker容器描述

docker info

镜像命令

列出本地主机上的镜像

docker images [optopns]

-a          列出本地所有镜像,包含中间映射层
-q          只显示当前镜像的imageID
--digests   镜像的摘要信息
--no-trunc  显示完整的镜像信息  
  • repository 镜像的仓库源
  • tag 镜像标签
  • image id 镜像id
  • created 镜像创建时间
  • size 镜像大小

查询某个镜像的名字

docker search [optopns] 镜像名字

--no-trunc      显示完整的镜像描述
-s              列出收藏数不小于指定值得镜像  eg: -s 30
--automated     只列出automated build类型的镜像

下载镜像

docker pull 镜像名字[:TAG]

TAG默认latest

删除镜像

docker rmi 镜像名字[:TAG]

强制删除     docker rmi -f 镜像名字[:TAG]|镜像id
删除多个     docker rmi 镜像名 镜像名
删除所有     docker rmi -f $(docker images -qa)

容器命令

依照centos为例 docker pull centos

新建并启动容器,本地有直接启动,本地没有去hub拉

docker run [OPTIONS] IMAGE [COMMAND] [ARG]

OPTIONS说明(常用)

--name = “容器新名字”       为容器指定一个名称
-d                          后台运行容器,并返回容器ID,也既启动守护式容器
-i                          以交互模式运行容器,通常与-t同时使用
-t                          为容器重新分配一个伪输入终端,通常与-i
-P                          所及端口映射
-p                          指定端口映射,有一下四种格式
                            ip:hostPoint:containerPort
                            ip:containerPort
                          * hostPort:containerPort
                            containerPort

eg:

运行centos容器并进入终端

docker run -it 5182e96772bf

列出当前所有 正在运行 的容器

docker ps [OPTIONS]

-a          列出当前所有正在运行的容器+历史上运行过的
-l          显示最近创建的容器
-n          显示最近n个创建的容器
-q          静默模式,只显示容器编号
--no-trunc  

退出容器

  • exit 容器停止退出
  • ctrl + P + Q 容器不停止退出

启动容器

docker start 容器ID或容器名

重启容器

docker restart 容器ID或容器名

停止容器

docker stop 容器ID或容器名

强制停止容器

docker kill 容器ID或容器名

删除已停止的容器

docker kill 容器ID

一次性删除多个容器

  • docker rm -f $(docker ps -a -q)
  • docker ps -a -q | xargs docker rm

重要

启动守护式容器

docker run -d 容器名

问题:然后docker ps -a查看,发现容器已经退出

很重的说明一点:docker容器后台运行,就必须有一个前台进程,容器运行的命令如果不是那些一直挂起的命令(比如运行top,tiil),就会自动退出

这个是docker机制的问题,比如你的web容器,我们以nginx为例,正常情况下,我们配置启启动服务只需要启动相应额service即可。例如service nginx start但是,这样做是nginx后台进程模式运行,导致docker前台没有运行的应用。这样的容器后台启动后,会立即杀死因为他觉得他没事可做了。

所以最佳解决方案是,将你运行的程序以前台进程的形式运行。

查看容器日志

docker logs -f -t --tail 容器ID

- -t 是加入时间戳
- -f 跟随最新的日志打印
- --tail 数字显示最后多少条

查看容器内运行的进程

docker top 容器ID

查看容器内部的细节

docker inspect 容器ID

进入正在运行的容器并以命令行交互

  • docker exec -it 容器ID [bashShell]
  • docker attach 容器id

区别:

  1. attach 直接进入容启动命令终端,不会启动新的进程

  2. exec 实在容器中打开新的终端,并且可以启动新的进程(不进入终端,你直接给我返回结果)

从容器内拷贝文件到主机上

docker cp 容器ID:容器内路径 目的主机路径

猜你喜欢

转载自blog.csdn.net/qq_25448409/article/details/85245666