【Docker】命令大全

news2024/9/22 18:13:39

文章目录

    • 基本命令
    • 镜像相关
      • docker images
      • docker pull
      • docker rmi
      • docker run
      • docker build
      • 镜像发布
      • 镜像常用命令
    • 容器相关
      • docker ps
      • docker logs
      • 容器常用命令
    • 数据卷相关
    • 网络相关
    • compose相关
    • swarm相关

基本命令

命令说明
docker version显示版本信息
docker info显示系统信息,包括镜像、容器数量
docker 命令 --help帮助

镜像相关

docker images

查看本地主机上的镜像(默认-a)

docker images [OPTIONS] [REPOSITORY[:TAG]]
选项:
	-a		列出所有镜像
	-q		只打印镜像的ID
docker images	[REPOSITORY[:TAG]]		#查看指定镜像的信息

docker pull

下载镜像到本地,不指定Tag,默认为latest

docker pull 镜像名[:Tag] 

docker rmi

删除镜像

docker rmi 镜像名[:Tag]	#根据名字删除镜像
docker rmi 镜像ID		#根据镜像ID删除
docker rmi -f 镜像ID		#强制删除镜像(如果容器已经启动则需先停止后方可删除)
docker rmi -f $(docker images -aq)		#批量删除所有镜像
docker rmi $(docker images -f "dangling=true" -q --no-trunc)	#删除悬浮镜像(Tag值为<none>)
docker image prune -a --force --filter "until=48h"	#删除48小时之前的镜像
docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=镜像id)	#查找镜像被哪些镜像引用了

如何删除none镜像 -> 删除none的镜像,要先删除镜像中的容器。要删除镜像中的容器,必须先停止容器!

  • 停止容器(这是一句废话)

    docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }')
    
  • 删除已经停止的容器

    docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }') 
    
  • 删除镜像

    docker rmi $(docker images | grep "none" | awk '{print $3}') 
    

docker run

docker run [选项] image

Eg:

docker run

-itd \

–privileged=true \

–name test \

–hostname test \

–restart unless-stopped \

–net=host \

–cpus=1 -m 512M \

-v /tmp:/tmp \

-w /opt \

-p 80:80 \

-e MYSQL_IP=192.168.1.1 \

–device=/dev/uhid \

docker.io/nginx:latest

  • -i: 即使未连接STDIN(标准输入)也保持打开状态,分配一个交互终端

  • -t:表示容器启动后会进入其命令行,与it一起使用。分配一个伪tty设备,可以支持终端登录

  • -d:让容器在后台运行并打印容器的ID。如果你的容器启动会打印日志,那边加-d选项在终端就看不到了,需要用docker logs -f 容器ID 查看

  • --privileged:授予此容器扩展特权,也就是开启特权模式;这种模式下容器对docker宿主机拥有root访问权限,允许我们以其宿主机具有(几乎)所有能力来运行容器,包括一些内核特性和设备访问,慎用

  • --name xxx:给容器取一个名字,用docker ps可以查看

  • --rm:退出容器后,容器会被删除,常用于测试

  • --hostname yyy:设置容器里面的主机名,登陆到容器里面可以看到

  • --restart unless-stopped :容器退出时的重启策略

    • no,默认策略,在容器退出时不重启容器
    • on-failure,在容器非正常退出时(退出状态非0),才重启容器
    • on-failure:3,在容器非正常退出时重启容器,最多重启3次
    • always,在容器退出时总是重启容器
    • unless-stopped,在容器退出时总是重启容器,如果容器正常stopped,然后机器重启或docker服务重启,容器将不会被restart

    更改已运行容器的重启策略:docker update --restart=always 容器ID/容器名

  • --network bridge:设置网络模式

    参数含义
    bridge使用docker daemon指定的网桥,默认为docker0;使用–net=bridge指定,为默认设置
    host容器使用主机的网络
    container:NAME_or_ID使用其他容器的网络,共享IP和PORT等网络资源
    none容器使用自己的网络,使用–net=none指定
  • --link:实现通过容器名访问

    docker run -d --name test2 --link test1 busybox sleep 3600

    • test2容器可以直接ping通test1容器名,但test1不能ping通test2容器名
    • 之所以能够Ping通,是因为把test1的IP地址与容器名、主机名的映射写入到了test2容器的/etc/hosts文件中
  • --cpus=1 -m 512M:设置容器CPU和内存的使用上限

  • -v:数据卷

    挂载时设置读写权限

    • ro:只读,在容器内只读,只能通过宿主机来操作
    • rw:读写
  • -w:指定容器的工作目录

  • -p 80:80:端口映射,前面为宿主机的端口,后面为容器服务进程端口,实现方式为iptables

  • -e:给容器声明环境变量,在容器内部可以通过export查看

  • --device:增加主机的一个设备到容器,也就是让容器拥有访问这个设备的权限

  • --shm-size:指定shm的大小,默认为64M

    –shm-size=200m

  • --dns 114.114.114.114:手动指定容器内部的DNS

  • --add-host www.a.com:1.1.1.1:手动往/etc/hosts 文件中注入主机名到 IP 地址的映射

  • docker.io/nginx:latest:为镜像名:TAG标签,如果不写TAG,默认为latest;也可以用镜像ID来代替

