docker常用命令详解
一、启动类命令
- 启动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
二、镜像命令
1、docker images
作用:查看本地所有镜像
使用:docker images
- -a 列出所有镜像
- -q 只显示镜像ID
同一个仓库源可以有多个tag版本(如mysql 有5.7;8.0版本)。一般我们使用repository:tag 来定义不同镜像,如果不指定tag版本,默认最新版本。(例如使用ubuntu,docker默认使用ubuntu:latest镜像)
2、docker search
作用:查看远程仓库镜像
使用:docker search [镜像名称]
--limit [数量]:列出前几个
--filter is-official=true 只显示官方
标题说明: name:镜像名称 description:镜像说明 stars:点赞数 official:是否官方发布的 automated:是否自动构建
3、docker pull
作用:从远程仓库下载镜像到本地
使用:docker pull [镜像名称]:[tag版本号]
没有tag默认拉取最新的
4、docker rmi
作用:删除镜像
使用:
- 删除单个:docker rmi -f [镜像ID]
- 删除多个:docker rmi -f [镜像ID1] [镜像ID2]
- 删除全部:docker rmi -f $(docker images -qa)
6、什么是docker虚悬镜像?
仓库名和标签都是none的情况,
7、镜像的导出和导入
- 导出
作用:export导出容器的内容作为一个tar文档文件[对应import命令]
语法:docker export [容器ID] > [文件名.tar]
- 导入
作用:import从tar包
中的内容创建一个新的文件系统再导入为镜像
[对应export]
语法:cat [文件名.tar] | docker import /path/to/container.tar 镜像用户/镜像名:镜像版本号
三、容器命令
1、docker run
作用:新建、启动容器
语法:docker run [options] image [command][arg...]
- IMAGE:要运行的Docker镜像的名称或ID。
- command:在容器中要运行的命令。如果不提供,将使用镜像中的默认命令。
- arg:命令的参数,可以有多个。
--name=
:给容器指定一个名称,不使用则会随机分配一个名称-d
:后台运行容器并返回一个容器ID (后台守护式容器,部分容器会在启动后自杀,也就是启动未成功,如:ubuntu)-i
:以交互模式运行容器,通常和-t同时使用(前台交互式容器)-t
:为容器重新分配一伪输入终端,通常和-i同时使用(前台交互式容器)-P
:随机端口映射,大写P-p
:指定端口映射,小写p-v
:指定容器卷- --privileged=true 特权模式:赋予容器几乎与主机相同的权限
2、docker ps
作用:列出当前所有正在运行的容器
语法:docker ps
docker ps -a
options常用说明:
-a
:列出当前所有正在运行的容器 + 历史上运行过得容器以及状态-l
:显示最近创建的容器-n
:显示最近n个创建的容器-q
:静默模式,只显示容器编号
3、进入、退出容器
进入容器命令: docker exec -it [容器id] bash
docker exec -it [容器id] bash #报错时可以尝试 bash ----> /bin/sh
docker exec -it -p root [容器id] bash #以root角色进入容器
docker attach [容器id]
推荐使用docker exec命令,因为docker attach命令使用exit退出,会导致容器停止,而docker exec命令不会)
退出容器两种方式:
exit
:run进去容器,exit退出,容器停止ctrl+p+q
:run进去容器,ctrl+p+q退出,容器不停止
4、容器重启、停止、删除
docker start [容器ID]
:启动已经停止运行的容器docker restart [容器ID]
:重启容器docker stop [容器ID]
:停止正在运行的容器docker kill [容器ID]
:强制停止正在运行的容器docker rm [容器ID]
:删除已经停止的容器docker rm -f [容器ID]
:强制删除容器docker rm -f $(docker ps -aq)
:一次性删除多个容器(谨慎使用)
5、容器日志、进程
- 查看容器日志:
docker logs [容器ID]
- 查看容器进程:
docker ps -a | grep [名称]
例:docker ps -a | grep mysql ; docker ps -a | grep redis- 查看容器内运行的进程:
docker top [容器ID]
- 查看容器内部细节:
docker inspect [容器ID]
6、docker commit
启动容器并进入容器。修改容器内容后保存为新的镜像
docker commit \
-m "Description of changes" \
-a "Author" \
my_container_name new_image_name:new_tag
- 其中,
-m
后面跟的是提交信息,描述你做了哪些修改。-a
是作者信息。my_container
是之前运行的容器名称。new_image_name:new_tag
是新镜像的名称和标签。
7、查看容器的详细信息
docker inspect [容器ID]
8、docker system df
作用:查看镜像/容器/数据卷所占用空间
使用:docker system df
9、docker cp 复制
docker cp /home/user/myfile.txt abc123:/app/
从主机复制到容器:
docker cp /home/user/myfile.txt [容器ID]:/app/
从容器复制到主机:
docker cp [容器ID]:[容器内路径] [目的主机路径]
例:docker cp mysql-connector-java-8.0.3.jar 4708051f2055:/app/WEB-INF/lib
docker cp 958443b97285:/tmp/a.txt /download