Docker常用命令

帮助命令

#查看 docker 版本信息
docker version

#查看 docker 系统信息
docker info

#查看 docker 所有命令
docker --help

镜像命令

docker images #查看所有本地的主机上的镜像
REPOSITORY			TAG		    	IMAGE ID			CREATED				SIZE
hello				latest			ba4inx3gs1			4 months			13.3kB
#解释
REPOSITORY			#镜像的仓库源
TAG					#镜像的标签
IMAGE ID			#镜像的id
CREATED				#镜像的创建时间
SIZE				#镜像的大小
#可选项
-a, --all			#列出所有的镜像
-q, --quiet			#只显示镜像的id

===================================================================================

docker search #搜索镜像
#可选项
--filter=STARS=3000 #搜索出来的镜像就是STARS大于3000的

===================================================================================

docker pull #下载镜像
docker pull 镜像名称
Using default tag : latest 			#如果不写 tag,默认就是latest
latest:Pulling from library/镜像名称
xxxxxxx:Pull complete				#分层下载,docker image的核心,联合文件系统
Digest:xxxxxxx						#签名
Status:xxxxxxx
docker.io/library/镜像名称:latest 	#真实地址

#指定版本下载
docker pull xxx:n.n

===================================================================================

docker rmi	#删除镜像
docker rmi -f 镜像id 				#删除指定镜像
docker rmi -f 镜像id 镜像id 镜像id	#删除多个镜像
docker rmi -f $(docker images -aq)	#删除全部镜像

容器命令

docker run [可选参数] image
#参数说明
--name="name"	容器名字 xxx xxx,用来区分容器
-d				后台方式运行
-it				使用交互方式运行,进入容器查看内容 
-p				指定容器的端口 -p 端口号
-P				随机指定端口

===================================================================================

docker ps 命令 	#列出当前正在运行的容器
-a				#列出当前运行的容器+历史运行过的容器	
-n=?			#显示最近创建的容器
-q				#只显示容器的编号

===================================================================================

exit			#停止容器退出
Ctrl+P+Q		#不停止容器退出

===================================================================================

docker rm 容器id						#删除指定容器,不能删除正在运行的容器
docker rm -f $(docker ps -aq)		#删除所有的容器,可以删除正在运行的容器
docker ps -a -q|xargs docker rm		#删除所有的容器

===================================================================================

docker start 容器id			#启动容器
docker restart 容器id		#重启容器
docker stop 容器id			#停止当前正在运行的容器
docker kill 容器id			#强制停止当前容器

常用其他命令

#后台启动命令
docker run -d 镜像名

#问题docker ps ,发现镜像停止了
#常见的坑:docker容器使用后台运行,就必须要有一个前台进程,docker发现没有,就会立即停止
#nginx,容器启动后发现自己没有提供服务,就会立即停止,就是没有程序了
#查看日志
docker logs -f -t --tail 容器  #没有日志

#自己编写一段shell脚本
docker run -d 容器 /bin/sh -c "while true;do echo xxx;sheep 1;done"

#显示日志
-tf			#显示日志
--tail num	#要显示日志条数
#查看容器中进程信息
docker top 容器id
UID			PID			PPID		C		SEIME		TTY
root		22314       22115		0		21.21		?
#查看镜像的元数据
docker inspect 容器id
#进入当前正在运行的容器
#我们容器通常都是使用后台方式进行的,需要进入容器,修改一些配置

#方式一
docker exec it 容器id bashShell

#方式二
docker attach 容器id

#区别
docker exec		#进入容器后开启一个新的终端,可以在里面操作(常用)
docker attach	#进入容器正在执行的终端,不会启动新的进程
#从容器内拷贝文件到主机上,容器关闭也没事,只要容器运行过就行
docker cp 容器id:容器内路径 目的地主机路径