docker build

通过Dockerfile来制作镜像

解析命令链接地址:Dockerfile解析

docker build --pull -f /opt/Dockerfile -t 镜像名:Tag /opt

--pull  #确保 Docker 在构建镜像之前拉取你的 Dockerfile 中 FROM 语句中提到的镜像的更新
-f		  #指定Dockerfile文件,不指定默认为当前路径的Dockerfile
-t		  #指定新生成的镜像名:Tag
/opt	  #代表构建镜像的上下文,通常使用点(.)表示在当前路径

镜像发布

命令说明
docker login -u 用户名 -p密码 镜像仓库地址登录镜像仓库
docker tag 镜像名:Tag 镜像仓库地址/镜像名:Tag给镜像打Tag
docker push 镜像仓库地址/镜像名:Tag推送镜像到远程镜像仓库

镜像常用命令

命令说明
docker history 镜像ID查看镜像分层信息
docker history --format {{.CreatedBy}} --no-trunc=true 镜像ID查看镜像完整构建命令
docker inspect 镜像ID查看镜像详细信息
docker search 镜像名搜索镜像,默认从官方镜像仓库搜索
docker save 镜像名:Tag > nginx.tar把镜像打成一个tar包
docker load -i nginx.tar导入nginx镜像
docker system df查看docker磁盘使用情况
docker system prune -f删除停止的容器、至少一个容器未使用的所有网络、悬浮镜像、悬浮构建缓存;-f表示强制删除
docker system prune -a在上述基础上再删除没有任何容器使用的镜像、构建缓存

容器相关

docker ps

查看运行中的容器

docker ps -a 查看所有容器

docker logs

查看容器日志

docker logs [选项] 容器名

-f		#动态查看 
-t		#显示时间戳 
--tail 20	#显示最近的20行
--since 30m  #显示最近30分钟的日志
--since=“2018-02-08” # 指定时间之后日志
--since=“2018-02-08T13:23:37” --until “2018-02-09T12:23:37”  # 查看某段时间日志

容器常用命令

