这篇写一下docker的一些常用命令。
1.帮助命令
#显示docker当前的版本信息
docker version #显示docker当前的版本信息
docker info #显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help
也可以在Docker官方进行查询命令帮助,地址为:Reference documentation | Docker Documentation 。
2.镜像命令
docker images #查看当前本地主机上的镜像
-a 列出所有镜像
-q 只显示镜像的id
docker search #搜索镜像
例:docker search mysql #搜索镜像名包含mysql的镜像
--filter=STARS=3 点赞星数不小于3的镜像
docker search --filter is-official=true --filter stars=3 nginx
is-official是否官方镜像
is-automated是否自动构建
docker pull #下载镜像(拉取)
例如:docker pull mysql #后面可以加tag参数,如果不加则默认拉取最新版本(latest)
指定版本下载,docker pull mysql:5.7
注:版本号需确定有
Digest防伪签名。有的有docker.io,为真实地址,等价于镜像名。
docker pull采用分层下载。
docker rmi #删除镜像
可使用docker rmi -f id号 删除镜像
注:后面还可以加REPOSITORY或TAG来删除,-f是强制删除的意思
若想删除所有镜像,可使用docker rmi -f $(docker images -aq) #查找出所有镜像并删除
可使用docker rmi -f 镜像id 镜像id 镜像id 来删除多个镜像
docker system df
磁盘空间大小总览
插入一个面试问题:何为docker的虚悬镜像?
仓库名、标签都是<none>镜像,俗称虚悬镜像(dangling images)。也有id和大小,但是空占内存。可使用命令docker images -f dangling=true列出。
3.容器命令
有镜像之后才可以创建容器。
docker run #新建一个容器并启动,后可加命令
--name="Name" 为容器指定一个名字 用于区分容器
-d 后台运行容器,并返回容器id
-it 以交互方式运行,并为容器重新分配一个伪输入终端
-P(大写) 指定容器端口
-P 主机端口:容器端口 -P 容器端口
-P ip:主机端口:容器端口 也可以直接写容器端口
-p(小写) 随机指定一个端口
例:docker run -it centos /bin/bash
注:想退出并停止容器,使用exit命令。若想退出但不停止容器,则使用Ctrl+P+Q
docker ps #查看当前在运行的容器
-a 显示所有容器
-q 静默模式,只显示容器编号
-l 显示最近创建的容器
docker rm 容器id #删除已停止的容器
docker rm -f $(docker ps -aq) 删除所有容器
-f 强制删除
docker start 容器id 启动已停止的容器
docker restart 容器id 重启容器
docker stop 容器id 停止容器
docker kill 容器id 强制停止容器(杀死容器)
需注意的误区,docker run -d 容器,docker ps 发现容器自己停止了。原因在于,容器使用后台运行就必须要一个前台进程,若docker发现无前台进程,则会自动停止。
启动守护式容器(后台服务器)
大部分场景下Docker的服务需在后台运行。
docker run -d redis
此处使用-d,因为有进程存在,所以容器不会自动停止
docker logs 容器id
查看容器日志
docker top 容器id
查看容器内运行进程
docker inspect 容器id
查看容器细节
docker exec -it 容器id /bin/bash
重新进入已创建的容器
docker attach 容器id
重新进入容器
exec是在容器中打开新的终端,并且可以启动新的进程,用exit退出不会导致容器停止。
attach直接进入容器启动命令的终端,不会启动新的进程,用exit退出会导致容器停止。
docker cp 容器id:容器内路径 目的主机路径 #容器>主机
从容器内拷贝文件到主机
export导出容器的内容留作为一个tar归档文件。
import从tar包中的内容创建一个新的文件系统再导入为镜像。
docker export 容器id > 文件名.tar #默认为存放在当前路径
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号