docker compse简介与安装

news2025/1/12 12:23:41

目录

1. Docker Compose 简介

2. Docker Compose 安装

2.1 在 Ubuntu 上安装 Docker Compose

2.1.1 通过 apt 安装

2.1.2 使用官方脚本安装最新版本

2.2 在 CentOS 上安装 Docker Compose

2.2.2 使用官方脚本安装最新版本

2.2.3 使用 pip 安装

2.3 在 openEuler 上安装 Docker Compose

2.3.1 使用官方脚本安装最新版本

2.2.2 检查并通过 dnf 安装 Docker Compose

2.3.3 使用 pip 安装

3. Docker Compose 测试示例

3.1 目录结构:

3.2 docker-compose.yml 文件内容:

3.3 html/index.html 内容示例:

3.4 启动服务

3.5 访问 Web 服务

3.6 看能出现问题

3.6.1 解决端口冲突

3.6.2 停止并移除服务

4.docker compose常用命令

4.1 启动和停止服务

4.1.1 启动服务

4.1.3 停止并移除容器、网络、卷

4.2 构建和管理服务

4.2.1 构建或重建服务

4.2.2 拉取服务的镜像

4.2.3 重新启动服务

4.3  监控和调试

4.3.1 查看服务的日志

4.3.2 列出当前项目的所有容器

4.3.3 查看服务的状态

4.4 扩展和缩放服务

4.4.1 扩展服务

4.5 运行一次性命令和任务

4.5.1 在服务容器中运行命令

4.5.2 运行一次性任务

4.6 配置管理

4.6.1 查看配置

4.6.2 列出定义的服务


Docker Compose 需要在已经安装了 Docker 的基础上进行安装

Docker安装参考:Ubuntu、centos、openEuler安装docker-CSDN博客

Docker与compose的区别:Docker 和 Docker Compose 的区别对比-CSDN博客

1. Docker Compose 简介

        Docker Compose 是一个用于定义和管理多容器 Docker 应用程序的工具。通过编写一个简单的 YAML 文件 (docker-compose.yml),您可以定义应用的服务、网络和卷,并通过一个命令来启动、停止或管理整个应用程序的各个容器。Docker Compose 主要用于以下场景:

  • 微服务架构:管理由多个微服务组成的应用程序。
  • 本地开发环境:为开发者提供一致的本地环境,方便调试和测试。
  • 自动化测试:快速启动和销毁测试环境。

2. Docker Compose 安装

根据您的操作系统,选择以下安装方法。

2.1 在 Ubuntu 上安装 Docker Compose

2.1.1 通过 apt 安装

1.更新软件包索引:

sudo apt update

2.安装 Docker Compose:

sudo apt install docker-compose

3.验证安装:

docker-compose --version

2.1.2 使用官方脚本安装最新版本

1.下载最新版本:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2.赋予执行权限:

sudo chmod +x /usr/local/bin/docker-compose

3.验证安装:

docker-compose --version

2.2 在 CentOS 上安装 Docker Compose

2.2.1 通过 EPEL 安装

1.启用 EPEL 仓库:

sudo yum install epel-release

2.安装 Docker Compose:

sudo yum install docker-compose

3.验证安装:

docker-compose --version

2.2.2 使用官方脚本安装最新版本

1.下载最新版本:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2.赋予执行权限:

sudo chmod +x /usr/local/bin/docker-compose

3.验证安装:

docker-compose --version

2.2.3 使用 pip 安装

1.安装 pip:

sudo yum install python3-pip

2.通过 pip 安装 Docker Compose:

sudo pip3 install docker-compose

3.验证安装:

docker-compose --version

2.3 在 openEuler 上安装 Docker Compose

openEuler 与 CentOS 类似,但在某些方面有所不同。以下是两种推荐的安装方法。

2.3.1 使用官方脚本安装最新版本

1.下载最新版本:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2.赋予执行权限:

sudo chmod +x /usr/local/bin/docker-compose

3.验证安装:

docker-compose --version

2.2.2 检查并通过 dnf 安装 Docker Compose

1.更新软件包索引:

sudo dnf update

2.搜索 Docker Compose 包:

sudo dnf search docker-compose

