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, 文件上传解析器--&…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
解析“道作为序位生成器”的核心原理
解析“道作为序位生成器”的核心原理 以下完整展开道函数的零点调控机制,重点解析"道作为序位生成器"的核心原理与实现框架: 一、道函数的零点调控机制 1. 道作为序位生成器 道在认知坐标系$(x_{\text{物}}, y_{\text{意}}, z_{\text{文}}…...
2025 后端自学UNIAPP【项目实战:旅游项目】7、景点详情页面【完结】
1、获取景点详情的请求【my_api.js】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http(/login/getWXSessionKey, {code,avatar}); };//…...