docker ps			#显示正在运行的容器
docker ps -a		#显示所有容器
docker ps -l		#显示最近的一个容器
docker ps -n2		#显示最近创建的两个容器
docker ps -q		#显示容器ID
docker start 容器名			#启动容器
docker restart 容器名		#重启容器
docker stop 容器ID或容器名	#停止容器
docker kill 容器名			#强制停止容器
docker rm 容器ID或容器名		#删除容器
docker rm -f 容器名			#强制删除容器,可以删除运行中的容器
docker rm -v 容器名			#删除容器的同时也删除与之关联的volume
docker top 容器名			#查看容器里面的进程
docker stats 容器名			#查看容器资源使用情况(不指定容器,会查看所有容器的使用情况)
docker inspect 容器名		#查看容器元数据
docker exec -it 容器ID bash	#进入容器,并分配一个新的终端
exit						#退出容器
docker cp /etc/hosts 容器名:/opt		#拷贝宿主机的hosts文件到容器的/opt目录下
docker cp 容器名:/opt/a.sh /tmp		#拷贝容器的a.sh文件到宿主机的/tmp路径下
docker pause 容器名			#暂停容器
docker unpause 容器名		#取消暂停容器

docker commit -m="提交信息" -a="作者" 容器id 新镜像名:[Tag]		#基于容器生成一个镜像(不推荐)
docker inspect -f '{{.HostConfig.LogConfig}}' 容器名	#查看容器日志策略
docker inspect --format "{{ .State.Pid }}" 容器名		#查看容器在宿主机对应的PID

数据卷相关

数据卷默认路径:/var/lib/docker/volumes/

命令说明
docker volume ls查看本地数据卷
docker inspect 卷名查看数据卷信息

网络相关

#创建docker01网络,-o指定通过ifconfig命令查看到的名字
docker network create docker01 --subnet=10.10.10.0/24 -o com.docker.network.bridge.name=docker01	
docker network ls				#列出docker网络
docker network inspect 网桥名字或ID	#查看网桥的详细信息
docker network rm 网桥名			#移除网络
docker network connect 网桥名 容器名	#将容器与网桥关联,表现形式为一个容器多个IP

compose相关

命令说明
docker-compose build建立或者重建服务
docker-compose config验证和查看Compose文件
docker-compose create创建服务
docker-compose down停止和删除容器,网络,镜像和卷
docker-compose events从容器接收实时事件
docker-compose exec登录正在运行的容器执行命令
docker-compose images镜像列表
docker-compose kill杀掉容器
docker-compose logs查看容器的输出
docker-compose pause暂停容器
docker-compose port为端口绑定打印公共端口
docker-compose ps容器列表
docker-compose pull下载服务镜像
docker-compose push上传服务镜像
docker-compose restart重启容器
docker-compose rm删除停止的容器
docker-compose run运行一次性的命令
docker-compose scale设置服务的容器数量
docker-compose start启动服务
docker-compose stop停止服务
docker-compose top显示运行过程
docker-compose unpause暂停服务
docker-compose up创建并启动容器

swarm相关

命令说明
docker swarm init初始化集群
docker swarm join-token worker查看工作节点的 token
docker swarm join-token manager查看管理节点的 token
docker swarm join加入集群中
命令说明
docker node ls查看所有集群节点
docker node rm删除某个节点(-f强制删除)
docker node inspect查看节点详情
docker node demote节点降级,由管理节点降级为工作节点
docker node promote节点升级,由工作节点升级为管理节点
docker node update更新节点
docker node ps查看节点中的 Task 任务
命令说明
docker service create部署服务
docker service inspect查看服务详情
docker service logs产看某个服务日志
docker service ls查看所有服务详情
docker service rm删除某个服务(-f强制删除)
docker service scale设置某个服务个数
docker service update更新某个服务
命令说明
docker stack deploy部署新的堆栈或更新现有堆栈
docker stack ls列出现有堆栈
docker stack ps列出堆栈中的任务
docker stack rm删除堆栈
docker stack services列出堆栈中的服务
docker stack down移除某个堆栈(不会删除数据)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/494255.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SOFA Weekly|开源之夏 MOSN 与 Layotto 项目简介、社区会议预告、社区本周贡献

