Docker Compose及Docker 知识点整理

news2025/2/27 7:09:28

目录

1、Docker Compose 简介

2、为什么要使用Docker Compose

3、Docker Compose安装使用(Linux)

3.1 下载

3.2 mkdir docker 文件夹目录

3.3 上传docker-compose到docker文件夹

3.4 移动到 /usr/local/bin 目录下

3.5 添加执行权限

3.6 修改文件名为 docker-compose

3.7 查看版本

⭐3.8 创建docker-compose.yml文件

4、idea整合docker-compose

4.1 Dockerfile

4.2 创建docker-compose.yml文件

⭐Docker 相关知识点整理


1、Docker Compose 简介

图片来源:.NET Core容器化之多容器应用部署@Docker-Compose - JavaShuo

官网简介:Docker Compose overview | Docker Docs

根据官网的说明,Compose是一个定义和运行多容器Docker应用程序的工具。使用Compose,您可以使用YAML文件来配置应用程序的服务。然后,只需一个命令,就可以从配置中创建并启动所有服务。

在所有环境中创作作品;生产、试运行、开发、测试以及CI工作流。它还包含用于管理应用程序整个生命周期的命令

  • 启动、停止和重建服务
  • 查看运行服务的状态
  • 流式传输正在运行的服务的日志输出
  • 在服务上运行一次性命令

Compose的关键特性使其有效

  • 在单个主机上拥有多个独立的环境
  • 创建容器时保留卷数据
  • 仅重新创建已更改的容器
  • 支持变量和在环境之间移动组合

2、为什么要使用Docker Compose

因为在实际开发中,一个应用往往包含许多个服务,而docker的应用是作为一个容器只运行一个应用进程。因此如果要运行多个微服务就需要运行多个容器,compose的出现就是为了有效地管理这些容器,包括定义、创建、启动等。它是一个能够编排多容器分布式部署的工具。使用 compose 可以简化容器镜像的构建以及容器的运行。

