服务器 > 服务器 > 微服务

Docker compose搭建日志系统

46人参与 2024-08-01 微服务

写在前面

本文主要介绍了docker compose核心原理,docker compose的编写以及常用指令,可以对docker compose有个整体的框架


docker compose介绍

docker-compose是docker官方的开源项目,负责实现对docker多容器编排管理系统。使用 docker-compose,可以用一个 yaml 文件定义一组要启动的容器,以及容器运行时的属性。docker-compose的工程配置文件默认为docker-compose.yml,docker compose 的前身是 fig,现阶段 docker compose 是 docker 官方的单机多容器管理系统,它本质是一个python 脚本,它通过解析用户编写的 yaml 文件,调用 docker api 实现动态的创建和管理多个容器。

docker compose安装

  1. 使用 curl 命令(一种发送 http 请求的命令行工具)
  1. 使用pip安装

docker compose文件组成

类似于开发中前后端,docker-compose由如下几个部分组成

其中services需要解决以下四类问题:

  1. 指定镜像(官方开源镜像,dockerfile定制镜像)
  2. 指定容器启动后的命令
  3. 配置容器名、配置环境变量、端口映射
  4. 定义多容器之间依赖关系、映射容器、先后启动顺序

docker compose编写services常用指令

  1. image指令

image指令用于指定dockerfile创建镜像的名称,也可以使用docker hub或其它镜像仓库中的镜像名称。示例:

services:
  web:
    image: nginx:latest
  1. build指令

build指令用于构建镜像,需要指定dockerfile文件的位置,以及镜像名称和版本等信息。示例:

services:
  web:
    build:
      context: .
      dockerfile: dockerfile
      image: mynginx:latest
  1. container_name指令

container_name指令用于指定容器的名称,不设置默认为服务名称。示例:

services:
  web:
    image: nginx:latest
    container_name: mynginx
  1. depends_on指令

depends_on指令用于设置服务之间的依赖关系,即该服务需要在其所依赖的服务启动之后才能启动。示例:

services:
  db:
    image: mysql:latest
  web:
    image: nginx:latest
    depends_on:
      - db
  1. links指令

links指令用于设置容器之间的连接关系,即从一个容器中访问另一个容器。示例:

services:
  db:
    image: mysql:latest
  web:
    image: nginx:latest
    links:
      - db:mysql
  1. ports指令

ports指令用于将容器内的端口映射到宿主机的端口,以实现对外服务的访问。示例:

services:
  web:
    image: nginx:latest
    ports:
      - 8080:80
  1. volumes指令

volumes指令用于将容器内的目录或文件映射到宿主机的目录或文件,以实现数据的持久化。示例:

services:
  db:
    image: mysql:latest
    volumes:
      - ./data:/var/lib/mysql

docker compose操作命令

docker compose搭建日志系统

  1. 安装docker compose,使用下面的命令行直接安装。实际上该命令的作用就是下载docker compose二进制文件,并将二进制文件存储到/usr/local/bin目录,并重命名为docker-compose。
$ sudo curl -l "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  1. 书写一个docker compose配置文件docker-compose.yml。
#指定 docker-compose.yml 文件的版本
version: '3.3'

# 定义所有的 service 信息, services 下面的第一级别的 key 既是一个 service 的名称
services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     # 定义容器重启策略
     restart: always
     # 设置环境变量, environment 的值可以覆盖 env_file 的值 
     environment:
       mysql_root_password: somewordpress
       mysql_database: wordpress
       mysql_user: wordpress
       mysql_password: wordpress

   wordpress:
     #docker-compose up 以依赖顺序启动服务,先启动db
     depends_on:
       - db
     image: wordpress:latest
     # 建立宿主机和容器之间的端口映射关系,容器的 80 端口和宿主机的 8000 端口建立映射关系
     ports:
       - "8000:80"
     restart: always
     environment:
       wordpress_db_host: db:3306
       wordpress_db_user: wordpress
       wordpress_db_password: wordpress
       wordpress_db_name: wordpress
# 定义容器和宿主机的卷映射关系, 其和 networks 一样可以位于 services 键的二级key和 compose 顶级key, 如果需要跨服务间使用则在顶级key定义, 在 services 中引用
volumes:
    db_data: {}

  1. 在docker-compose.yml的同一个目录下执行命令/usr/local/bin/docker-compose up -d 完成服务启动。就是这么简单我已经安装完成了,访问http://<linux宿主机服务器>:8000你会看到下图,按照图形提示一步一步的设置你的博客就可以了。
    在这里插入图片描述
(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

【DevOps】 什么是容器 - 一种全新的软件部署方式

08-02

网格化监控:Eureka与分布式服务网格的协同监控

08-02

【Docker】docker常用命令

08-02

ZooKeeper中节点的操作命令(查看、创建、删除节点)_zookeeper 删除 节点

08-02

服务注册 Zookeeper

08-02

Zookeeper与Nacos的对比分析

08-02

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论