【Docker】Docker常用指令指南:加速你的容器化之旅

news/2024/4/28 4:56:44/文章来源:https://blog.csdn.net/qq_35240081/article/details/136995264

我爱谁 跨不过 从来也不觉得错
自以为 抓着痛 就能往回忆里躲
偏执相信着 受诅咒的水晶球
阻挡可能心动的理由
而你却 靠近了 逼我们视线交错
原地不动 或向前走 突然在意这分钟
眼前荒沙弥漫了等候 耳边传来孱弱的呼救
追赶要我 爱的不保留
                     🎵 徐佳莹《身骑白马》


Docker是一个开源的容器化平台,它允许开发者将应用程序及其依赖打包到一个轻量级、可移植的容器中,然后在任何支持Docker的机器上运行。这种技术可以大大简化部署过程,确保应用在不同环境中的一致性。本文将介绍Docker的一些常用指令及其使用案例,帮助你更高效地使用Docker。

安装Docker

在使用Docker之前,你需要先在你的机器上安装Docker。Docker支持多种操作系统,包括Windows、macOS和多种Linux发行版。具体安装步骤请参考Docker官方文档。

Docker常用指令

  1. docker run:运行一个容器
    docker run指令用于从一个镜像启动一个新的容器。例如,下面的命令将从Docker Hub下载并运行一个Ubuntu容器,并在容器内执行echo "Hello, Docker!"命令。

    docker run ubuntu echo "Hello, Docker!"
    
  2. docker ps:列出容器
    docker ps显示正在运行的容器。

    docker ps
    

    docker ps -a显示所有容器,包括未运行的。

    docker ps -a
    
  3. docker images:列出镜像
    docker images显示本地存储的所有Docker镜像。

    docker images
    
  4. docker pull:拉取镜像
    docker pull从Docker Hub或其他Docker注册中心下载一个镜像或仓库。

    docker pull nginx
    
  5. docker build:构建镜像
    docker build根据Dockerfile创建镜像。假设你有一个Dockerfile在当前目录,你可以使用下面的命令来构建镜像,并给它打上标签。

    docker build -t my-app:1.0 .
    
  6. docker exec:在运行中的容器执行命令
    docker exec在运行的容器中执行命令。例如,进入一个正在运行的容器并启动bash会话:

    docker exec -it <container_id> bash
    
  7. docker stop和docker start:停止与启动容器
    停止一个运行中的容器:

    docker stop <container_id>
    

    启动一个已停止的容器:

    docker start <container_id>
    
  8. docker rm和docker rmi:删除容器和镜像
    删除一个或多个容器:

    	docker rm <container_id1> <container_id2>
    

    删除一个或多个镜像:

    	docker rmi <image_id1> <image_id2>
    

docker compose:使用Docker Compose管理多容器应用

Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。它允许您通过一个YAML文件(docker-compose.yml)来配置应用程序的服务、网络和卷。然后,使用一个简单的命令,就可以创建并启动所有服务。Docker Compose专注于“多容器和服务”的管理,是处理微服务架构和复杂应用部署的理想选择。通过Docker Compose,开发者可以轻松地在本地开发环境中启动、停止和重建整个应用堆栈。

  1. 主要区别
    使用范围:Docker是构建和容器化应用的基础,关注单个容器的生命周期。而Docker Compose则关注于如何在单个主机上协同运行多个容器。

  2. 配置方法:Docker通常需要通过命令行参数或Dockerfile进行配置。Docker Compose通过一个YAML文件(docker-compose.yml)来定义服务、网络和卷的配置,使得配置和部署过程更加标准化和易于管理。

  3. 使用场景:对于简单应用或单个容器的场景,Docker就足够了。但对于需要同时管理多个服务或容器的复杂应用(例如微服务架构),Docker Compose提供了更好的工具和方法。

使用

  1. 启动、停止和重建服务:
docker-compose up
docker-compose down

