🎈1. 帮助启动类命令
启动 docker
systemctl start docker
停止 docker
systemctl stop docker
重启 docker
systemctl restart docker
查看 docker 状态
systemctl status docker
开机启动
systemctl enable docker
查看 docker 概要信息
docker info
查看 docker 总体帮助文档
docker --help
查看 docker 命令帮助文档
docker 具体命令 --help
🎈2. 镜像命令
列出本地主机上的镜像
docker images
options 说明
docker images -a //列出本地所有的镜像 docker images -q //只显示镜像ID
搜索镜像名称
docker search [options] 镜像名称
options 说明
docker search --limit 5 redis //只列出5个redis镜像,不加的话默认25个
下载镜像
docker pull 镜像名称[:TAG] // 没有TAG就是最新版,docker pull 镜像名称:latest
查看镜像/容器/数据卷所占的空间
docker system df
删除镜像
docker rmi -f 镜像ID //删除单个镜像 docker rmi -f 镜像名1:TAG 镜像名2:TAG //删除多个镜像 docker rmi -f $(docker images -qa) // 删除全部
🎈3. 容器命令
容器是运行在镜像的基础之上的,因此,首先需要下载一个镜像,以 ubuntu 为例
docker pull ubuntu //docker pull centos
新建并启动容器
docker run [options] image [command][arg...]
options 说明:
--name="容器新名字" 为容器指定一个名称 -d:后台运行容器并返回容器ID,即启动守护式容器(后台运行) -i: 以交互模式运行容器,通常与 -t 同时使用 -t: 为容器重新分配一个伪输入终端,通常与-i同时使用,即启动交互式容器(前台有伪终端,等待交互) -P: 随机端口映射,大写 P -p: 指定端口映射,小写 p
启动前台交互式容器
docker run -it ubuntu /bin/bash 参数说明: -i:交互式操作 -t: 终端 ubuntu: ubuntu 镜像 /bin/bash: 放在镜像后的命令
如果想要退出,直接输入 exit 命令
列出当前所有正在运行的容器
docker ps [options]
options 说明
-a: 列出当前所有正在运行的容器和历史运行过的 -l: 显示最近创建的容器 -n: 显示最近n个创建的容器 -q: 静默模式,只显示容器编号
退出容器
//两种退出方式 //1.run 运行容器,exit退出,容器停止 exit //2.run运行容器,crtl+p+q退出,容器不停止 ctrl+p+q
启动已停止运行的容器
docker start 容器ID或容器名
重启容器
docker restart 容器ID或者容器名
停止容器
docker stop 容器ID或容器名
强制停止容器
docker kill 容器ID或容器名
删除已停止的容器
docker rm 容器ID // 一次性删除多个容器实例 docker rm -f $(docker ps -a -q) docker ps -a -q | xargs docker rm
启动守护式容器(后台服务器)
docker run -d 容器名
以启动镜像 ubuntu 为例,以后台模式启动一个容器
docker run -d ubuntu
之后,使用命令docker ps -a
进行查看,会发现容器已经退出了。
由于 docker 的机制问题,docker 容器后台运行,就必须有一个前台进程。 容器运行的命令如果不是那些一直挂起的命令(比如运行 top, tail),就会自动退出。
以 nginx 为例,通常情况下,我们配置启动服务只需要启动响应的 service 即可,例如 service nginx start,但是这样做 nginx 为后台进程模式运行,就导致 docker 前台没有运行的应用,这样的容器后台启动后,会觉得无事可做而立即“自杀”。因此,最佳解决方法就是,将要运行的程序以前台进程的形式运行。最常见的就是命令行模式,表示还有交互操作不中断。
查看容器日志
docker logs 容器ID
查看容器内运行的进程
docker top 容器ID
查看容器内部细节
docker inspect 容器ID
进入正在运行的容器并以命令行交互
docker exec -it 容器ID bashShell
执行 exit 后,重新进入 docker,但是这次使用如下命令
docker attach 容器ID
可看到,在执行 exit 命令之后,再次查看运行的容器,发现此时没有正在运行的容器了!
这是因为,attach 直接进入容器启动命令终端,不会启动新的进程,用 exit 退出,会导致容器的停止。然而,exec 是在容器中打开新的终端,并且可以启动新的进程,用 exit 退出,不会导致容器的停止。推荐使用 docker exec 命令,这样退出容器终端时,不会导致容器的停止!
从容器内拷贝文件到主机
docker cp 容器ID:容器内路径 目的主机路径
导入和导出容器
export 导出容器的内容留作为一个tar归档文件[对应import命令] import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]
案例演示:将容器名为 ubuntu 导出,内容留为一个归档文件,之后删除 docker 中的容器 ubuntu。再将归档文件导入到 docker 容器,创建 ubuntu 镜像实例。
导出容器:
导入容器
🎈4. Docker 常用命令可视化
对于一些常用的命令,docker 官方也作了总结,如下图所示