Docker-compose容器编排
  Il1dbC9Jhbvl 2023年11月02日 42 0

Docker容器编排的作用是管理和协调多个Docker容器的部署、启动、停止和扩展等操作。它可以确保应用程序在分布式环境中以可靠、高效和可伸缩的方式运行。

1)安装步骤

参考官网文档,选择对应的系统版本即可,官网提供两种安装方式请根据需要自行选择。

Docker-compose容器编排_Docker-compose

https://docs.docker.com/desktop/install/linux-install/
#安装docker-compose,这里是以Centos7为例
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-compose-plugin 
#查看版本
docker compose version

2)核心概念

允许你使用简单的文本文件(通常是 YAML 格式)来定义和管理多个 Docker 容器,以构建和部署多个服务组件的应用程序

3)docker -compose常用命令

#启动容器组:
docker-compose up       #根据 docker-compose.yml 文件启动所有定义的服务,并将它们连接到相应的网络。
#在后台启动容器组:
docker-compose up -d    #将容器组作为守护进程在后台运行。
#停止compose定义的容器
docker-compose stop 
docker-compose down     #停止并删除所有正在运行的容器,以及相关的网络和卷。
#查看容器组日志:
docker-compose logs     #使用这个命令来查看容器组中所有服务的日志输出。
#构建和启动容器组:
docker-compose up --build   #如果需要重新构建镜像,在启动容器之前使用此命令。
#列出容器组中的容器
docker-compose ps

4)容器编排常用字段

version:  指定 Docker Compose 文件的版本,如 "3"。
services: 定义服务(容器)的配置信息。
image: 指定服务所使用的镜像。
build: 指定构建镜像时所需的构建上下文路径或 Dockerfile 文件路径。
ports: 将主机端口映射到容器端口,可以指定单个端口或范围。
volumes: 挂载主机目录或数据卷到容器的指定路径。
environment: 设置容器环境变量。
networks: 将容器连接到指定的网络。
depends_on: 定义服务之间的依赖关系。
command: 指定容器启动时执行的命令。
restart: 定义容器的重启策略。
privileged: 设置容器的特权模式。
logging: 配置容器的日志记录选项。
healthcheck: 定义容器的健康检查配置。
deploy: 配置服务的部署选项,如 replicas 数量、资源约束等。
configs: 配置服务所使用的配置文件。
secrets: 配置服务所使用的敏感信息。
labels: 为服务添加自定义标签。
networks: 定义网络配置,包括网络类型、子网、IP范围等。
volumes: 定义数据卷配置,包括驱动程序、驱动选项等。
configs: 定义配置文件的配置选项。
secrets: 定义敏感信息的配置选项。
extensions: 定义 Docker Compose 文件的扩展配置。

5)撰写docker-compose文件

version: "3"            #版本号
services:               #在此项下添加容器实例
  Apache1:              #定义实例名
    image: centos:2.0   #镜像名称+版本号   
    ports:
      - "8080:80"       #要映射到宿主机的端口号
    volumes:            #挂载的数据卷路径
      - /apache1/:/var/www/html/
    networks:           #网络模式
      - lr_network      #自定义网络的名字
    command: /bin/sh -c "/usr/bin/init && systemctl start httpd && bash"        #使用/bin/sh -c命令来执行多个命令。首先启动/usr/bin/init,然后执行systemctl start httpd命令来启动服务,最后启动一个交互式bash终端。

  Apache2:
    image: centos:2.0
    ports:
      - "8081:80"
    networks:
      - lr_network
    volumes:
      - /apache2/:/var/www/html/
    privileged: true                            
    command: /bin/sh -c "/usr/bin/init && systemctl start httpd && bash"

networks:
  lr_network:

后台运行yml文件

docker compose up  -d
#停止并删除Compose文件中定义的所有容器、网络和卷。
docker compose down

Docker-compose容器编排_Docker-compose_02

查看容器是否启动成功

docker ps

Docker-compose容器编排_Docker-compose_03

查看服务是否启动成功

Docker-compose容器编排_Linux_04

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  6YY0QMPUXEwu   2023年12月10日   31   0   0 linux网卡
  Ex81gqy3LOX7   2023年12月07日   29   0   0 linux
  nIt0XG0acU8j   2023年12月11日   33   0   0 linuxhtop
  nIt0XG0acU8j   2023年12月09日   39   0   0 linuxsort
Il1dbC9Jhbvl