命令差异:Docker和Docker Compose使用不同的命令集。Docker的命令通常以docker开头,如docker run。Docker Compose的命令则以docker-compose开头,如docker-compose up

  1. 使用配置文件启动
    在使用Docker Compose时,默认情况下,它会查找当前目录下名为docker-compose.yml的文件作为配置文件。然而,在某些情况下,你可能需要使用不同的配置文件,或者同时使用多个配置文件。Docker Compose允许你通过-f或–file标志来指定一个或多个配置文件。

    使用单个配置文件

    要使用单个自定义配置文件启动Docker Compose,可以在命令中使用-f标志后跟文件名。例如,如果你的自定义配置文件名为docker-compose.prod.yml,你可以这样启动Docker Compose:

    docker-compose -f docker-compose.prod.yml up
    

    使用多个配置文件

    在一些复杂的场景中,你可能想要将配置分散到多个文件中,以便更好地组织。Docker Compose允许你通过指定多个-f标志来实现这一点。当使用多个配置文件时,后面的文件会合并到前面的文件中。如果有任何冲突,最后指定的配置将会“胜出”。

    例如,你可能有一个基本的docker-compose.yml文件,用于所有环境,然后有一个docker-compose.override.yml文件用于开发环境的特定配置,还有一个docker-compose.prod.yml文件用于生产环境的特定配置。你可以这样启动Docker Compose,使用基本配置加上生产环境的特定配置:

    docker-compose -f docker-compose.yml -f docker-compose.prod.yml up
    

    指定配置文件的常见用途

    环境特定的配置:你可以为开发、测试和生产环境创建不同的配置文件,以便快速切换环境。
    模块化:对于复杂应用,你可以将配置分解成多个文件,每个文件管理应用的一部分。
    调试和测试:创建专门的配置文件以修改服务的行为,便于调试和测试。

    小贴士
    使用多个配置文件时,务必注意配置合并的规则,确保最终的配置是你所期望的。
    为了便于管理和维护,给配置文件命名时最好遵循一致的命名约定。
    通过灵活地使用Docker Compose的配置文件指定功能,你可以更好地控制和组织你的容器化应用的部署。

总结

Docker提供了一系列强大的指令,使得容器的创建、部署和管理变得简单高效。熟练掌握这些常用指令,将帮助你充分利用Docker的强大功能,加速你的容器化之旅。无论你是在开发新应用,还是在寻求简化现有应用的部署和扩展,Docker都是一个值得掌握的重要工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1027160.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【容器源码篇】Set容器(HashSet,LinkedHashSet,TreeSet的特点)

文章目录 ⭐容器继承关系&#x1f339;Set容器&#x1f5d2;️HashSet源码解析构造方法public HashSet()public HashSet(Collection<? extends E> c)public HashSet(int initialCapacity, float loadFactor)HashSet(int initialCapacity, float loadFactor, boolean dum…

x86的内存分段机制

8086 是 Intel 公司第一款 16 位处理器&#xff0c;诞生于 1978 年&#xff0c;所以说它很古老。 一.8086 的通用寄存器 8086 处理器内部共有 8 个 16 位的通用处理器&#xff0c;分别被命名为 AX、 BX、 CX、 DX、 SI、 DI、 BP、 SP。如下图所示。 “通用”的意思是…

MySQL ② —— 索引原理

1. 索引 1.1 分类 主键索引、唯一索引、普通索引、组合索引、以及全文索引 主键索引 非空唯一索引&#xff0c;一个表只有一个主键索引&#xff1b;在 innodb 中&#xff0c;主键索引的 B 树包含表数据信息。 唯一索引 不可以出现相同的值&#xff0c;可以有 NULL 值。 …

Python最强自动化神器!

1、Playwright介绍 Playwright是一个由Microsoft开发的开源自动化测试工具&#xff0c;它可以用于测试Web应用程序。Playwright支持多种浏览器&#xff0c;包括Chrome、Firefox和WebKit&#xff0c;同时也支持多种编程语言&#xff0c;如JavaScript、TypeScript、Python和C#。…

xilinx linux AXI GPIO 驱动学习

vivado工程 vivado 配置一个 AXI GPIO&#xff0c; 全输出&#xff0c;宽度为1 设备树解读 生成的对应pl.dtsi设备树文件如下 axi_gpio: gpio40020000 {#gpio-cells <2>;clock-names "s_axi_aclk";clocks <&clkc 15>;compatible "xlnx,…

淘宝app商品数据API接口|item_get_app-获得淘宝app商品详情原数据

获得淘宝app商品详情原数据 API返回值说明 item_get_app-获得淘宝app商品详情原数据 公共参数​​​​​​ 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地…

[ Linux ] git工具的基本使用(仓库的构建,提交)

1.安装git yum install -y git 2.打开Gitee&#xff0c;创建你的远程仓库&#xff0c;根据提示初始化本地仓库&#xff08;这里以我的仓库为例&#xff09; 新建好仓库之后跟着网页的提示初始化便可以了 3.add、commit、push三板斧 git add . //add仓库新增&#xff08;变…

软考 - 系统架构设计师 - 关系模型的完整性规则

前言 关系模型的完整性规则是一组用于确保关系数据库中数据的完整性和一致性的规则。这些规则定义了在关系数据库中如何存储、更新和查询数据&#xff0c;以保证数据的准确性和一致性。 详情 关系模型的完整性规则主要包括以下三类&#xff1a; 实体完整性规则 这是确保每个…

