Docker的常用命令
Docker的常用命令
Docker是一个开源的应用容器引擎,它使得开发者能够打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间没有任何接口(类似于iOS系统上的APP)。今天,我们将一起探讨Docker的一些常用命令。
1. Docker基础命令
docker version
:查看Docker的版本信息。docker info
:查看Docker的系统信息,包括容器和镜像的数量等。docker --help
:查看Docker的帮助文档。
2. 镜像相关命令
docker images
:列出本地所有的镜像。docker search <镜像名>
:在Docker Hub中搜索镜像。docker pull <镜像名>:<标签>
:从Docker Hub中拉取镜像。如果不写标签,默认拉取最新版本。docker rmi <镜像ID>
:删除指定的镜像。
3. 容器相关命令
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
:创建并启动一个容器。这是最常用的Docker命令。docker ps
:查看正在运行的容器。加上-a
参数可以查看所有容器(包括停止的)。docker stop <容器ID>
:停止正在运行的容器。docker start <容器ID>
:启动已停止的容器。docker restart <容器ID>
:重启容器。docker rm <容器ID>
:删除容器。注意,只能删除已停止的容器。如果要删除正在运行的容器,需要先停止它。docker exec -it <容器ID> /bin/bash
:进入正在运行的容器。
4. 其他常用命令
docker logs <容器ID>
:查看容器的日志信息。docker cp <容器ID>:/文件路径 /宿主机路径
:从容器中拷贝文件到宿主机。docker commit <容器ID> <新镜像名>:<标签>
:从容器创建一个新的镜像。这在你对容器进行了修改,并希望保存这些修改为一个新的镜像时非常有用。
当然,让我们继续深入探讨Docker的更多常用命令和高级功能。
5. Docker网络相关命令
docker network ls
:列出所有Docker网络。docker network create <网络名>
:创建一个新的Docker网络。docker network rm <网络名>
:删除一个Docker网络。注意,只能删除没有容器连接的网络。docker network connect <网络名> <容器名>
:将容器连接到网络。docker network disconnect <网络名> <容器名>
:将容器从网络中断开。
6. Docker数据卷相关命令
docker volume ls
:列出所有Docker数据卷。docker volume create <卷名>
:创建一个新的Docker数据卷。docker volume rm <卷名>
:删除一个Docker数据卷。docker volume inspect <卷名>
:查看Docker数据卷的详细信息。
7. Docker Compose相关命令
Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。通过Compose,你可以使用YML文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从YML文件配置中创建并启动所有服务。
docker-compose up
:创建并启动所有服务。加上-d
参数可以在后台运行。docker-compose down
:停止并删除所有服务。加上--volumes
参数还可以删除关联的数据卷。docker-compose ps
:查看正在运行的服务。docker-compose logs
:查看服务的日志信息。docker-compose exec <服务名> <命令>
:在服务中执行命令。
8. Docker Swarm相关命令
Docker Swarm是一个容器编排工具,它允许用户轻松地在集群上部署、扩展和管理容器。Swarm提供了高可用性和容错性,可以确保你的应用程序始终在线。
docker swarm init
:初始化一个新的Swarm集群。docker swarm join
:将节点加入到Swarm集群。docker swarm leave
:将节点从Swarm集群中移除。docker node ls
:列出Swarm集群中的所有节点。docker service create
:在Swarm集群上创建一个新的服务。docker service ls
:列出Swarm集群中的所有服务。docker service scale <服务名>=<副本数>
:扩展或缩减服务的副本数。docker service rm <服务名>
:删除一个服务。
8.示例
当然,以下是一些Docker常用命令的示例:
1. 拉取镜像
拉取一个名为nginx
的镜像,标签为latest
:
docker pull nginx:latest
2. 列出本地镜像
查看本地存储的所有镜像:
docker images
3. 创建并启动容器
使用nginx:latest
镜像创建一个名为my_nginx
的容器,并在后台运行:
docker run --name my_nginx -d nginx:latest
将容器的80端口映射到主机的8080端口,并创建容器:
docker run --name my_nginx -p 8080:80 -d nginx:latest
4. 查看正在运行的容器
查看当前正在运行的容器:
docker ps
查看所有容器(包括已停止的):
docker ps -a
5. 停止和启动容器
停止名为my_nginx
的容器:
docker stop my_nginx
启动已被停止的名为my_nginx
的容器:
docker start my_nginx
6. 删除容器
删除已停止的名为my_nginx
的容器:
docker rm my_nginx
强制删除正在运行的名为my_nginx
的容器:
docker rm -f my_nginx
7. 进入容器
进入正在运行的名为my_nginx
的容器,并执行/bin/bash
命令:
docker exec -it my_nginx /bin/bash
8. 查看容器日志
查看名为my_nginx
的容器的日志信息:
docker logs my_nginx
以上就是一些Docker常用命令的示例,希望对你有所帮助!在实际使用中,你可以根据需要进行组合和调整。
当然,我们可以继续探讨更多Docker命令的示例。
9. 创建自定义镜像
假设你已经在容器中做了一些修改,并希望将这些修改保存为一个新的镜像。首先,你需要找到容器的ID或名称:
docker ps -a
假设容器的ID是abcd1234
,你可以使用commit
命令创建一个新的镜像:
docker commit abcd1234 my_custom_nginx:v1
这将会创建一个新的镜像,名称为my_custom_nginx
,标签为v1
。
10. 导出和导入容器
如果你想将一个容器导出为tar文件,可以使用export
命令:
docker export abcd1234 > my_container.tar
之后,你可以将这个tar文件导入到其他Docker环境中,创建一个新的镜像:
cat my_container.tar | docker import - my_imported_container:v1
注意:通常更推荐使用docker commit
来创建镜像,因为export/import
不会保留容器的历史记录和元数据。
11. 保存和加载镜像
如果你想保存一个镜像(包括其所有层和元数据)为tar文件,可以使用save
命令:
docker save -o nginx_image.tar nginx:latest
之后,你可以加载这个tar文件到其他Docker环境中:
docker load -i nginx_image.tar
12. 构建镜像
使用build
命令和Dockerfile来构建一个新的镜像:
docker build -t my_app:v1 .
这里的.
表示Dockerfile位于当前目录中。-t
参数用于指定新镜像的名称和标签。
13. 查看容器资源使用情况
查看容器的CPU、内存、网络等资源使用情况:
docker stats my_nginx
14. 清理Docker系统
删除所有停止的容器:
docker container prune
删除所有未使用的镜像(不包括正在运行的容器所使用的镜像):
docker image prune
删除所有未使用的网络和数据卷:
docker system prune -a
注意:使用docker system prune -a
命令时要小心,因为它会删除所有未使用的资源,包括未连接的网络和未使用的数据卷。如果你想保留这些数据,请不要使用-a
选项。
这些示例应该涵盖了Docker的大部分常用命令。当然,Docker的功能非常丰富,还有更多高级用法和选项等待你去探索。
相关文章:
Docker的常用命令
Docker的常用命令 Docker是一个开源的应用容器引擎,它使得开发者能够打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间没有任何接口ÿ…...
JSON简介与基本使用
JSON简介与基本使用 引言 在现今的互联网开发中,数据交换格式的选择至关重要。其中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,因其简洁、易读和易写的特性而备受青睐。本文将简要介绍JSON的基…...