如果存在可用的 Docker Compose 包,您会在结果中看到。

3.安装 Docker Compose:

如果搜索结果中显示了 Docker Compose,可以直接使用以下命令安装:

sudo dnf install docker-compose

4.验证安装:

docker-compose --version

2.3.3 使用 pip 安装

1.安装 pip:

sudo dnf install python3-pip

2.通过 pip 安装 Docker Compose:

sudo pip3 install docker-compose

3.验证安装:

docker-compose --version

3. Docker Compose 测试示例

创建一个简单的 docker-compose.yml 文件,包含一个 Nginx 服务和一个 MySQL 数据库服务。

3.1 目录结构:

my_project/

├── docker-compose.yml
└── html/
    └── index.html

3.2 docker-compose.yml 文件内容:

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "8081:80"
    volumes:
      - ./html:/usr/share/nginx/html:ro
    depends_on:
      - db

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: testdb
      MYSQL_USER: testuser
      MYSQL_PASSWORD: testpassword
    ports:
      - "3306:3306"
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:
 

3.3 html/index.html 内容示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Docker Compose Test</title>
</head>
<body>
    <h1>Docker Compose is working!</h1>
</body>
</html>

3.4 启动服务

docker-compose up -d

3.5 访问 Web 服务

在浏览器中访问 http://localhost:8081,您应该看到页面显示 “Docker Compose is working!”。

3.6 看能出现问题

3.6.1 解决端口冲突

如果遇到端口冲突错误,您可以:

1.查找并终止占用端口的进程。

sudo lsof -i :8080 sudo kill <PID>

2.修改 docker-compose.yml 文件中的端口,使用未占用的端口。

3.6.2 停止并移除服务

docker-compose down

4.docker compose常用命令

4.1 启动和停止服务

4.1.1 启动服务

docker-compose up

这个命令会启动 docker-compose.yml 文件中定义的所有服务。如果添加 -d 参数,服务将在后台运行(detached 模式):

docker-compose up -d

4.1.2 停止服务

docker-compose stop

这个命令会停止正在运行的所有服务,但不会移除容器。

4.1.3 停止并移除容器、网络、卷

docker-compose down

这个命令会停止所有服务,并移除创建的容器、网络和卷。如果您想移除关联的数据卷,可以添加 -v 选项:

docker-compose down -v

4.2 构建和管理服务

4.2.1 构建或重建服务

docker-compose build

这个命令根据 Dockerfile 构建镜像。如果只想构建某个服务,可以指定服务名:

docker-compose build <service_name>

4.2.2 拉取服务的镜像

docker-compose pull

这个命令会从远程仓库拉取 docker-compose.yml 文件中定义的镜像。

4.2.3 重新启动服务

docker-compose restart

这个命令会重启所有运行中的服务。

4.3  监控和调试

4.3.1 查看服务的日志

docker-compose logs

这个命令会显示所有服务的日志。如果只想查看某个服务的日志,可以指定服务名:

docker-compose logs <service_name>

4.3.2 列出当前项目的所有容器

docker-compose ps

这个命令会显示当前项目中所有容器的状态和端口映射等信息。

4.3.3 查看服务的状态

docker-compose top

这个命令会显示当前运行的容器及其相关的进程信息。

4.4 扩展和缩放服务

4.4.1 扩展服务

docker-compose up --scale <service_name>=<replica_count>

这个命令会将指定的服务扩展到指定的副本数。例如,扩展 web 服务到 3 个实例:

docker-compose up --scale web=3

4.5 运行一次性命令和任务

4.5.1 在服务容器中运行命令

docker-compose exec <service_name> <command>

这个命令允许您在指定的服务容器中执行命令。例如,在 web 服务容器中打开 Bash shell:

docker-compose exec web bash

4.5.2 运行一次性任务

docker-compose run <service_name> <command>

这个命令会启动一个新的容器并运行指定的命令,然后停止并移除该容器。例如:

docker-compose run web echo "Hello, Docker Compose!"

4.6 配置管理

4.6.1 查看配置

docker-compose config

这个命令会显示当前项目的配置内容,包括合并的配置文件。

4.6.2 列出定义的服务

docker-compose config --services

这个命令会列出 docker-compose.yml 文件中定义的所有服务。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【跨时代】第四次工业革命彻底来袭!什么是AI+

你有没有一种很割裂的感觉&#xff0c;就是在短视频里&#xff0c;AI已经要改变全世界了 但自己一用&#xff0c;却发现只能和AI聊聊天 画几张图 难道是姿势不对&#xff1f;但具体是哪里不对呢。 作为一个老牌程序员&#xff0c;我前面分享了很多计算机相关内容&#xff0c;总…

java基础概念06-原码、反码、补码

一、八位二进制的取值范围&#xff08;没有符号位&#xff09; 二、原码 三、反码 若是反码的计算结果跨0了&#xff0c;则会溢出&#xff0c;计算结果又误差&#xff01; 原因&#xff1a;在反码当中0有两种表现形式&#xff1a; 解决方式&#xff1a;将反码中的两个0&#x…

SSM大学生体质管理系统-计算机毕业设计源码75960

摘要 基于SSM的大学生体质管理系统是一款综合性平台&#xff0c;融合了在线课程、健康知识、体测报告等多项功能&#xff0c;旨在为广大大学生提供全方位的健康管理服务。通过在线课程和健康知识模块&#xff0c;用户可以随时学习健康知识&#xff0c;掌握科学的健康管理方法&a…

推荐一个比较好的开源位置服务平台

平台简介 一直想做一款后台管理系统&#xff0c;同时可以管理人&#xff0c;车&#xff0c;物品&#xff0c;猫&#xff0c;狗&#xff0c;牛羊等一切可以移动的室外事物进行集中化管理&#xff0c;最初的需求聚焦——谁在哪儿&#xff01; 系统框架是基于当前最常用的RuoYi框架…

C# 设计模式之创建者模式

总目录 前言 在软件系统中&#xff0c;有时需要创建一个复杂对象&#xff0c;并且这个复杂对象由其各部分子对象通过一定的步骤组合而成。例如一个采购系统中&#xff0c;如果需要采购员去采购一批电脑时&#xff0c;在这个实际需求中&#xff0c;电脑就是一个复杂的对象&…

DVWA (SQL注入 low)

&#xff08;1&#xff09;判断注入是字符型还是数值型 判断恒为真&#xff0c;字符型&#xff0c;输出ures表中全部用户信息。 1 or 123 123 # &#xff08;2&#xff09;猜测SQL查询字段数 1后面加 闭合 id 查询的 &#xff0c;末尾加# 是注释了后面 的内容&#xff…

LLM智能体工程落地思考(一)

人工智能领域著名教授吴恩达在今年3月份红杉资本的人工智能峰会(AI Ascent)以及最近Snowflake峰会开发者日上都发表了关于AI Agent(人工智能体)的演讲。演讲中&#xff0c;其分享了对AI Agent未来发展潜力的展望。认为AI Agent能够让人工智能胜任更多种类的任务&#xff0c;甚至…

STL源码刨析:树的导览

目录 1.前言 2.关联式容器 3.二叉搜索树 4.平衡二叉搜索树 前言 在阅读了STL源码刨析系列的前几章&#xff0c;我们可以知道容器分为序列式容器和关联式容器。在前几个小节中&#xff0c;我们对序列式容器中的vector和list容器进行了讲解&#xff0c;并比较了vector和list的区别…

学习记录——day24 多线程编程

目录 多线程局部概念 线程支持函数&#xff08;多线程编程&#xff09; pthread_create&#xff1a;创建线程 pthread -self&#xff1a;线程号获取 pthread_exit&#xff1a;线程退出函数 pthread_jion&#xff1a;线程资源回收 pthred_detath&#xff1a;线程分离态 p…

检索增强生成(RAG):智能内容生成的新纪元

引言 在大 AI 时代&#xff0c;生成式人工智能&#xff08;GenAI&#xff09;模型&#xff0c;尤其是大型语言模型&#xff08;LLM&#xff09;&#xff0c;已经展现出了令人瞩目的能力。然而&#xff0c;这些模型在提供信息的准确、即时、专业、权威等方面仍存在局限。检索增…

1.2、安装k8s-node1 和 k8s-node2节点虚拟机

