一、基本命令
1、docker version
作用:查看docker的版本信息
实例:
2、docker info
作用:显示 Docker 系统信息,包括镜像和容器数。
实例:
3、docker --help
作用:docker的帮助命令
实例:
二、镜像命令
1、docker images
作用:列出本地镜像
参数:
- -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)
- --digests :显示镜像的摘要信息
- -f :显示满足条件的镜像
- --format :指定返回值的模板文件
- --no-trunc :显示完整的镜像信息
- -q :只显示镜像ID。
实例:
docker images -a(列出本地所有的镜像)
docker images centos(列出本地镜像中REPOSITORY为centos的镜像列表)
2、docker search [OPTIONS] 镜像名字
作用:从Docker Hub查找镜像
参数:
- --automated :只列出 automated build类型的镜像;
- --no-trunc :显示完整的镜像描述;
- -f <过滤条件>:列出收藏数不小于指定值的镜像。
实例:
docker search --no-trunc centos(显示centos完整的镜像描述)
3、docker pull 镜像名称
作用:下载镜像
实例:
docker pull nginx
4、docker rmi 镜像名称或 ID
作用:删除指定的镜像
实例:
根据名称删除
根据ID删除
三、容器命令
在演示容器命令之前,需要有镜像,所以应该先pull一个镜像,以centos为例。
1、docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
作用:新建并启动容器
参数:
- --name="容器新名字": 为容器指定一个名称;
- -d: 后台运行容器,并返回容器 ID,也即启动守护式容器;
- -i:以交互模式运行容器,通常与 -t 同时使用;
- -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
- -P(大写): 随机端口映射;
- -p: 指定端口映射,有以下四种格式:ip:hostPort:containerPort、ip::containerPort、hostPort:containerPort、containerPort
- /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
实例:
docker run -it centos /bin/bash(启动交互式容器,以交互模式启动一个容器,在容器内执行 /bin/bash 命令)
2、docker ps [OPTIONS]
作用:列出当前所有正在运行的容器
参数:
- -a :列出当前所有正在运行的容器+历史上运行过的
- -l :显示最近创建的容器。
- -n:显示最近n个创建的容器。
- -q :静默模式,只显示容器编号。
- --no-trunc :不截断输出。
实例:
docker ps -n 5(显示最近5个创建的容器)
3、退出容器
(1)exit:容器停止退出
(2)Ctrl + P + Q:容器挂起退出
4、docker start 容器 ID 或者容器名
作用:启动一个已经停止的容器
实例:
docker start 81b3fb371aa6
注意:如果使用容器名,则必须只有一个,如果同时有两个或者多个centos被停止,此时如何使用docker start centos,则会出错。
5、docker restart 容器 ID 或者容器名
作用:重启容器
实例:
docker restart b78a5b873a0f
6、docker stop 容器 ID 或者容器名
作用:停止容器
实例:
docker stop b78a5b873a0f
7、docker kill 容器 ID 或者容器名
作用:强制停止容器
8、docker rm 容器 ID
作用:删除已停止的容器
一次性删除多个容器:
- docker rm -f $(docker ps -a -q)
- docker ps -a -q | xargs docker rm
9、docker run -d 容器名
作用:启动守护式容器
说明:使用镜像 centos:latest 以后台模式启动一个容器(docker run -d centos),然后 docker ps -a 进行查看, 会发现容器已经退出。如果Docker 容器后台运行,就必须有一个前台进程。当容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。这个是 Docker 的机制问题,比如web 容器,以 nginx 为例,正常情况下,我们配置启动服务只需要启动响应的 service 即可。例如service nginx start,但是这样做,nginx 为后台进程模式运行,就导致Docker 前台没有运行的应用,这样的容器后台启动后,会立即自杀因为它觉得自己没事可做了。所以,最佳的解决方案是,将要运行的程序以前台进程的形式运行。
10、docker log -f -t --tail 容器 ID
作用:查看容器日志
参数:
- -t 是加入时间戳
- -f 跟随最新的日志打印
- --tail 数字显示最后多少条
实例:
11、docker top 容器ID
作用:查看容器内运行的进程
实例:
12、docker inspect 容器ID
作用:查看容器内部细节
实例:
13、其他命令
(1)进入正在运行的容器并以命令行交互
- docker exec -it 容器 ID bashShell
- 重新进入docker attach 容器 ID
上述两个的区别:
- attach 直接进入容器启动命令的终端,不会启动新的进程
- exec 是在容器中打开新的终端,并且可以启动新的进程
(2)docker cp 容器 ID:容器内路径 目的主机路径
作用:从容器内拷贝文件到主机上
实例: