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

Docker 和 Docker Compose 使用指南

Docker 和 Docker Compose 使用指南

在这里插入图片描述

一、Docker 核心概念
  • 镜像(Image) :应用的静态模板(如 nginx:latest​)。
  • 容器(Container) :镜像的运行实例。
  • 仓库(Registry) :存储镜像的平台(如 Docker Hub)。

二、Docker 常用命令
  1. 镜像管理

    • 拉取镜像:docker pull <镜像名>:<标签>
      (例:docker pull nginx:latest​)
    • 构建镜像:docker build -t <镜像名> <Dockerfile目录>
      (例:docker build -t myapp:v1 .​)
    • 查看镜像列表:docker images
    • 删除镜像:docker rmi <镜像ID或名称>
  2. 容器操作

    • 启动容器:
      docker run -d -p <主机端口>:<容器端口> --name <容器名> <镜像>
      (例:docker run -d -p 80:80 --name mynginx nginx​)

      • -d​:后台运行
      • -p​:端口映射
      • -v​:挂载卷(例:-v /宿主机路径:/容器路径​)
    • 查看运行中的容器:docker ps

    • 查看所有容器:docker ps -a

    • 停止容器:docker stop <容器ID或名称>

    • 删除容器:docker rm <容器ID或名称>

    • 进入容器终端:docker exec -it <容器名> /bin/bash

    • 查看日志:docker logs <容器名>


三、Docker Compose 编排多容器应用

用于通过 YAML 文件定义和运行多个容器。

  1. 核心概念

    • docker-compose.yml:定义服务、网络、卷的配置文件。
    • 服务(Service) :一个容器实例(如 Web 服务、数据库)。
  2. 常用命令

    • 启动服务:docker-compose up -d​ (-d​ 后台运行)

    • 停止并删除容器:docker-compose down

      • 删除同时移除数据卷:docker-compose down --volumes
    • 构建镜像:docker-compose build

    • 查看服务状态:docker-compose ps

    • 查看日志:docker-compose logs <服务名>

  3. 示例 docker-compose.yml

    version: "3.8"
    services:web:image: nginx:latestports:- "80:80"volumes:- ./html:/usr/share/nginx/htmldb:image: mysql:5.7environment:MYSQL_ROOT_PASSWORD: example
    

四、常用场景示例
  1. 快速启动一个 Nginx 容器

    docker run -d -p 80:80 --name my_web nginx
    
  2. 使用 Docker Compose 启动 WordPress

    version: "3.8"
    services:wordpress:image: wordpress:latestports:- "8080:80"environment:WORDPRESS_DB_HOST: dbWORDPRESS_DB_USER: rootWORDPRESS_DB_PASSWORD: exampledepends_on:- dbdb:image: mysql:5.7environment:MYSQL_ROOT_PASSWORD: example
    

    启动命令:docker-compose up -d


五、注意事项
  1. 权限问题:Linux 用户需将当前用户加入 docker​ 组(sudo usermod -aG docker $USER​)。
  2. 数据持久化:使用 -v​ 或 volumes​ 挂卷保存重要数据。
  3. 资源清理:定期使用 docker system prune​ 清理无用镜像、容器。

掌握这些命令后,你可以高效管理容器化应用!

相关文章:

Docker 和 Docker Compose 使用指南

Docker 和 Docker Compose 使用指南 一、Docker 核心概念 镜像&#xff08;Image&#xff09; &#xff1a;应用的静态模板&#xff08;如 nginx:latest​&#xff09;。容器&#xff08;Container&#xff09; &#xff1a;镜像的运行实例。仓库&#xff08;Registry&#xf…...

【设计模式】观察者

观察者模式 1 简介 观察者模式是观察者对象们通过注册到被观察者对象中&#xff0c;从而使被观察者发生变化时能通知到观察者&#xff0c;避免硬编码&#xff0c;使用写死的代码逻辑调用通知&#xff0c;从而实现解耦效果。 2 基本代码逻辑 观察者 class IObserver { publ…...

vue3环境搭建、nodejs22.x安装、yarn 1全局安装、npm切换yarn 1、yarn 1 切换npm

vue3环境搭建 node.js 安装 验证nodejs是否安装成功 # 检测node.js 是否安装成功----cmd命令提示符中执行 node -v npm -v 设置全局安装包保存路径、全局装包缓存路径 在node.js 安装路径下 创建 node_global 和 node_cache # 设置npm全局安装包保存路径&#xff08;新版本…...

(二十五)安卓开发一个完整的登录页面-支持密码登录和手机验证码登录

下面将详细讲解如何在 Android 中开发一个完整的登录页面&#xff0c;支持密码登录和手机验证码登录。以下是实现过程的详细步骤&#xff0c;从布局设计到逻辑实现&#xff0c;再到用户体验优化&#xff0c;逐步展开。 1. 设计登录页面布局 首先&#xff0c;我们需要设计一个用…...

【java 13天进阶Day05】数据结构,List,Set ,TreeSet集合,Collections工具类

常见的数据结构种类 集合是基于数据结构做出来的&#xff0c;不同的集合底层会采用不同的数据结构。不同的数据结构&#xff0c;功能和作用是不一样的。数据结构&#xff1a; 数据结构指的是数据以什么方式组织在一起。不同的数据结构&#xff0c;增删查的性能是不一样的。不同…...

水污染治理(生物膜+机器学习)

文章目录 **1. 水质监测与污染预测****2. 植物-微生物群落优化****3. 系统设计与运行调控****4. 维护与风险预警****5. 社区参与与政策模拟****挑战与解决思路****未来趋势** 前言&#xff1a; 将机器学习&#xff08;ML&#xff09;等人工智能技术融入植树生物膜系统&#xff…...

Python人工智能 使用可视图方法转换时间序列为复杂网络

基于可视图方法的时间序列复杂网络转换实践 引言 在人工智能与数据科学领域&#xff0c;时间序列分析是一项基础且重要的技术。本文将介绍一种创新的时间序列分析方法——可视图方法&#xff0c;该方法能将时间序列转换为复杂网络&#xff0c;从而利用复杂网络理论进行更深入…...

spring:加载配置类

在前面的学习中&#xff0c;通过读取xml文件将类加载&#xff0c;或他通过xml扫描包&#xff0c;将包中的类加载。无论如何都需要通过读取xml才能够进行后续操作。 在此创建配置类。通过对配置类的读取替代xml的功能。 配置类就是Java类&#xff0c;有以下内容需要执行&#…...

使用Pydantic优雅处理几何数据结构 - 前端输入验证实践

使用Pydantic优雅处理几何数据结构 - 前端输入验证实践 一、应用场景解析 在视频分析类项目中&#xff0c;前端常需要传递几何坐标数据。例如智能安防系统中&#xff0c;需要接收&#xff1a; 视频流地址&#xff08;rtsp_video&#xff09;检测区域坐标点&#xff08;point…...

从零搭建一套前端开发环境

一、基础环境搭建 1.NVM(Node Version Manager)安装 简介 nvm&#xff08;Node Version Manager&#xff09; 是一个用于管理多个 Node.js 版本的工具&#xff0c;允许开发者在同一台机器上轻松安装、切换和使用不同版本的 Node.js。它特别适合需要同时维护多个项目&#xff…...

金融数据库转型实战读后感

荣幸收到老友太保科技有限公司数智研究院首席专家林春的签名赠书。 这是国内第一本关于OceanBase数据库实际替换过程总结的的实战书。打个比方可以说是从战场上下来分享战斗经验。读后感受颇深。我在这里讲讲我的感受。 第三章中提到的应用改造如何降本。应用改造是国产化替换…...

代码审计系列2:小众cms oldcms

目录 sql注入 1. admin/admin.php Login_check 2. admin/application/label/index.php 3. admin/application/hr/index.php 4. admin/application/feedback/index.php 5. admin/application/article/index.php​ sql注入 1. admin/admin.php Login_check 先看一下p…...

Cursor + MCP,实现自然语言操作 GitLab 仓库

本分分享如何使用 cursor mcp 来操作极狐GitLab 仓库&#xff0c;体验用自然语言在不接触极狐GitLab 的情况下来完成一些仓库操作。 极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitL…...

Vue el-from的el-form-item v-for循环表单如何校验rules(一)

实际业务需求场景&#xff1a; 新增或编辑页面&#xff08;基础信息表单&#xff0c;一个数据列表的表单&#xff09;&#xff0c;数据列表里面的表单数是动态添加的。数据可新增、可删除&#xff0c;在表单保存前&#xff0c;常常需要做表单必填项的校验&#xff0c;校验通过以…...

C#集合List<T>与HashSet<T>的区别

在C#中&#xff0c;List和HashSet都是用于存储元素的集合&#xff0c;但它们在内部实现、用途、性能特性以及使用场景上存在一些关键区别。 内部实现 List&#xff1a;基于数组实现的&#xff0c;可以包含重复的元素&#xff0c;并且元素是按照添加的顺序存储的。 HashSet&…...

【Reading Notes】(8.3)Favorite Articles from 2025 March

【March】 雷军一度登顶中国首富&#xff0c;太厉害了&#xff08;2025年03月02日&#xff09; 早盘&#xff0c;小米港股一路高歌猛进&#xff0c;暴涨4%&#xff0c;股价直接飙到52港元的历史新高。这一波猛如虎的操作&#xff0c;直接把雷军的身家拉到了2980亿元&#xff0c…...

Spring Boot 项目里设置默认国区时区,Jave中Date时区配置

在 Spring Boot 项目里设置国区时区&#xff08;也就是中国标准时间&#xff0c;即 Asia/Shanghai&#xff09;&#xff0c;可通过以下几种方式实现&#xff1a; 方式一&#xff1a;在application.properties或application.yml里设置 application.properties properties sp…...

从PDF到播客:MIT开发的超越NotebookLM的工具

NotebookLM是谷歌推出的更具创意的AI产品之一,几个月前刚刚推出。 许多人对它的能力感到惊叹——尤其是将长文本转化为两位播客主持人之间有趣对话的功能。 NotebookLM提供的不仅仅是这些,还包括聊天(问答)甚至生成思维导图。 如果你还没有尝试过NotebookLM,我强烈建议…...

Kotlin协程Semaphore withPermit约束并发任务数量

Kotlin协程Semaphore withPermit约束并发任务数量 import kotlinx.coroutines.* import kotlinx.coroutines.sync.Semaphore import kotlinx.coroutines.sync.withPermit import kotlinx.coroutines.launch import kotlinx.coroutines.runBlockingfun main() {val permits 1 /…...

Redis的下载安装和使用(超详细)

目录 一、所需的安装包资源小编放下述网盘了&#xff0c;提取码&#xff1a;wshf 二、双击打开文件redis.desktop.manager.exe 三、点击next后&#xff0c;再点击i agree 四、点击箭头指向&#xff0c;选择安装路径&#xff0c;然后点击Install进行安装 五、安装完后依次点…...

Springboot 学习 之 logback-spring.xml 日志打印

文章目录 1. property2. springProperty3. appender4. logger4.1. 通过包路径控制日志4.2. 通过类名控制日志4.3. 按自定义 Logger 名称控制日志 5. root6. springProfile SpringBoot 项目中可以通过自定义 logback-spring.xml 中各项配置&#xff0c;实现日志的打印控制 1. p…...

从游戏显卡到AI引擎:NVIDIA CUDA如何重构计算世界的底层逻辑

当GPU不再是"显卡" 2025年&#xff0c;当ChatGPT-5的万亿参数模型在0.1秒内完成推理时&#xff0c;人们很少意识到&#xff0c;支撑这场智能革命的不仅是算法突破&#xff0c;更是一场持续20年的架构革命。NVIDIA CUDA技术&#xff0c;这个最初被游戏玩家视为"…...

无线网络入侵检测系统实战 | 基于React+Python的可视化安全平台开发详解

随着无线网络的普及&#xff0c;网络攻击风险也日益严峻。本项目旨在构建一个实时监测、智能识别、高效防护的无线网络安全平台&#xff0c;通过结合前后端技术与安全算法&#xff0c;实现对常见攻击行为的有效监控和防御。 一、项目简介与功能目的 本系统是一款基于 React 前…...

前端 实现文字打字效果(仿AI)

DOM结构 <scroll-view class"scroll-view" scroll-y"true" :scroll-top"scrollTop" :style"{height: contentHeight px}"scroll-with-animation show-scrollbar"false" id"report-scroll-view"><view …...

C#核心(25)练手小项目:飞机大战

简介 通过核心部分的学习,我们已经可以做一些复杂的项目了。 我们这次会用我们学到的面向对象知识写一个飞机大战(性能可能不太好,因为毕竟是控制台项目) 如果你有所不懂,建议多查多思考多问。 因为这次的项目比较难,博主会稍微讲仔细一点。 基类设计:GameObject 抽…...

[经验总结]Linux双机双网卡Keepalived高可用配置及验证细节

1. 前言 这种配置需求比较少见&#xff0c;在网上也很少有相关文章&#xff0c;于是记录在此&#xff0c;供有需要的朋友参考。 本篇重点介绍配置的关键点&#xff0c;基础部分简单提及&#xff0c;不赘述。 2. 需求描述 如上图&#xff0c;即给两个主机配置两对高可用主从配…...

Go语言入门到入土——三、处理并返回异常

Go语言入门到入土——三、处理并返回异常 文章目录 Go语言入门到入土——三、处理并返回异常1. 在greetings.go中添加异常处理代码2. 在hello.go中添加日志记录代码3. 运行 1. 在greetings.go中添加异常处理代码 处理空输入的异常&#xff0c;代码如下&#xff1a; package g…...

2025.04.17【Dendrogram】生信数据可视化:Dendrogram图表详解

Dendrogram customization Go further with ggraph: edge style, general layout, node features, adding labels, and more. Customized circular dendrogram Learn how to build a circular dendrogram with proper labels. 文章目录 Dendrogram customizationCustomized c…...

Linux下的网络管理

一、ipv4原理 网络接口是指网络中的计算机或网络设备与其他设备实现通讯的进出口&#xff0c;一般是指计算机的网络接口即网卡设备 从RHEL7开始引入了一种新的“一致网络设备命名”的方式为网络接口命名&#xff0c;该方式可以根据固件、设备拓扑、设备类型和位置信息分配固…...

GPT-4o Image Generation Capabilities: An Empirical Study

GPT-4o 图像生成能力:一项实证研究 目录 介绍研究背景方法论文本到图像生成图像到图像转换图像到 3D 能力主要优势局限性与挑战对比性能影响与未来方向结论介绍 近年来,图像生成领域发生了巨大的变化,从生成对抗网络 (GAN) 发展到扩散模型,再到可以处理多种模态的统一生成架…...