2.Docker常用命令

208 阅读2分钟

Docker常用命令

1.帮助命令

docker version 		 #docker的版本信息
docker info    		 #docker的系统信息
docker stats        #查看cpu的状态
docker 命令 --help   #万能命令 

2.镜像命令

docker images  		  #查看所有的镜像; -a 列出所有镜像; -q 只显示镜像的id
docker search 镜像名  #查询镜像
docker pull 镜像名:版本号    #下载镜像,不写版本号则默认下载最新的
docker rmi  镜像id    #删除镜像
docker rmi -f $(docker images -aq) #删除所有镜像

3.容器命令

3.1启动容器

docker run [可选参数] 镜像名
#参数说明
	--name 名字 #容器名字
	-d     	   #后台方式运行
	-it        #使用交互方式运行,进入容器查看内容, 最后加上/bin/bash
	-p         #指定容器的断后  -p ip:主机端口:容器端口; -p 主机端口:容器端口(最常用); -p 容器端口
	-v 主机的目录:docker容器内的目录        #挂载数据卷,双向绑定,无论是两者谁新增的文件,另一方都会同步
										  #即便容器没有启动,我们在宿主机内改动文件,那么容器启动后文件也会改变
										  #docker run -it -v /var/local/centos:/home  centos
	                                      #具名挂载 -v 数据卷名:容器内目录:ro ro只读 rw读写 
	                                      #匿名挂载 -v 容器内目录  生成的数据卷名是乱码
	                                      #指定目录挂载 -v 主机内目录:容器内目录
  docker volume ls               #查看所有挂载的情况
  docker volume inspect 数据卷名  #查看具名挂载的详情
  
   --volume-from 容器名           #把fromn后面的容器的数据卷复制到自己的容器里,如果父容器的数据卷内容
                                  #有变化,那么子容器挂载的数据卷也会发生变化,解决多个容器的数据共享
                                  #如果父容器被删除,那么我们的其他容器的数据卷也不会被删除。


3.2查看容器

docker ps       #查看当前正在运行的容器 
#参数说明
	-a			#带出历史运行过的容器; 
	-q 			#只显示容器id; 
	-aq 		#查询所有容器的id;
	-n=数字     #查询最近的指定的数量的容器

3.3退出容器

exit 		  #直接停止容器并退出
ctrl + P + Q  #容器不停止退出

3.4删除容器

docker rm 容器id 				  #删除指定容器,不能删除正在运行的容器,如果强制删除则是 docker rm -f 
docker rm -f $(docker ps -aq)   #删除所有的容器
docker ps -a -q|xargs docker rm #删除所有的容器

4.常用其他命令

4.1后台启动容器

#后台启动容器
docker run -d 镜像名
#问题:当我们启动后会发现,容器会自动停止
#docker容器以后台运行时,就必须有要有一个前台进程

4.2查看日志

docker logs 
#自己编写一段shell脚本
docker run  -d centos /bin/sh -c "while true;do echo lybing;sleep 1;done"
#参数说明
	-tf #显示日志
	--tail 数字 容器id #要显示的日志条数

4.3查看容器中的进程信息

docker top 容器id

4.4 查看容器的元数据

docker inspect 容器id

4.5进入当前正在运行的容器

#我们容器通常是使用后台方式运行的,需要进入容器,修改一些配置
#方式一 进入后开启一个新的终端,可以在里面操作,常用
docker exec -it 容器id bashshell #bashshell 就是我们查看容器元数据的 path里面的内容
#方式二 进入容器正在执行的终端,不会启动新的终端,比如我们当前容器正在打印字符串,那么我们
#进入的终端也会一直在打印,而exec则不会
docker attach 容器id

4.5从容器内拷贝文件到主机上

#进入容器内部,创建文件
docker cp 容器id:容器内的文件路径(带文件名) 主机内的路径(只要路径)