当前位置: 首页 > news >正文

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是一个开源的应用容器引擎&#xff0c;它使得开发者能够打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的Linux机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xff0c;相互之间没有任何接口&#xff…...

JSON简介与基本使用

JSON简介与基本使用 引言 在现今的互联网开发中&#xff0c;数据交换格式的选择至关重要。其中&#xff0c;JSON&#xff08;JavaScript Object Notation&#xff09;作为一种轻量级的数据交换格式&#xff0c;因其简洁、易读和易写的特性而备受青睐。本文将简要介绍JSON的基…...

好物周刊#40:多功能文件管理器

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

【洛谷 P8780】[蓝桥杯 2022 省 B] 刷题统计 题解(贪心算法+模拟+四则运算)

[蓝桥杯 2022 省 B] 刷题统计 题目描述 小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a a a 道题目&#xff0c;周六和周日每天做 b b b 道题目。请你帮小明计算&#xff0c;按照计划他将在第几天实现做题数大于等于 n n n 题? 输入格式 输入一…...

【蓝桥杯入门记录】静态数码管例程

目录 一、补充 &#xff08;code&#xff09; 二、例程 &#xff08;1&#xff09;例程1&#xff1a;数码管显示某一位&#xff08;某一杠&#xff09;。以点亮8段数码管最上面的横杠为例。 &#xff08;2&#xff09;例程2&#xff1a;数码管的8个段依次点亮&#xff08;其他…...

6.openEuler系统服务的配置和管理(二)

openEuler OECA认证辅导,标红的文字为学习重点和考点。 如果需要做实验,建议安装麒麟信安、银河麒麟、统信等具有图形化的操作系统,其安装与openeuler基本一致。 3.任务管理 任务的概念和相关术语: 当你在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因…...

一招鲜吃遍天!ChatGPT高级咒语揭秘:记忆、洗稿、速写SEO文章(一)

🌟 摘要 🌟 这个专栏系列的初衷是针对特定痛点精心设计GPT提示词,在这篇文章中,我们深入探讨了利用GPT技术解决三个常见挑战:增强记忆力、内容创新、以及SEO文章速写的高级技巧。这些挑战分别对应三个独特的解决策略,我们将逐一详细解析。 首先,解决记忆增强的挑战,我…...

LeetCode 每日一题 2024/2/19-2024/2/25

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 2/19 590. N 叉树的后序遍历2/20 105. 从前序与中序遍历序列构造二叉树2/21 106. 从中序与后序遍历序列构造二叉树2/22 889. 根据前序和后序遍历构造二叉树2/23 2583. 二叉…...

Javaweb之SpringBootWeb案例之配置优先级的详细解析

1. 配置优先级 在我们前面的课程当中&#xff0c;我们已经讲解了SpringBoot项目当中支持的三类配置文件&#xff1a; application.properties application.yml application.yaml 在SpringBoot项目当中&#xff0c;我们要想配置一个属性&#xff0c;可以通过这三种方式当中…...

GO框架基础 (三)、xorm库

xorm介绍 官网&#xff1a;https://xorm.io/ git文档&#xff1a;https://github.com/go-xorm/xorm xorm 是一个 Go 语言的 ORM&#xff08;对象关系映射&#xff09;库&#xff0c;它提供了一种简单、高效的方式来将 Go 语言中的结构体与数据库表进行映射&#xff0c;并提供了…...

神经网络系列---回归问题和分类问题

文章目录 回归问题和分类问题回归问题&#xff1a;分类问题&#xff1a;多分类问题&#xff1a;排序问题&#xff1a;自定义损失函数&#xff1a; 回归问题和分类问题 回归问题&#xff1a; 回归问题是一种预测连续数值输出的任务。在这种问题中&#xff0c;模型的目标是根据…...

Jetpack Compose 与 Kotlin 的兼容性对应关系

点击查看&#xff1a;Jetpack Compose 教程 点击查看&#xff1a;Jetpack Compose Kotlin 的兼容性 官网 声明依赖项 如需添加 Compose Compiler 的依赖项&#xff0c;您必须将 Google Maven 代码库添加到项目中。如需了解详情&#xff0c;请参阅 Google 的 Maven 代码库。 …...

汇编反外挂

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

134 Linux 系统编程11 ,readlink命令,文件目录rwx权限差异,目录操作函数

一 readlink 命令 前面知道&#xff0c;如果a.soft是一个软链接&#xff0c;我们使用 cat a.soft,会直接查看这个软链接指向的文件 那么我们就是想看这个软链接是啥&#xff0c;可以使用 readlink a.soft 二 获取工作目录 getcwd函数 获取进程当前工作目录 (卷3&#xff0c;标…...

仿12306校招项目业务二(列车检索)

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

前端架构: 实现脚手架终端UI样式之ANSI escape code, Chalk, Ora介绍

在脚手架当中实现命令行的UI显示 1 &#xff09;概述 在命令行中&#xff0c;如果想实现除传统的常规文本以外的内容比如想对字体进行加粗斜体下划线&#xff0c;包括对它改变颜色改变前景色改变后景色等等需要借助一个叫做 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 是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(<https://swagger.io/>)。 它的主要作用是&#xff1a; 1. 使得前后端分离开发更加方便&#xff0c;有利于团队协作 2. 接口的文档在线自动生成&#xf…...

(全注解开发)学习Spring-MVC的第三天

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

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...