Docker Compose及Docker 知识点整理

目录

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.mzph.cn/news/191686.shtml

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

相关文章

华为云之快速部署FTP站点

华为云之快速部署FTP站点 一、本次实践介绍1.1 实践环境简介1.2 本次实践目的 二、vsftpd介绍2.1 vsftpd简介2.2 vsftpd特点 三、环境准备工作3.1 预置实验环境3.2 查看预置环境信息3.3 登录华为云3.4 查看弹性云服务器状态3.5 查看弹性公网IP地址3.6 ssh登录弹性云服务器3.6 查…

基于c#+mysql+winform学生成绩管理系统-实践作业

基于c#mysqlwinform学生成绩管理系统-实践作业 一、系统介绍二、功能展示四、其它1.其他系统实现五.获取源码 一、系统介绍 分老师与学生两个界面; 老师能查看学生信息并评价,添加,删除学生; 老师能查看学生成绩并修改&#xff0…

整数分频,奇偶分频。

实验目标: 实现任意整数奇偶分频。 /* 二分频电路就是用同一个时钟信号通过一定的电路结构转变成不同频率的时钟信号。 二分频就是通过有分频作用的电路结构,在时钟每触发2个周期时,电路输出1个周期信号。 比如用一个脉冲时钟触发一个计…

Kubernetes入门学习(上)

文章目录 Kubernetes入门学习(上)介绍云原生 Kubernetes架构基础概念Kubernetes架构控制平面组件Node组件 组件关系 安装Kubernetes基本对象和操作Pod(容器集)Deployment(部署)与ReplicaSet(副本集)Service(服务&#…

第一百八十七回 DropdownButton组件

文章目录 1. 概念介绍2. 使用方法2.1 DropdownButton2.2 DropdownMenuItem 3. 示例代码4. 内容总结5. 经验分享 我们在 上一章回中介绍了"DropdownMenu组件"相关的内容,本章回中将介绍 DropdownButton组件.闲话休提,让我们一起Talk Flutter吧…

使用 kubeadm 部署 Kubernetes 集群(三)kubeadm 初始化 k8s 证书过期解决方案

一、延长k8s证书时间 查看 apiserver 证书有效时间:默认是一年的有效期 [rootxuegod63 ~]# openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep Not 延长证书过期时间 1.把 update-kubeadm-cert.sh 文件上传到 xuegod63 节点 vim update-…

Unity 下载网络图片的方法,并把图片赋值给UI和物体的方法

Unity 下载网络图片的方法,可使用WWW类或UnityWebRequest类,其中UnityWebRequest是新版的方法。 通常我们下载图片都会转成Texture,然后赋值给UI或者物体。 具体实现方法: using System.Collections; using System.Collections…

深入理解贝叶斯分类与朴素贝叶斯模型(Naive Bayes, NB):从基础到实战

目录 贝叶斯分类 公式 决策规则 优点 贝叶斯分类器的例子——垃圾邮件问题 1. 特征(输入): 2. 类别: 3. 数据: 4. 模型训练: 注:类别先验概率 5. 模型预测: 朴素贝叶斯模…

【开题报告】基于深度学习的驾驶员危险行为检测系统

研究的目的、意义及国内外发展概况 研究的目的、意义:我国每年的交通事故绝对数量是一个十分巨大的数字,造成了巨大的死亡人数和经济损失。而造成交通事故的一个很重要原因就是驾驶员的各种危险驾驶操作行为。如果道路驾驶员的驾驶行为能够得到有效识别…

并行和并发的区别

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、并发2、并行3、异同点 1、并发 当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若…

基于SpringBoot的企业客户管理系统的设计与实现

摘 要 本论文主要论述了如何使用JAVA语言开发一个企业客户管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述企业客户管理系统的当前背景以及系统开发的目…

npm ERR! notarget No matching version found for @eslint/eslintrc@^2.1.4.

文章目录 Intro解决流程总结前置信息了解npm 镜像源三个要用到的npm命令 官方源确认查看当前镜像源的详情解决: 切换镜像源后重试重新操作 事后感受 Intro 事由是今天我在用 create-react-app 新建一个用于测试的前端项目。 然后就出现以下报错: wuyuj…

【LeetCode热题100】【双指针】移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums [0] 输出…

什么样的SSL证书比较好?

首先需要明确的是最适合自己的就是最好的SSL证书。目前市场上的证书种类很多,那怎么才能挑选出最适合自己的呢?我罗列了几个需要考虑的方面。 1.证书类型:根据您的需求选择合适的证书类型。例如,如果您需要验证公司信息&#xff0…

ios 长传发布审核+safari浏览器,直接安装ipa文件

蒲公英二维码方法 个人开发者账号发布证书AD-hoc 描述文件蒲公英上传链接通过苹果safari 浏览器下载IPA包 浏览器下载方法 前置条件 1.下载 ipa 包的设备的 uuid 已加入 苹果测试设备列表如何添加到测试列表 2.web 服务, 文件服务. 3.需要AD-hoc 描述文件 添加链接描述 1.创…

python常用函数

1.len函数求字符串长度 例如 2.input函数为输入 input里边可以是任意类型的数据 但是它返回的值是一个字符串(即现在只能做出打印那些操作) 想做出其他操作的话,要强制类型转换 例,用str转换为字符串(类似的还有float),字符串可以互相拼接 所以要记得用了input函数后要强制…

kali学习

目录 黑客法则: 一:页面使用基础 二:msf和Windows永恒之蓝漏洞 kali最强渗透工具——metasploit 介绍 使用永恒之蓝进行攻击 ​编辑 使用kali渗透工具生成远程控制木马 渗透测试——信息收集 域名信息收集 黑客法则: 一&…

N-135基于springboot,vue高校图书馆管理系统

开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 系统分前后台,项目采用前后端分离 前端技术:vueelementUI 服务端技术:springbootmybatisredis 本项…

抖音直播招聘报白的介绍和案例

抖音直播招聘报白是指企业人力资源公司在抖音进行直播招聘时,需要向抖音平台提供审核申请。通过报白,企业或人力资源公司可以更好的获取招聘渠道和更多曝光的机会,同时可以提升品牌形象和知名度。报白的对象针对需要企业自招的企业和人力资源…

熬夜会秃头——beta冲刺Day7

这个作业属于哪个课程2301-计算机学院-软件工程社区-CSDN社区云这个作业要求在哪里团队作业—beta冲刺事后诸葛亮-CSDN社区这个作业的目标记录beta冲刺Day7团队名称熬夜会秃头团队置顶集合随笔链接熬夜会秃头——Beta冲刺置顶随笔-CSDN社区 一、团队成员会议总结 1、成员工作…