Docker命令(用法说明详解)
一、常见Docker容器命令
#根据image创建一个新容器并运行(即使该image已经存在容器,也会再创建一个新容器)
docker run IMAGE_NAME
#根据image创建一个新容器并运行。
#选项-d:指定容器为后台运行,--name自定义该容器名
docker run -d --name myname IMAGE_NAME
#根据image创建一个新容器并运行。
#选项-p:指定将容器内的80端口通过外部宿主机的2288端口暴露出去
docker run -d --name myname -p 2288:80 IMAGE_NAME
#根据image创建一个新容器并运行。
#选项-e:指定环境变量key=value。可以多个-e选项以指定多个环境变量
docker run -d --name myname -p 2288:80 -e Key1=Value1 -e Key2=Value2 IMAGE_NAME#交互模式进入容器内部(可以指定CONTAINER_ID或者容器名)
docker exec -it CONTAINER_ID /bin/bash#查看正在运行中的容器
docker ps
#查看所有容器(各种状态)
docker ps -a
#停止容器
docker stop CONTAINER_ID
#启动容器
docker start CONTAINER_ID
#重启容器
docker restart CONTAINER_ID
#查看正在运行容器占用CPU、MEM、网络等资源情况(可以指定CONTAINER_ID)
docker stats
#查看容器日志
docker logs CONTAINER_ID
#删除指定容器
docker rm CONTAINER_ID
#强制删除指定容器(可强制删除正在运行中的容器)
docker rm -f CONTAINER_ID# 查看指定容器/镜像/卷/网络等对象的详细信息
docker inspect CONTAINER_ID
docker inspect IMAGE_NAME:TAG
docker inspect VOLUME
docker inspect NETWORK
docker inspect ......
二、常见Docker镜像命令
#下载镜像。不显示指定TAG,则TAG默认为:latest。
docker pull IMAGE_NAME
#下载指定版本(Tag)镜像
docker pull IMAGE_NAME:TAG
#查看本地所有镜像
docker images
#删除本地指定镜像
docker rmi IMAGE_ID# 以指定容器ID(或获容器名)的当前现状,创建一个新镜像
docker commit -a "Author名" -m "提交说明" CONTAINER_ID NEW_IMAGE_NAME:TAG
# 将指定镜像,导出保存为tar文件
docker save -o myimage.tar IMAGE_NAME:TAG
# 从本地tar文件加载作为镜像
docker load -i mynginx.tar
# 删除本地多个镜像
docker rmi bde7d154a67f 94543a6c1aef e784f4560448#在线搜索镜像
docker search IMAGE_NAME# 查看指定容器/镜像/卷/网络等对象的详细信息
docker inspect CONTAINER_ID
docker inspect IMAGE_NAME:TAG
docker inspect VOLUME
docker inspect NETWORK
docker inspect ......
三、镜像发布至DockerHub
首先需在DockerHub网页上完成用户注册(http://hub.docker.com/)
# 首先需在DockerHub网页上完成用户注册(http://hub.docker.com/)# 通过以下命令,按提示登录至DockerHub
docker login# 对本地镜像,增加一个TAG。新TAG应符合DockerHub规范:用户名/镜像名:TAG
docker tag LOCAL_IMAGE_NAME:TAG username/NEW_IMAGE_NAME:TAG
#注意增加TAG后,同一个IMAGE_ID会有多个TAG名# 推送镜像至DockerHub(这里不同通过IMAGE_ID指定,因为同一个IMAGE_ID会有多个TAG名)
docker push 用户名/镜像名:TAG
#推送成功后,在DockerHub网页上可以看到
四、容器:目录挂载
在创建容器时,可以有两种方式将外部宿主机目录挂载至容器中:
- docker run --mount type=bind,src=<host-path>,dst=<container-path>
- docker run --volume <host-path>:<container-path>
推荐使用--mount因为更加清晰,且选项更多。命令示例说明如下:
# 根据image创建一个新容器并运行。
# 选项--mount:将外包宿主机的/app/outdir目录(若目录不存在则报错)mount至容器内的/usr/share/nginx/html挂载点
# 选项--mount可以多次出现,实现多个目录mount挂载
docker run -d --mount type=bind,src=/app/outdir,dst=/usr/share/nginx/html IMAGE_NAME# 根据image创建一个新容器并运行。
# 选项-v:将外包宿主机的/app/outdir目录(若目录不存在则自动创建)mount至容器内的/usr/share/nginx/html挂载点
# 选项-v可以多次出现,实现多个目录mount挂载
docker run -d -v /app/outdir:/usr/share/nginx/html IMAGE_NAME
挂载后,容器看到的内容为外部宿主机目录内容(容器内原内容被obscured掩盖)
- --mount方式。 除以上选项外,还支持readonly、bind-propagation选项。若外部宿主机目录不存在则会报错,不会自动创建
- --volume方式。外部宿主机目录host-path必须是目录形式,若外部宿主机目录不存在则会自动创建。
五、容器:卷映射
在Docker官方更推荐使用Volume卷映射方式进行数据生成和存储。
Volume卷为外部宿主机上的概念,可与容器内指定目录进行映射。 有两者方式创建卷Volume:
- docker volume create 直接创建卷
- docker run --volume <value-name>:<container-path> 在创建容器时创建卷并映射
在外部宿主机上直接创建卷,命令说明如下:
# 创建一个名为my-vol的卷(卷默认在外部宿主机的/var/lib/docker/volumes下)
docker volume create my-vol# 列出卷
docker volume ls# 删除没有被容器使用的卷
docker volume prune# 查看某个卷已被哪些容器使用
docker ps -a --filter "volume=卷名"# 删除my-vol卷
docker volume rm my-vol# 查看指定容器/镜像/卷/网络等对象的详细信息
docker inspect CONTAINER_ID
docker inspect IMAGE_NAME:TAG
docker inspect VOLUME
docker inspect NETWORK
docker inspect ......
在创建容器时同时创建卷并映射,命令说明如下:
# 根据image创建一个新容器并运行。
# 选项-v:将my-vol卷(若卷不存在则创建卷)映射至容器内的/etc/nginx目录。映射后,容器看到的内容为卷内容(容器内原内容被obscured掩盖)
# 若my-vol为空卷empty volume,则自动将容器内映射目录下内容拷贝propagated(copied)至该卷。也可通过选项volume-nocopy禁止拷贝。
# 若my-vol已存在内容,既非空卷non-empty volume,则不会拷贝propagated(copied)。
# 选项-v可以多次出现,实现多个卷映射
docker run -d -v my-vol:/etc/nginx IMAGE_NAME
将my-vol卷(若卷不存在则创建卷)映射至容器内的/etc/nginx目录。映射后,容器看到的内容为卷内容(容器内原内容被obscured掩盖)
- 若卷my-vol无数据,既空卷empty volume,则自动将容器内容映射目录下内容拷贝propagated(copied)至该卷。也可通过选项volume-nocopy禁止不拷贝
- 若卷my-vol已存在数据,既非空卷non-empty volume,则不会进行拷贝propagated(copied)。
六、网络
在Docker自动创建了名为“bridge”、“host”等网络。在创建容器时不特别指定,则容器默认使用名为“bridge”网络。
通过查看名为“bridge”网络详细信息如下。包括该网络IP段、已分配IP的容器、该网络在宿主机上Linux的网络接口名(可以通过Linux操作系统的ifconfig命令查看)等信息。
通过名为“bridge”网络,可以在各个容器内,通过的IP地址互访(对于上图,通过172.17.0.x地址进行容器之间互访)。
然而,默认的名为“bridge”网络只能通过IP地址互访,无法通过域名进行容器之间互访。解决方式是:
- ①自行创建一个网络;
- ②在创建容器时指定使用自建的网络,即可实现通过域名进行容器之间互访。
命令过程示例如下,这样cntr001和cntr002容器即可通过IP互访,也可以通过容器名互访。
# 自建一个网络:名为“mynet”,Driver为bridge,不纳入Linux操作系统网卡管理
docker network create mynet
# 或者
docker network create --driver bridge --subnet=172.99.99.0/24 --gateway=172.99.99.1 mynet# 根据image创建一个新容器并运行。
# 选项--network:指定网络。不指定默认使用名为“bridge”的网络
docker run -d --network mynet --name "cntr001" IMAGE_NAME
docker run -d --network mynet --name "cntr002" IMAGE_NAME
# 这样cntr001和cntr002容器即可通过IP互访,也可以通过“容器名”互访
相关文章:

Docker命令(用法说明详解)
一、常见Docker容器命令 #根据image创建一个新容器并运行(即使该image已经存在容器,也会再创建一个新容器) docker run IMAGE_NAME #根据image创建一个新容器并运行。 #选项-d:指定容器为后台运行,--name自定义该容器…...
leetcode 热题100(131. 分割回文串)c++
链接:131. 分割回文串 - 力扣(LeetCode) 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 示例 1: 输入:s "aab" 输出ÿ…...

vs2022编译opencv 4.10.0
参考:Windosw下Visual Studio2022编译OpenCV与参考区别在于,没有用cmake GUI,也没有创建build目录,直接用vs2022打开了C:\code\opencv目录,即CMakeLists.txt所在根目录。没有修改默认下载地址,采用手动下载…...
Bash 中的 2>1 | tee 命令详解
Bash 中的 2>&1 | tee 命令详解 在 Linux 和 Unix 系统中,命令行提供了强大的输出控制功能,能够灵活地处理标准输入(stdin)、标准输出(stdout)和标准错误(stderr)。本文将详…...

MySQL数据库的日志
一、概论 日志(log)是一种记录系统运行时各种状态和事件的文件。 它通常用于系统监控、故障排查、安全审计和性能分析。日志文件可以记录用户操作、系统错误、应用程序行为等信息。日志文件通常包含时间戳、事件类型、事件描述等关键信息,以…...
DataCap 2024.4.1 版本发布:MongoDB 驱动支持、工作流引擎升级
尊敬的 DataCap 用户: DataCap 2024.4.1 版本现已正式发布。本次更新包含多项重要功能升级和性能优化,现将主要更新内容公布如下: 核心功能升级 数据库功能增强 (实现功能) 新增数据库管理功能:支持创建、删除和切换数据库完善表…...
二十三种设计模式-单例模式
单例模式(Singleton):确保一个类只有一个实例,并提供一个全局访问点。 单例模式两种实现方法:懒汉式和饿汉式。 懒汉式(Lazy Initialization) 懒汉式单例模式在第一次被使用时才创建实例&…...
【微服务】SpringBoot 国际化适配方案使用详解
目录 一、前言 二、国际化概述 2.1 微服务中的国际化是什么 2.1.1 国际化概念 2.1.2 为什么需要国际化 2.2 微服务中常用的国际化方法 2.2.1 资源文件分离 2.2.2 使用国际化框架 2.2.3 使用动态模板 2.2.4 使用数据库存储 2.2.5 API设计结合配置中心 三、SpringBoot…...

太阳能电池板缺陷识别数据集,使用yolo,coco json,pasical voc xml格式标注,可识别旁路二极管,电池故障,热点,2234张原始图片
太阳能电池板缺陷识别数据集,使用yolo,coco json,pasical voc xml格式标注,可识别旁路二极管,电池故障,热点,2234张原始图片 以下是该项目的一些用例: 太阳能发电厂监控:该模型可用于自动化检查和识别大型…...
客户案例:基于慧集通平台集成打通小满CRM+金蝶云星空+钉钉
一、引言 本案例原型公司是一家生物科技公司,公司自开创以来专注于体外诊断生物活性原材料的研究、生产、销售和服务,致力于为全球体外诊断试剂生产企业提供领先且具有竞争力的核心原料和相关辅助产品服务。公司以卓越的产品和优质的服务赢得了客户的广…...

ubuntu 如何使用vrf
在Ubuntu或其他Linux系统中,您使用ip命令和sysctl命令配置的网络和内核参数通常是临时的,这意味着在系统重启后这些配置会丢失。为了将这些配置持久化,您需要采取一些额外的步骤。 对于ip命令配置的网络接口和路由,您可以将这些配…...

Debian-linux运维-ssh配置(兼容Jenkins插件的ssh连接公钥类型)
系统版本:Debian 12.5、11.1 1 生成密钥对 可以用云服务商控制台生成的密钥对,也可以自己在客户端或者服务器上生成, 已经有密钥对就可以跳过这步 用户默认密钥文件路径为 ~/.ssh/id_rsa,可以在交互中指定路径,也可…...

K8S详解(5万字详细教程)
目录 编辑 一、集群管理命令 二、命名空间 1. 获取命名空间列表 2. 创建命名空间 3. 删除命名空间 4. 查看命名空间详情 三、Pod 1. Pod概述 2. Pod相位状态 3. 管理命令 3.1 获取命名空间下容器(pod)列表 3.2 查看pod的详细信息 3.3 创建 && 运行 3.4 …...

Redis6为什么引入了多线程?
大家好,我是锋哥。今天分享关于【Redis6为什么引入了多线程?】面试题。希望对大家有帮助; Redis6为什么引入了多线程? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Redis 6 引入了多线程的主要目的是提高性能&#…...

KMP 2024 年总结,Kotlin 崛起的一年
2024 Google I/O 上正式官宣了 KMP(Kotlin Multiplatform)项目,它是 Google Workspace 团队的一项长期「投资」项目,由 JetBrains 开发维护和开源的项目,简单来说,JetBrains 主导,Google Worksp…...

leecode188.买卖股票的最佳时机IV
这道题目我在买卖股票III就已经得出规律了,具体可看买卖股票的最佳时机||| class Solution { public:int maxProfit(int k, vector<int>& prices) {int nprices.size();vector<vector<int>> dp(n,vector<int>(2*k1,0));for(int j1;j&l…...
分布式消息队列RocketMQ
一、RocketMQ概述 1.1 MQ 概述 MQ,Message Queue,是一种提供消息队列服务的中间件,也成为消息中间件,是一套提供了消息生产、存储、消费全过程API的软件系统。消息即数据 1.2 MQ 用途 MQ的用途总结起来可分为以下三点 限流削峰…...
诗韵--代码之外的生活:2025 元旦歌
2025 元旦歌 1 说明2 正文3 简评 1 说明 又是一年元旦,在公司抽个空,写首诗纪念一下。 本系列博客:诗韵–代码之外的生活 2 正文 2025 元旦歌 一年又一年, 又到新元旦。 恍若零五年, 已是二五年。 工作忙连连&#x…...

SpringBoot项目启动的时候,指定jvm内存大小的3种方式
1. 通过命令行固定参数 在命令行中运行 Spring Boot 应用程序时,可以使用 -Xms 和 -Xmx 选项指定初始和最大堆内存大小。例如: java -Xms512m -Xmx1024m -jar mySpringBootApp.jar 优点: 简单明了 缺点: 是写死的,…...

学习vue3的笔记
一、vue和react的对比 1、基础介绍 vue:https://cn.vuejs.org/ vue3是2020年创建的 react:https://react.dev/ react是一个2013年开源的JavaScript库,严格意义上来说不是一个框架 2、diff算法 两个框架采用的都是同级对比策略 两节点对…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...