Docker Compose及Docker 知识点整理

目录

[1、Docker Compose 简介](#1、Docker Compose 简介)

[2、为什么要使用Docker Compose](#2、为什么要使用Docker Compose)

[3、Docker Compose安装使用(Linux)](#3、Docker Compose安装使用(Linux))

[3.1 下载](#3.1 下载)

[3.2 mkdir docker 文件夹目录](#3.2 mkdir docker 文件夹目录)

[3.3 上传docker-compose到docker文件夹](#3.3 上传docker-compose到docker文件夹)

[3.4 移动到 /usr/local/bin 目录下](#3.4 移动到 /usr/local/bin 目录下)

[3.5 添加执行权限](#3.5 添加执行权限)

[3.6 修改文件名为 docker-compose](#3.6 修改文件名为 docker-compose)

[3.7 查看版本](#3.7 查看版本)

[⭐3.8 创建docker-compose.yml文件](#⭐3.8 创建docker-compose.yml文件)

4、idea整合docker-compose

[4.1 Dockerfile](#4.1 Dockerfile)

[4.2 创建docker-compose.yml文件](#4.2 创建docker-compose.yml文件)

[⭐Docker 相关知识点整理](#⭐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博客


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

相关推荐
雪域迷影2 小时前
PostgreSQL Docker Error – 5432: 地址已被占用
数据库·docker·postgresql
福大大架构师每日一题3 小时前
22.1 k8s不同role级别的服务发现
容器·kubernetes·服务发现
莹雨潇潇3 小时前
Docker 快速入门(Ubuntu版)
java·前端·docker·容器
tangdou3690986554 小时前
1分钟搞懂K8S中的NodeSelector
云原生·容器·kubernetes
tangdou3690986557 小时前
Docker系列-5种方案超详细讲解docker数据存储持久化(volume,bind mounts,NFS等)
docker·容器
later_rql7 小时前
k8s-集群部署1
云原生·容器·kubernetes
杨荧10 小时前
【JAVA开源】基于Vue和SpringBoot的洗衣店订单管理系统
java·开发语言·vue.js·spring boot·spring cloud·开源
漫无目的行走的月亮10 小时前
在Docker中运行微服务注册中心Eureka
docker
大G哥12 小时前
记一次K8S 环境应用nginx stable-alpine 解析内部域名失败排查思路
运维·nginx·云原生·容器·kubernetes
大道归简13 小时前
Docker 命令从入门到入门:从 Windows 到容器的完美类比
windows·docker·容器