【Docker】命令大全

news/2025/1/3 5:19:21/

文章目录

    • 基本命令
    • 镜像相关
      • 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.ppmy.cn/news/60296.html

相关文章

8b/10b编码方式(详细)总结附实例快速理解

目录 前言一、简介二、转换过程2.1 背景2.2 具体转换过程 三、其他相关链接1、PCIe物理层总结-PCIE专题知识&#xff08;一&#xff09;2、PCIe数据链路层图文总结-PCIe专题知识&#xff08;二&#xff09;3、PCIe物理层链路训练和初始化总结-PCIe专题知识&#xff08;三&#…

STM32 匿名助手提升电机控制调试效率(下位机代码和上位机操作演示)

目录 前言 通信协议选择 上位机配置实现 下位机代码实现 通信效果演示 总结 前言 前面介绍了通过VOFA上传变量并显示成波形方便调试的方法&#xff0c;VOFA上传的是浮点&#xff0c;一个浮点需要4个byte才能够表示&#xff0c;这对本就不是很快的串口带来说有不小负担&am…

PowerJob客户端连接

本文来说下PowerJob客户端连接 文章目录 启动服务端编写示例代码编写自己的处理器启动示例程序任务配置与运行配置任务创建任务执行结果运行结果问题及解决 本文小结 启动服务端 启动服务端&#xff1a;http://127.0.0.1:7700/#/oms/home 编写示例代码 进入示例工程&#xff08…

【C++】三元操作符、创建并初始化C++对象、C++new关键字

C的三元操作符 if的语法糖 例1 #include <iostream> #include <string>static int s_Level 1; static int s_Speed 2;int main() {if (s_Level > 5){s_Speed 10;}else{s_Speed 5;}std::cin.get(); }用三元操作符&#xff1a; s_Speed s_Level > 5 ?…

Vuex从了解到实际运用(一)彻底搞懂什么是Vuex

vuex从了解到实际运用——彻底搞懂什么是vuex 知识回调&#xff08;不懂就看这儿&#xff01;&#xff09;场景复现核心干货什么是vuex全局状态管理使用状态管理工具后的好处vuex的实现原理vuex的组件通信1.多级组件通信2.同级组件通信使用vuex进行组件通信 关于vuex的小结 知识…

揭秘|从帕丽斯·希尔顿引领其帝国进入元宇宙学到的品牌建设经验

你是否曾想过&#xff0c;元宇宙是如何与世界上的知名品牌和名人达成合作的&#xff1f;在本期的文章中&#xff0c;我们邀请了 11:11 媒体的 Web3 和元宇宙总监 Cynthia Miller&#xff0c;一起探讨帕丽斯希尔顿如何通过 Parisland 和 Cryptoween 将她的帝国带入 The Sandbox&…

【C++】string 类的实现

目录 构造函数赋值重载关于浅拷贝 迭代器容量相关reserveresize 修改push_backappendinserterase关于npos 流运算符重载流插入流提取 构造函数 无参数构造和传参构造 通过对参数设置缺省值为空串""同时满足无参构造和传参构造成员 _size 和 _capacity 均是针对有效…

Web端3D轻量化引擎基于PBR渲染——仿真模拟更逼真

HOOPS Communicator在2021版本中&#xff0c;推出了基于PBR&#xff08;Physically Based Rendering&#xff09;的渲染特性以提供更高质量的渲染技术。 PBR将材料表示为一系列方程&#xff0c;这些方程对光如何从表面反射进行建模&#xff0c;再通过GPU上运行的着色器代码进行…