k8s-master节点的虚拟机环境弄好之后&#xff0c;这小节继续介绍k8s-node1 和 k8s-node2节点虚拟机环境安装。 节点主机名ip主节点k8s-master172.31.0.10节点1k8s-node1172.31.0.11节点2k8s-node2172.31.0.12 在D:\vagrant目录下新建centos_stream_9_node1文件夹&#xff0c;然…

如何在Python中使用网页抓取API获得Google搜索结果

SERP是搜索引擎结果页的缩写&#xff0c;它是你在百度、谷歌、Bing等搜索引擎中提交查询后所得到的页面。搜索引擎需要给所有页面做排序&#xff0c;把最能解决我们需求的页面展示给我们&#xff0c;企业会非常关注结果页的排序&#xff0c;也就是本企业内容的自然排名情况。手…

革新IT架构管理,宝兰德全新中间件统一管理平台助力企业数字化转型

近期&#xff0c;宝兰德在金融行业科技盛会“2024中国国际金融展”上正式发布了拳头产品「中间件统一管理平台MCP2.0」&#xff0c;旨在推动业务与中间件解耦&#xff0c;解决中间件管理中的版本不统一、自动化程度低、监控不完善、运维效率低、管理分散等问题&#xff0c;实现…

8月1日学习笔记 java环境安装以及tomcat配置

一&#xff0c;java环境安装 1. 效果 2. 步骤 1. 下载 jdk22 # 官网地址 https://www.oracle.com/cn/java/technologies/download s/ wget https://download.oracle.com/java/22/latest/jdk- 22_linux-x64_bin.tar.gz 2. 解压 tar -zxvf jdk-22.2.tar.gz 3. 移动到 us…

快速搞定分布式Kafka

本文从kafka中的实际应用场景分析&#xff0c;讲述kafka的一些基本概念。再讲述zookeeper集群环境的构建&#xff1b;kafka的搭建以及脚本文件编写&#xff1b;最后是一个快速入门的demo.内容会比较多&#xff0c;希望大家能有所收获&#xff01; 1.Kafka(MQ)实战应用场景剖析…

linux系统ShellCheck检查shell脚步语法正确的工具

目录 ShellCheck 安装ShellCheck 、dnf、yum 源代码编译 步骤如下&#xff1a; 示例命令&#xff1a; 方法三&#xff1a;使用其他第三方仓库、COPR 仓库 假设 ShellCheck 输出如下&#xff1a; 分析输出 修改脚本 再次运行 ShellCheck 1. Shell 脚本最佳实践 主题…

vcpkg install libtorch[cuda] -allow-unsupported-compiler

在vcpkg中不懂如何使用 nvcc 的 -allow-unsupported-compiler, 所以直接注释了CUDA中对版本的检查代码. C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\include\crt\host_config.h 奇了怪了,我是用的是vs2022,但是还是被检查为不支持的编译器!!! 可以试一下改这…

搭建gitlab代码托管仓库(解决centos7无法使用默认数据源问题)

公司的gitlab由于停电&#xff0c;又崩了&#xff0c;每次停电都会崩掉。所以就想到自己学一下搭建gitlab代码中心&#xff0c;后面在搞一个jenkins自动发版学习一下&#xff0c;慢慢搞吧。 在弄的时候&#xff0c;发现Centos7居然在2024年6月31日停止维护了。这就离谱了&…

职教国培丨高职教师数据分析与挖掘课程实施能力提升培训班莅临泰迪智能科技参观调研

7月28日&#xff0c;由广东机电职业技术学院牵头&#xff0c;广东泰迪智能科技股份有限公司为合作单位的“2024年高职教师数据分析与挖掘课程实施能力提升培训班”老师莅临广东泰迪智能科技股份有限公司产教融合实训基地参观调研&#xff0c;来自广东省各地36位高校教师参与本次…

如何在 Kali Linux 上安装和使用 Docker 和 Docker Compose

Docker 和 Docker Compose 是现代开发者必备的工具&#xff0c;特别是当你需要在不同的环境中部署应用时。本文将详细介绍如何在 Kali Linux 上安装 Docker 和 Docker Compose&#xff0c;并使用它们启动服务。即使你是个技术小白&#xff0c;也能轻松跟随这篇指南完成操作。 …