Docker compose搭建日志系统

写在前面

本文主要介绍了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 请求的命令行工具)

$ sudo curl -L “https://github.com/docker/compose/releases/download/1.29.2/docker-compose- ( u n a m e − s ) − (uname -s)- (unames)(uname -m)” -o /usr/local/bin/docker-compose

  1. 使用PIP安装

$ pip install -U docker-compose

Docker compose文件组成

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

  • services(服务层):定义容器该如何启动,用哪个镜像,容器启动的参数等,类似于docker run
  • networks(网络层) : 定义网络的配置,类似于docker network create创建网络配置
  • volumns(数据卷层):定义容器数据共享

其中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 up 前台的形式启动服务
  • docker-compose -f docker-compose.yml up –d 后台的形式启动服务
  • docker-compose ps 查看当前docker-compose启动的实例
  • docker-compose start 启动所有服务
  • docker-compose start [SERVICE…] 可以单独启动某个服务,比如:docker-compose start nginx
  • docker-compose stop [options] [SERVICE…] 可以单独关闭某个服务,比如:docker-compose stop nginx
  • docker-compose logs 查看日志 如单独查看某个日志: docker-compose logs nginx

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值