SOFA WEEKLY | 每周精选 筛选每周精华问答&#xff0c;同步开源进展 欢迎留言互动&#xff5e; SOFAStack&#xff08;Scalable Open Financial Architecture Stack&#xff09;是蚂蚁集团自主研发的金融级云原生架构&#xff0c;包含了构建金融级云原生架构所需的各个组件&am…

作为精益敏捷根基的科学管理与福特、大野耐一、戴明、德鲁克

果总这个文&#xff0c;对中外管理的基因做了解析&#xff1a; 数字化和管理哲学 &#xff5c; 中国企业为啥用不好ERP却信中台和阿米巴 《科学管理》是一本被低估的书&#xff0c;国内的管理很多还停留在“你有科学&#xff0c;我有神功”的阶段。重新学习科学管理很有必要。 …

linux实现CP指令

实现CP指令只需要五步 1.打开Src文件&#xff08;源文件&#xff09; 2.读Src到Buf 3.打开Des文件&#xff08;目标文件&#xff09; 4.写Buf到Des 5.关闭Src和Des文件 代码如下&#xff1a; #include <sys/types.h> #include <sys/stat.h> #include <fcn…

IntelliNode:Node.js大模型访问统一接口库【Gen AI】

使用最新的 AI 模型更新你的应用程序可能具有挑战性&#xff0c;因为它涉及了解不同 AI 模型的复杂性并管理许多依赖项。 IntelliNode 是一个开源库&#xff0c;旨在通过提供统一且易于使用的界面来解决集成 AI 模型的挑战。 这使开发人员能够快速构建 AI 原型并使用高级 AI 功…

QT QFormLayout表单布局控件

本文详细的介绍了QFormLayout控件的各种操作&#xff0c;例如&#xff1a;新建界面、控件布局、添加控件、添加标签、标签插入、删除控件行、显示格式、总行数、列间距、行间距、行列间距、其它文章等等操作。 实际开发中&#xff0c;一个界面上可能包含十几个控件&#xff0c;…

【22-23 春学期】AI作业7-卷积

一、简单描述卷积、卷积核、多通道、特征图、特征选择概念。 卷积是一种数学运算&#xff0c;其实质是在两个函数之间进行积分运算。在计算机视觉领域中&#xff0c;卷积主要是通过滑动卷积核在输入数据上进行特征提取和图像处理。 卷积核是一组固定的权重参数&#xff0c;用于…

三星SmartThings Find设备数量超3亿,苹果Find My设备遍布全球

三星在发布的新闻稿中&#xff0c;表示 SmartThings Find 服务经历了爆炸式增长&#xff0c;全球累计注册、加入设备数量超过 3 亿台。 SmartThings Find 类似于苹果的“Find My”服务&#xff0c;用户可借助这项服务&#xff0c;定位三星 Galaxy 智能手机、平板电脑、手表、…

JAVA开发运维(软件一体化可观测平台的功能)

软件可观测是软件度量的一种。旨在对软件的数字体验、业务运营、网络性能、应用性能、基础设施、IT流程进行监控和数据刻画。使开发人员和运维人员更好的对软件进行优化维护。 一、数字体验&#xff1a; 用户会话 了解用户使用路径&#xff0c;追查使用过程中影响用户体验的…

代码随想录 LeetCode数组篇 移除元素

文章目录 27. 移除元素26. 删除有序数组中的重复项283. 移动零844. 比较含退格的字符串977. 有序数组的平方 27. 移除元素 我的思路&#xff1a; 简单来说&#xff0c;将要删除的元素放到数组的最后 当数组中的元素和val的值相同时&#xff0c;就和数组末尾的值进行交换。 所…

【JavaEE进阶】——第五节.SpringMVC学习介绍(下)(获取Cookies、Session和Header、IDEA热部署)

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;JavaEE进阶 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01; 文章目录 前言…

​射频PCB 设计​的六大条技巧