本质上,compose 把 YAML 文件解析成 docker 命令的参数,然后调用相应的 docker 命令行接口,从而将应用以容器化的方式管理起来。它通过解析容器间的依赖关系顺序地启动容器。而容器间的依赖关系由 YAML 文件中的 links 标记指定。(本段引自:https://www.jianshu.com/p/87d701d0801d)

简单来说,就是使用compose能够让docker的操作更加简单和便于管理。

3、Docker Compose安装使用(Linux)

3.1 下载

下载地址(以v2.14.2版本为例):

docker-compose-linux-x86_64

3.2 mkdir docker 文件夹目录

[root@localhost software]# mkdir docker
[root@localhost software]# ls
canal  docker  gitlab  jdk  mysql  nexus  nginx  project  rabbitmq  redis  redis_sentinel

3.3 上传docker-compose到docker文件夹

3.4 移动到 /usr/local/bin 目录下

mv docker-compose-linux-x86_64  /usr/local/bin

3.5 添加执行权限

[root@localhost bin]# chmod u+x docker-compose-linux-x86_64

[root@localhost bin]# ll

总用量 43868

-rwxr--r--. 1 root root 44920832 12月 1 14:15 docker-compose-linux-x86_64

3.6 修改文件名为 docker-compose

进入bin目录下

[root@localhost bin]# mv docker-compose-linux-x86_64 docker-compose

3.7 查看版本

[root@localhost local]# cd bin/
[root@localhost bin]# ls
docker-compose
[root@localhost bin]# docker-compose --version
Docker Compose version v2.14.2

⭐3.8 创建docker-compose.yml文件

简单测试版

version: '2'
services:
  hello-compose01:
    build: .
    image: nginx
    container_name: nginx_01
    ports:
      - "10001:80"
  hello-compose02:
    build: .
    image: nginx
    container_name: nginx_02
    ports:
      - "10002:80"

图片来源:Docker-Compose简介 - 简书

运行测试

docker-compose的相关命令

  1. [root@localhost test]# docker-compose
  2. Usage: docker compose [OPTIONS] COMMAND
  3. Docker Compose
  4. Options:
  5. --ansi string Control when to print ANSI control characters
  6. ("never"|"always"|"auto") (default "auto")
  7. --compatibility Run compose in backward compatibility mode
  8. --env-file string Specify an alternate environment file.
  9. -f, --file stringArray Compose configuration files
  10. --parallel int Control max parallelism, -1 for unlimited (default -1)
  11. --profile stringArray Specify a profile to enable
  12. --project-directory string Specify an alternate working directory
  13. (default: the path of the, first specified, Compose file)
  14. -p, --project-name string Project name
  15. Commands:
  16. build Build or rebuild services
  17. convert Converts the compose file to platform's canonical format
  18. cp Copy files/folders between a service container and the local filesystem
  19. create Creates containers for a service.
  20. down Stop and remove containers, networks
  21. events Receive real time events from containers.
  22. exec Execute a command in a running container.
  23. images List images used by the created containers
  24. kill Force stop service containers.
  25. logs View output from containers
  26. ls List running compose projects
  27. pause Pause services
  28. port Print the public port for a port binding.
  29. ps List containers
  30. pull Pull service images
  31. push Push service images
  32. restart Restart service containers
  33. rm Removes stopped service containers
  34. run Run a one-off command on a service.
  35. start Start services
  36. stop Stop services
  37. top Display the running processes
  38. unpause Unpause services
  39. up Create and start containers
  40. version Show the Docker Compose version information
  41. Run 'docker compose COMMAND --help' for more information on a command.

创建

docker-compose up

查看使用docker-compose创建的容器

docker ps

4、idea整合docker-compose

4.1 Dockerfile

容器和访问端口的关系

编辑Dockerfile文件


 

4.2 创建docker-compose.yml文件

 编辑Edit Configurations

服务台开启查看

创建运行compose

注意:运行compose up 后报错 可能是由于本机未安装 Docker Desktop 该程序,下载安装后需重启电脑,再次运行成功。

下载地址:Docker Desktop: The #1 Containerization Tool for Developers | Docker

参考

Docker-Compose简介 - 简书

容器服务的深入应用及原理剖析(4)带你了解Docker Compose - 知乎

.NET Core容器化之多容器应用部署@Docker-Compose - JavaShuo

docker高级篇-docker-compose容器编排介绍及实战 - 知乎

「Linux云计算SRE课程」docker-compose简介及使用!

Docker入门之docker-compose - minseo - 博客园


⭐Docker 相关知识点整理

1. docker常用命令总结:docker常用命令总结_林隐w的博客-CSDN博客

2. docker搭建mysql主从数据库:docker搭建mysql主从数据库-CSDN博客

3. SpringBoot整合Dockerfile:SpringBoot整合Dockerfile-CSDN博客


感谢阅读,码字不易,多谢点赞!如有不当之处,欢迎反馈指出,感谢!

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

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

相关文章

图文深入理解TCP三次握手

前言 TCP三次握手和四次挥手是面试题的热门考点,它们分别对应TCP的连接和释放过程,今天我们先来认识一下TCP三次握手过程,以及是否可以使用“两报文握手”建立连接?。 1、TCP是什么? TCP是面向连接的协议,…

关于Typora如何插入自己的云端视频的方法

关于Typora如何插入自己的云端视频的方法 文章目录 关于Typora如何插入自己的云端视频的方法前言:实现步骤:小结 前言: 我本来使用gitee来作为typora的图床,但我现在想要把我自己的视频上传到云端,然后通过超链接在ty…

2017年全国硕士研究生入学统一考试管理类专业学位联考英语(二)试题

文章目录 Section I Use of EnglishSection II Reading ComprehensionText 121-细节信息题22-细节信息题23-推断题24-细节信息题25-态度题 Text 226-细节信息题27-细节信息题28-细节信息题29-细节信息题30-细节信息题 Text 331-细节信息题32-细节信息题33-猜词题34-细节信息题3…

C语言之位段(详解)

C语言之位段 文章目录 C语言之位段1. 位段的介绍2. 位段的内存分配3. 位段跨平台问题4. 位段的应用5. 位段使用注意 1. 位段的介绍 位段(bit-field)是C语言中的一种特殊数据类型,它允许将一个字节分成几个部分,并为每个部分指定特…

设计模式-结构型模式之组合、享元设计模式

文章目录 四、组合模式五、享元模式 四、组合模式 组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。 组合模式依据树形结构来组合对象,用来表示部分以及整体层次。它创建了…

嵌入式Linux:ARM驱动+QT应用+OpenCV人脸识别项目实现

一、前言: 这个项目主要分为两部分,客户端(ARM板端)负责利用OpenCV采集人脸数据,利用TCP将人脸数据发送给服务器,然后服务器根据人脸数据进行人脸识别,将识别后的结果返还给客户端,客…

【教学类-06-13】20231202 0-9数字分合-房屋样式(二)-左空或者右空-升序-抽7题

作品展示: 背景需求: 【教学类-06-12】20231202 0-9数字分合-房屋样式(一)-下右空-升序-抽7题-CSDN博客文章浏览阅读102次。【教学类-06-12】20231202 0-9数字分合-房屋样式-下右空-升序https://blog.csdn.net/reasonsummer/arti…

Redis数据存储:高效、灵活、实时

目录 引言 1. Redis概述 1.1 什么是Redis? 1.2 Redis的数据结构 1.3 Redis的持久化机制 2. Redis的使用场景 2.1 缓存 2.2 会话存储 2.3 发布/订阅系统 2.4 计数器和排行榜 3. Redis最佳实践 3.1 数据模型设计 3.2 键的命名规范 3.3 事务和原子操作 3…

windows11 hosts文件没权限修改

1 win➕R 2 输入 cmd 3 同时按三个键 ctrl➕shift➕enter打开管理员权限 4 输入notepad回车,在记事本里直接点击文件-打开,选择路径:C:\Windows\System32\drivers\etc,继续选择所有文件,然后打开hosts文件 5 修改完之后,c…

九九乘法表-第11届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第13讲。 九九乘法表&#…

SickOs1.2

信息收集 # Nmap 7.94 scan initiated Wed Nov 22 22:16:22 2023 as: nmap -sn -oN live.nmap 192.168.182.0/24 Nmap scan report for 192.168.182.1 (192.168.182.1) Host is up (0.00028s latency). MAC Address: 00:50:56:C0:00:08 (VMware) Nmap scan report for 192.168…

04-配置远程仓库的SSH免密登陆

配置SSH免密登录 配置步骤 创建好的远程仓库也可以使用SSH的方式进行访问,但如果没有配置公钥会有警告 第一步: 删除用户家目录下的.ssh目录,如果没有该目录或者该目录下已经有密钥了就不用执行该操作 #进入当前用户的家目录,删除.ssh 目录 LayneLAPTOP-Layne MINGW64 ~ $ r…

hexo博客部署到云服务器

欢迎大家到我的博客浏览。hexo博客部署到云服务器 | YinKais Blog 这篇文章带大家将hexo博客部署到云服务器上! 一、服务器环境安装 1、安装 node js yum install gcc-c make yum -y install nodejs yum -y install npm 验证 node -v npm -v 2、安装git、ngin…

基于SSM的网上书城

简介 本系统主要分为前台和后台,前台网页主要是面向用户的,用户注册登录后网上书城可以进行下单购买图书,主要功能有图书基本信息的查询、用户登录和注册、图书搜索、添加购物车、购买、订单查询等功能,后台是管理员进入的&#x…

Spring-SpringFramework特性以及IOC相关知识

SpringFramework五大模块 特性 IOC思想和DI IOC是容器,用于管理资源 IOC:Inversion of Control 反转控制 DI:Dependecy Injection 依赖注入 组件以预先定义好的方式接受来自容器的资源注入 IOC在Spring中的实现 spring提供两种方式&…

网上商城、宠物商城源码(Java)

javaWebjsp网上书城以及宠物商城源码,功能有购物车、收藏以及下单等等功能 带后台管理功能 运行示意图:

我爱上这38个酷炫的数据大屏(附 Python 源码)

随着大数据的发展,可视化大屏在各行各业得到越来越广泛的应用。 可视化大屏不再只是电影里奇幻的画面,而是被实实在在地应用在政府、商业、金融、制造等各个行业的业务场景中,切切实实地实现着大数据的价值。 所以本着学习的态度&#xff0…

【算法通关村】链表基础经典问题解析

【算法通关村】链表基础&经典问题解析 一.什么是链表 链表是一种通过指针将多个节点串联在一起的线性结构,每一个节点(结点)都由两部分组成,一个是数据域(用来存储数据),一个是指针域&…

软件工程 - 第8章 面向对象建模 - 4 - 物理体系结构建模

构件图 构件图概述 构件图描述了软件的各种构件和它们之间的依赖关系。 构件图的作用 在构件图中,系统中的每个物理构件都使用构件符号来表示,通常,构件图看起来像是构件图标的集合,这些图标代表系统中的物理部件,…

前端监控学习笔记

现成的SDK SentryFun Debug 需要监控什么? 错误统计 记录我们代码发布到线上各种奇奇怪怪的错误 行为日志埋点 记录用户行为,比如:分析用户浏览时间比较长的页面有哪些,常常点击的有哪些,可以做 相应的推荐 PV/UV统…