Docker常用命令
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 [OPEIONS]
OPTIONS:
1、-a:列出本地所有的镜像(含历史镜像)
2、-q:只显示镜像ID - 查找镜像:docker search [–limit nums] 镜像名字
–limit nums:显示点赞数,使用前nums的镜像 - 下载镜像:docker pull 镜像名字[:TAG]
:TAG(注意有冒号):版本号,不加则默认下载最新版(相当于加了:latest) - 查看镜像/容器/数据卷所占的空间:docker system df
- 删除镜像:docker rmi [-f] 镜像名字或镜像ID
-f:镜像被某个容器使用时,会删除失败,可以用-f强制删除
删除单个:docker rmi -f 镜像名字/镜像ID
删除多个:docker rmi -f 镜像名字1:TAG/镜像ID1 镜像名字2:TAG/镜像ID2
删除全部:docker rmi -f $(docker images -qa) - 面试题:谈谈docker虚悬镜像是什么?
仓库名、标签都是的镜像,俗称虚悬镜像。
3、容器命令
-
新建容器:docker pull IMAGE[:TAG]
-
启动容器:docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
OPTIONS:
1、–name=“容器新名字”:为容器指定一个名称
2、-d:后台运行容器并返回容器ID,也即启动守护式容器(后台运行)
3、-i:以交互模式运行容器,通常与-t同时使用
4、-t:为容器重新分配一个伪输入终端,通常与-i同时使用;也即启动交互式容器(前台有伪终端,等待交互)
5、-P:随机端口映射
6、-p:指定端口映射
-
列出当前所有正在运行的容器:docker ps [OPTION]
OPTION:
1、-a:列出当前所有正在运行的容器+历史上运行过的
2、-l:显示最近创建的容器
3、-n:显示最近n个创建的容器
4、-q:静默模式,只显示容器编号
-
退出容器:
exit:run 进去容器,exit退出,容器停止
ctrl+p+q:run 进去容器,ctrl+p+q退出,容器不停止 -
启动已停止运行的容器:docker start 容器ID或容器名
-
重启容器:docker restart 容器ID或容器名
-
停止容器:docker stop 容器ID或容器名
-
强制停止容器:docker kill 容器ID或容器名
-
删除已停止的容器:docker rm 容器ID或容器名
-
一次性删除多个容器实例:
docker rm -f $(docker ps -qa)
docker ps -qa | xargs docker rm -
查看容器日志:docker logs 容器ID
-
查看容器内运行的容器:docker top 容器ID
-
查看容器内部细节:docker inspect 容器ID
-
进入正在运行的容器并以命令行交互
docker exec -it 容器ID /bin/bash
docker attach 容器ID
上述两个命令的区别:
1、attach直接进入容器启动命令的终端,不会启动新的进程。用exit退出,会导致容器的停止。
2、exec是在容器中打开新的终端,并且可以启动新的进程。用exit退出,不会导致容器的停止。【建议使用这个】 -
从容器内拷贝文件到主机上:docker cp 容器ID:容器内路径 目的地主机路径
-
导入导出容器(用于数据迁移备份):
docker export 容器ID > 文件名.tar
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
4、创建新镜像
docker commit -m="描述信息" -a="作者" 容器ID [路径/]要创建的目标镜像名[:标签名]