即使是最自信的设计人员&#xff0c;对于射频电路也往往望而却步&#xff0c;因为它会带来巨大的设计挑战&#xff0c;并且需要专业的设计和分析工具。这里将为您介绍六条技巧&#xff0c;来帮助您简化任何射频PCB 设计任务和减轻工作压力&#xff01; 1、保持完好、精确的射频…

如何将 Elasticsearch 和时间序列数据流用于可观察性指标 - 8.7

作者&#xff1a;Nicolas Ruflin Elasticsearch 用于多种数据类型 —— 其中之一就是指标。 随着多年前 Metricbeat 的推出以及后来我们的 APM 代理的推出&#xff0c;指标用例变得更加流行。 多年来&#xff0c;Elasticsearch 在如何处理指标聚合和稀疏文档等方面做出了许多改…

ES6-Class类

ES6 提供了更接近传统语言的写法&#xff0c;引入了 Class &#xff08;类&#xff09;这个概念&#xff0c;作为对 象的模板。通过 class 关键字&#xff0c;可以定义类。基本上&#xff0c; ES6 的 class 可以看作只是 一个语法糖&#xff0c;它的绝大部分功能&…

低代码开发重要工具:jvs-logic逻辑引擎的循环处理配置

循环操作是我们常常所见的业务处理方式&#xff0c;那么我们需要如何配置循环操作呢&#xff0c;我们接下来先看个简单的例子&#xff0c; 如下图所示&#xff0c;在一个列表页上&#xff0c;有个表级按钮&#xff0c;这个按钮是将本列表页的所有 “数量” 都 1 配置的思路通…

PostgreSQL+repmgr高可用部署

REPMGR 是一套在PostgreSQL服务器集群中用于管理复制和故障转移的开源工具 。它支持并增强了PostgreSQL的 内置流式复制&#xff0c;提供单个读/写主服务器 以及一个或多个只读备用数据库&#xff0c;其中包含主数据库的近实时副本服务器的数据库。 它提供了两个主要工具&#…

配电室设备监测怎么办?管理高手都是这样做的!

随着智能电网的不断推进&#xff0c;供配电安全也逐渐进入人们的视野&#xff0c;传统人工巡检的方式与当前智能化配电室的建设显得格格不入。 配电室&#xff0c;作为分配多路低压负荷开关的重要节点&#xff0c;其安全系数不言而喻&#xff0c;在管理和监控方面需要慎之又慎。…

数据结构初阶--链表OJ

目录 前言移除链表元素思路分析代码实现 链表的中间节点思路分析代码实现 反转链表思路分析代码实现 链表分割思路分析代码实现 合并两个有序链表思路分析代码实现 前言 本篇文章将对部分单链表的OJ题进行讲解 移除链表元素 我们先来看题 思路分析 我们可以采用双指针的方…

测试常见概念

文章目录 需求测试用例BUG软件生命周期开发模型scrum测试模型 需求 需求的概念&#xff1a;满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能&#xff0c;包含用户需求和软件需求 用户需求&#xff1a;可以简单理解为甲方提出的需求&#xff0c;如果没有甲方&…

java错题总结(19-21页)

链接&#xff1a;关于Java中的ClassLoader下面的哪些描述是错误的_用友笔试题_牛客网 来源&#xff1a;牛客网 B&#xff1a;先讲一下双亲委派机制&#xff0c;简单来说&#xff0c;就是加载一个类的时候&#xff0c;会往上找他的父类加载器&#xff0c;父类加载器找它的父类加…

Netty(1)

Netty 文章目录 Netty1 Netty 基本介绍2 why Netty2.1 原生 NIO 问题2.2 Netty 优点 3 I/O 线程模型3.1 传统阻塞 I/O 模型3.2 Reactor 模式3.2.1 Reactor 模式解决传统 I/O 方案3.2.2 Reactor 模式原理图3.2.3 Reactor 的核心组件3.2.4 单 Readcot 单线程(NIO模型)3.2.5 单 Re…