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, 文件上传解析器--&…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...
ubuntu22.04 安装docker 和docker-compose
首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...