好物周刊#40:多功能文件管理器
https://github.com/cunyu1943/JavaPark https://yuque.com/cunyu1943 村雨遥的好物周刊,记录每周看到的有价值的信息,主要针对计算机领域,每周五发布。 一、项目 1. 中国节假日补班日历 中国节假日、调休、补班日历,ICS 格式…...

【洛谷 P8780】[蓝桥杯 2022 省 B] 刷题统计 题解(贪心算法+模拟+四则运算)
[蓝桥杯 2022 省 B] 刷题统计 题目描述 小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a a a 道题目,周六和周日每天做 b b b 道题目。请你帮小明计算,按照计划他将在第几天实现做题数大于等于 n n n 题? 输入格式 输入一…...
【蓝桥杯入门记录】静态数码管例程
目录 一、补充 (code) 二、例程 (1)例程1:数码管显示某一位(某一杠)。以点亮8段数码管最上面的横杠为例。 (2)例程2:数码管的8个段依次点亮(其他…...
6.openEuler系统服务的配置和管理(二)
openEuler OECA认证辅导,标红的文字为学习重点和考点。 如果需要做实验,建议安装麒麟信安、银河麒麟、统信等具有图形化的操作系统,其安装与openeuler基本一致。 3.任务管理 任务的概念和相关术语: 当你在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因…...

一招鲜吃遍天!ChatGPT高级咒语揭秘:记忆、洗稿、速写SEO文章(一)
🌟 摘要 🌟 这个专栏系列的初衷是针对特定痛点精心设计GPT提示词,在这篇文章中,我们深入探讨了利用GPT技术解决三个常见挑战:增强记忆力、内容创新、以及SEO文章速写的高级技巧。这些挑战分别对应三个独特的解决策略,我们将逐一详细解析。 首先,解决记忆增强的挑战,我…...
LeetCode 每日一题 2024/2/19-2024/2/25
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 2/19 590. N 叉树的后序遍历2/20 105. 从前序与中序遍历序列构造二叉树2/21 106. 从中序与后序遍历序列构造二叉树2/22 889. 根据前序和后序遍历构造二叉树2/23 2583. 二叉…...

Javaweb之SpringBootWeb案例之配置优先级的详细解析
1. 配置优先级 在我们前面的课程当中,我们已经讲解了SpringBoot项目当中支持的三类配置文件: application.properties application.yml application.yaml 在SpringBoot项目当中,我们要想配置一个属性,可以通过这三种方式当中…...
GO框架基础 (三)、xorm库
xorm介绍 官网:https://xorm.io/ git文档:https://github.com/go-xorm/xorm xorm 是一个 Go 语言的 ORM(对象关系映射)库,它提供了一种简单、高效的方式来将 Go 语言中的结构体与数据库表进行映射,并提供了…...
神经网络系列---回归问题和分类问题
文章目录 回归问题和分类问题回归问题:分类问题:多分类问题:排序问题:自定义损失函数: 回归问题和分类问题 回归问题: 回归问题是一种预测连续数值输出的任务。在这种问题中,模型的目标是根据…...
Jetpack Compose 与 Kotlin 的兼容性对应关系
点击查看:Jetpack Compose 教程 点击查看:Jetpack Compose Kotlin 的兼容性 官网 声明依赖项 如需添加 Compose Compiler 的依赖项,您必须将 Google Maven 代码库添加到项目中。如需了解详情,请参阅 Google 的 Maven 代码库。 …...

汇编反外挂
在软件保护领域,尤其是游戏保护中,反外挂是一个重要的议题。外挂通常指的是一种第三方软件,它可以修改游戏数据、操作游戏内存或提供其他作弊功能,从而给玩家带来不公平的优势。为了打击外挂,游戏开发者会采取一系列措…...

134 Linux 系统编程11 ,readlink命令,文件目录rwx权限差异,目录操作函数
一 readlink 命令 前面知道,如果a.soft是一个软链接,我们使用 cat a.soft,会直接查看这个软链接指向的文件 那么我们就是想看这个软链接是啥,可以使用 readlink a.soft 二 获取工作目录 getcwd函数 获取进程当前工作目录 (卷3,标…...

仿12306校招项目业务二(列车检索)
目录 验证数据 加载城市数据 查询列车站点信息 查询列车余票信息 构建列车返回数据 12306 项目中列车数据检索接口路径  TicketController的pageListTicketQuery。 GetMapping("/api/ticket-service/ticket/query")public Result<T…...

前端架构: 实现脚手架终端UI样式之ANSI escape code, Chalk, Ora介绍
在脚手架当中实现命令行的UI显示 1 )概述 在命令行中,如果想实现除传统的常规文本以外的内容比如想对字体进行加粗斜体下划线,包括对它改变颜色改变前景色改变后景色等等需要借助一个叫做 ANSI escape code 这样的一个概念它其实是一个标准&…...

platform(驱动层+应用层)实现终端和中断开关点灯
设备树文件添加 myplatform{compatible"hqyj,myplatform";interrupt-parent<&gpiof>;interrupts<8 0>,<7 0>,<9 0>;led1-gpio<&gpioe 10 0>;led2-gpio<&gpiof 10 0>;led3-gpio<&gpioe 8 0>;reg<0x123…...

黑马JavaWeb开发跟学(一)Web前端开发HTML、CSS基础
黑马JavaWeb开发一.Web前端开发HTML、CSS基础 引子、Web开发介绍传统路线本课程全新路线本课程适用人群课程收获一、什么是web开发二、网站的工作流程三、网站的开发模式四、网站的开发技术 前端开发基础一、前端开发二、HTML & CSS2.1 HTML快速入门2.1.1 操作第一步第二步…...

Nest.js权限管理系统开发(四)Swagger API接入
什么是swagger Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(<https://swagger.io/>)。 它的主要作用是: 1. 使得前后端分离开发更加方便,有利于团队协作 2. 接口的文档在线自动生成…...

(全注解开发)学习Spring-MVC的第三天
全注解开发 第一部分 : 1.1 消除spring-mvc.xml 这些是原来spring-mvc.xml配置文件的内容 <!--1、组件扫描, 使Controller可以被扫描到--><context:component-scan base-package"com.itheima.controller"/><!--2、非自定义的Bean, 文件上传解析器--&…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
Docker拉取MySQL后数据库连接失败的解决方案
在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...