C++判断点是否在三角形内部

1.问题 判断点是否在三角形内部。 2.思路 计算向量AB和AP的叉积、向量BC和BP的叉积、向量CA和CP的叉积&#xff0c;如果所有的叉积符号相同&#xff0c;则点在三角形内部。 3.代码实现和注释 #include <iostream> #include <vector>// 计算两个二维向量的叉积 …

第十一届蓝桥杯大赛第二场省赛试题 CC++ 研究生组-回文日期

solution1&#xff08;通过50%&#xff09; #include<stdio.h> void f(int a){int t a;while(a){printf("%d", a % 10);a / 10;}if(t < 10) printf("0"); } int isLeap(int n){if(n % 400 0 || (n % 4 0 && n % 100 ! 0)) return 1;r…

QT+GDAL实现影像的读取和显示

详细流程参考https://blog.csdn.net/deirjie/article/details/37872743 代码 //open_image.h #pragma once #include <QtWidgets/QMainWindow> #include "ui_open_image.h" #include "gdal_priv.h" #include <QMessageBox> #include <QFi…

是谁?阻止CXL在AI场景大展身手~

CXL虽然被视为业内新宠&#xff0c;但好像在AI场景的应用反而没有得到广泛的响应。 AI场景对内存带宽、容量以及数据一致性有着极高需求&#xff0c;特别是在深度学习训练和推理过程中&#xff0c;大量数据需要在CPU、GPU、加速器以及内存之间快速、高效地流动。CXL作为一种新…

Java基础面试复习

一、java基础 1、jdk、jre、jvm的区别 jdk&#xff1a;Java程序开发工具包。 jre&#xff1a;Java程序运行环境。 jvm&#xff1a;Java虚拟机。 2、一个Java源文件中是否可以包含多个类有什么限制 解&#xff1a;可以包含多个类但是只有一个类生命成public并且要和文件名一致 …

代码随想录训练营day18

第六章 二叉树 part05 1.LeetCode.找树左下角的值 1.1题目链接&#xff1a;513.找树左下角的值 文章讲解&#xff1a;代码随想录 视频讲解&#xff1a;B站卡哥视频 1.2思路&#xff1a;本题要找出树的最后一行的最左边的值。此时大家应该想起用层序遍历是非常简单的了&…

24计算机考研调剂 | 【官方】北京科技大学

北京科技大学 考研调剂招生信息 招生专业&#xff1a; 085404&#xff08;计算机技术&#xff09; 081200&#xff08;计算机科学与技术&#xff09; 调剂要求&#xff1a;&#xff08;调剂基本分数&#xff09; 我中心将在教育部“全国硕士生招生调剂服务系统”&#xff08…

MRC是谁?- 媒体评级委员会 Media Rating Council

在在线广告的世界里&#xff0c;有许多不同的技术和实践用于提供和衡量广告。对于广告商、出版商和营销人员来说&#xff0c;了解这些技术是如何工作的以及如何有效使用这些技术很重要。在这方面发挥关键作用的一个组织是媒体评级委员会&#xff08;MRC&#xff09;。 1. 了解…

市场复盘总结 20240328

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 一支股票 10%的时候可以操作&#xff0c; 90%的时间适合空仓等待 二进三&#xff1a; 进级率中 40% 最常用的…

C#手术麻醉系统源码 可对接HIS LIS PACS 医疗系统各类设备 医院手麻系统源码

C#手术麻醉系统源码 可对接HIS LIS PACS 医疗系统各类设备 手术麻醉信息管理系统主要还是为了手术室开发提供全面帮助的系统&#xff0c;其主要是由监护设备数据采集子系统和麻醉临床系统两个子部分组成。包括从手术申请到手术分配&#xff0c;再到术前访视、术中记录及术后…

并发编程之Callable方法的详细解析(带小案例)

Callable &#xff08;第三种线程实现方式&#xff09; Callable与Runnable的区别 Callable与Runnable的区别 实现方法名称不一样 有返回值 抛出了异常 ​class Thread1 implements Runnable{Overridepublic void run() { ​} } ​ class Thread2 implements Callable<…

软件推荐 篇三十七:安卓软件推荐IP Tools「IP工具」:全面解析网络状态与管理的必备神器

引言&#xff1a; 随着互联网的普及&#xff0c;网络已经成为我们日常生活中不可或缺的一部分。无论是工作、学习还是娱乐&#xff0c;我们都需要通过网络来进行各种操作。然而&#xff0c;网络问题的出现往往会给我们带来诸多困扰。为了更好地管理和优化网络&#xff0c;我们…