Docker 常用命令大全

更新时间 2022-09-07 21:36:48

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 50w+ 字,讲解图 2200+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 1700+ 小伙伴加入学习 ,欢迎点击围观

Docker 常用命令导图:

Docker 常用命令导图Docker 常用命令导图

基本命令

命令说明
docker info检查当前容器的安装情况(包括镜像数、容器书、多少个物理机节点)
docker version查看当前安装的 Docker 的版本信息

容器生命周期相关命令

命令说明
docker run -d -p x:x --name xxx 镜像id以后台方式运行容器
docker create --name xxx nginx:latest创建一个新的容器,但是不启动
docker start/stop/restart启动\停止\重启一个容器
docker kill 容器id终止一个运行中的容器,kill 不管是否同意,直接强制终止
docker rm -vf 容器id删除一个或者多个容器
docker exec -it id bash进入到容器内部
docker attach进入到容器内部

容器操作相关命令

说明命令
docker ps -a | grep xxxx显示某一个组件 XXX 的容器列表
docker inspect id获取容器或者镜像的元数据
docker top id查看容器中运行的进程信息
docker stats id实时显示容器资源的使用统计
docker events从服务器获取实时事件
docker logs id查看容器内的标准日志输出
docker port id列出指定容器的端口映射
docker cp ./t.txt id:/root/将宿主机当前目录下的 t.txt 复制到 id 容器中的 root 目录下
docker diff id列出该容器自创建以来,容器内部文件的变化
docker commit -m "comment" -a "authon" 容器id repository:tag将指定容器打包成一个本地镜像
docker update --memory=16G修改容器运行中的配置,即时生效无需配置

本地镜像管理相关命令

命令说明
docker images列出本地宿主机上的所有镜像
docker history id查看指定镜像的分层结构以及创建历史
docker image inspect id查看镜像的元数据信息
docker rmi id根据镜像 id 删除镜像
docker tag image-name:tag给指定镜像增加 tag
docekr build -t tag .通过当前目目录下的 Dockerfile 来构建一个标签为 tag 的镜像
docker export -o xxx.tar id将镜像打包成文件
docker import xxx.tar name从归档文件中创建镜像
docker save -o xxx.tat id将指定镜像保存为归档文件
docker load --input xxx.tar用于将 docker save 生成的归档文件还原成镜像

镜像仓库相关命令

命令说明
docker loging -u xxx -p xxx登录一个 docker 镜像仓库,如果未指定镜像仓库地址,则默认为Docker Hub镜像仓库
docker logout退出登录的镜像仓库
docker pull nginx从默认的 Docker hub 上拉取 nginx 镜像
docker push image_name将本地镜像上传到镜像仓库(注意需要先登录)
docker search xxx从默认的 Docker Hub 中搜索指定的镜像

参数命令

以下汇总 docker run 命令支持的相关参数:

容器运行相关参数

参数说明
-a,--attach=[]是否绑定到标准输入、输出、和错误.
-d,--detach=true|false是否在后台运行,默认为 false
--detach-keys=""从attach模式退出的快捷键,默认是 Ctrl+P
--entrypoint=""镜像存在入口命令时覆盖新的命令.
-expost=[]暴露出来的镜像端口
--group-add=[]运行容器的用户组
-i保持标准输入打开
--ipc=""容器 IP 命名空间
--isolation="default"容器使用的隔离机制
--log-driver=""指定容器的日志驱动类型
--log-opy=[]传递给日志驱动的选项
--net="bridge"指定容器的网络模式
--net-alias=[]容器在网络中的别名
--volume=[=[HOST-DIR]:]CONTAINER-DIR:[:OPTIONS]]挂载宿主机上的数据卷到容器内
--volume-driver=""挂载数据卷的驱动类型.
--volumes-from=[]其他容器挂载数据卷

容器环境配置相关参数

参数说明
--add-host=[]在容器内添加一个宿主机名到 IP 地址的映射关系,修改 HOST 文件
--device=[]映射物理机上的设备到容器
--dns-search=[]指定容器 DNS 搜索域
--dns-opt=[]自定义的 DNS 选项
--dns=[]自定义的 DNS 服务器
-e,-env=[]指定容器内的环境变量
-env-file=[]从文件中读取环境变量到容器内
-h,--hostname=""指定容器中的主机名
--ip=""指定容器内 ip4 的地址
--ip6=""指定容器内 ip6 的地址
--link=[id]连接到其他容器,不需要其他容器暴露端口
--name==""指定容器的别名

CPU 相关参数

参数说明
--cpu-shares=0允许容器使用 CPU 资源的相对权重,默认一个容器能用满一个 CPU,用于设置多个容器竞争 CPU 时,各个容器相对能分配到 CPU 时间占比
--cpu-period=0限制容器在 CFS 调度下 CPU 占用的时间片,用于绝对设置容器能使用的 CPU 时间
--cpu-quota=0限制容器在 CFS 调度器下的 CPU 配额,用于绝对设置容器能使用 CPU 的时间
--cpuset-cpus=""限制容器能使用那些 cpu 核数
--cpuset-mems=""NUMA 架构下使用那些核心内存

内存资源相关参数

参数说明
--kernel-memory=""限制容器使用内核的内存大小
-m,--memory=""限制容器内应用使用内存的大小
--memory-reservation=""当系统中内存过小时,容器会被强制限制内存到给定值默认情况下等于内存限制值
--memory-swap="LIMIT"限制容器使用内存和交换分区的大小
--oom-kill-disable=true内存耗尽时是否终止容器
--oom-score-adj=""调整容器的内存耗尽参数
--memory-swappiness="0-100"调整容器的内存交换分区参数

容器磁盘 IO 控制相关参数

参数说明
--device-read-bps限制此设备上的读速率
--device-read-iops通过每秒读 IO 次数限制指定设备的读速率
--device-write-bps限制此设备的写速率
--device-write-iops通过每秒写 IO 次数限制指定设备的写速率
--blkio-weight容器默认磁盘 IO 的加权值
--blkio-weight-device针对特定设备的 IO 加权控制