Docker命令

基础命令

docker version          #查看docker的版本信息
docker info             #查看docker的系统信息,包括镜像和容器的数量
docker 命令 --help       #帮助命令(可查看可选的参数)
	docker command --help
	docker images --help

命令官方文档:https://docs.docker.com/engine/reference/commandline/docker/

镜像命令

  • 查看镜像
docker images  # 查看本地主机的所有镜像

REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
hello-world   latest    18e5af790473   3 weeks ago   9.14kB

docker images -aq  # -a/--all 列出所有镜像 ;-q/--quiet 只显示镜像的id
docker images --help # 帮助命令
  • 搜索镜像
docker search mysql
# 搜索收藏数大于3000的镜像
docker search mysql --filter=STARS=3000
  • 下载镜像

docker pull 镜像名[:tag]

docker下载镜像是分层下载。比如同一个mysql的不同版本会复用相同的分层包
分层下载,docker image的核心-联合文件系统

docker pull mysql  # 如果不写tag默认就是latest
docker pull mysql:5.7  # 指定版本下载
  • 删除镜像

docker rmi

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

容器命令

  • 拉取容器
docker pull centos  
  • 运行容器
docker run [可选参数] image

#参数说明
--name="名字"           指定容器名字
-d                     后台方式运行
-it                    使用交互方式运行,进入容器查看内容
-p                     指定容器的端口
(
-p ip:主机端口:容器端口  配置主机端口映射到容器端口
-p 主机端口:容器端口
-p 容器端口
)
-P                     随机指定端口(大写的P)

  • 进入容器
docker run -it centos /bin/bash
  • 退出容器
exit  # 停止并退出容器(后台方式运行则仅退出)
Ctrl+P+Q   # 不停止容器退出
  • 列出运行过的容器
docker ps  # 列出当前正在运行的容器
docker ps -a   # 列出所有容器的运行记录
docker ps -n=?  # 显示最近创建的n个容器
docker ps -q   # 只显示容器的编号
  • 删除容器
docker rm 容器id                 #删除指定的容器,不能删除正在运行的容器,强制删除使用 rm -f
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 centos 

问题: docker ps 发现centos停止了。
常见的坑:docker容器启动后台运行,就必须有一个前台进程,docker发现没有应用就会自动停止。
比如:nginx容器启动后,发现自己没有提供服务就会立刻停止。

  • 日志查看
docker logs --help
docker logs -tf 容器id
docker logs --tail number 容器id  # num为要显示的日志条数

docker run -d centos /bin/sh -c "while true;do echo hi;sleep 5;done"  # 执行shell脚本
docker logs -tf --tail 10 容器id  # 输出日志
  • 查看容器中进程信息
docker top 容器id
  • 查看容器的元数据
docker inspect 容器id
  • 进入当前正在运行的容器
docker exec -it c703b5b1911f /bin/bash  # 方式一
docker attach c703b5b1911f  #  方式二

docker exec 进入容器后开启一个新的终端,可以在里面操作
docker attach 进入容器正在执行的终端,不会启动新的进程

  • 从容器内拷贝文件
docker cp c703b5b1911f:/home/test.java /home

docker cp 容器id:容器内路径 目的主机路径
从主机拷贝到容器内使用挂载。拷贝是手动过程,可以使用 -v 卷的技术实现自动同步。

posted @ 2021-10-20 11:02  狻猊的主人  阅读(50)  评论(0编辑  收藏  举报