Code前端首页关于Code前端联系我们

Docker使用编译:docker-compose容器编排与wordpress博客系统搭建

terry 2年前 (2023-09-28) 阅读数 62 #未命名
作者:大刚测试与开发实践
来源:知乎

1. Docker-Compose1简介❀❙。简介

Docker - Compose 项目是 Docker 官方开源项目,负责实现 Docker 的多容器编排和管理系统。使用 Docker-compose,您可以使用 YAML 文件来指定要启动的一组容器以及容器运行时属性。 Docker-Compose 的项目配置文件默认为 docker-compose.yml

,项目地址为 https://github.com/docker/composedocker用法整理:docker-compose 容器编排及搭建wordpress博客系统docker用法整理:docker-compose 容器编排及搭建wordpress博客系统

2。 Docker-Compose的前世今生

Docker Compose的前身是图,目前Docker Compose是Docker官方的单机多容器管理系统(不能跨机器)。它本质上是一个Python脚本,通过解析用户编写的yaml文件并调用Docker API来动态创建和管理多个容器。? Docker Compose 文件基本分为三部分:services(服务)、networks(网络)和volumes(数据卷)docker用法整理:docker-compose 容器编排及搭建wordpress博客系统docker用法整理:docker-compose 容器编排及搭建wordpress博客系统

1。一般说明说明

说明 说明
图片镜像名称,根据哪个图片使用现有图片
自定义❝图片。如果当前的 docker-compose.yml 和 Dockerfile 位于同一路径,则使用构建键值。也有可能如果不在同一个路径或者Dockerfile不是默认的Dockerfile名,那么就需要指定Dockerfile的路径
命令用于启动镜像的命令,类似于Dockerfile CMD 命令 docker用法整理:docker-compose 容器编排及搭建wordpress博客系统docker用法整理:docker-compose 容器编排及搭建wordpress博客系统

storage_name

存储名称
depends_on 输入服务启动顺序。如果有多个服务(nginx、db、Jenkins),在Jenkins服务下指定depend_on: db,db服务会先启动。
links解决容器之间的Link问题,可以使用db连接db服务,也可以使用test_db别名
ports指定用于端口映射的端口类似- docker 命令的 p 参数
volumes如果附加了数据 使用它就像 docker 命令的 -v 参数:

2.docker-compose.yml 示例

格式:docker-compose。 yml、docker-compose.yaml、compose.yml、compose.yaml

sonic私有云真机平台:http://192.168.1.20:3000/Index/Devices

以下是docker的示例-之前共享的《开源云真机平台-Sonic应用实践》 sonic 服务的 compose.yml 文件。我们来看看上面的指令是如何使用的:

version: '3'  # 版本
services:  # 服务,
  sonic-server-eureka:  # 容器名(sonic微服务注册中心)
    image: "registry.cn-hangzhou.aliyuncs.com/sonic-cloud/sonic-server-eureka:v1.5.0-release"
    hostname: sonic-server-eureka
    environment:  # 环境,读取配置文件中eureka的用户名密码等
      - SONIC_EUREKA_USERNAME
      - SONIC_EUREKA_PASSWORD
      - SONIC_EUREKA_PORT
      - SONIC_EUREKA_HOST=sonic-server-eureka
    volumes:  # 目录映射
      - ./logs/:/logs/
    networks:  # 网络名
      - sonic-network
    ports:  # 端口映射
      - "${SONIC_EUREKA_PORT}:${SONIC_EUREKA_PORT}"
  sonic-server-gateway:  # 容器名(sonic微服务网关)
    image: "registry.cn-hangzhou.aliyuncs.com/sonic-cloud/sonic-server-gateway:v1.5.0-release"
    hostname: sonic-server-gateway
    environment:  # 同样也是一些环境配置,用于和eureka容器通信
      - SONIC_EUREKA_USERNAME
      - SONIC_EUREKA_PASSWORD
      - SONIC_EUREKA_PORT
      - SONIC_EUREKA_HOST=sonic-server-eureka
      - SECRET_KEY
      - EXPIRE_DAY
    volumes:
      - ./logs/:/logs/
    depends_on:  # 指定服务启动顺序,先启动sonic-server-eureka容器
      - sonic-server-eureka
    networks:  # 网络,各个容器必须处于同一网络下才能相互通信
      - sonic-network
    restart: on-failure
  sonic-server-controller:  # 容器名
    image: "registry.cn-hangzhou.aliyuncs.com/sonic-cloud/sonic-server-controller:v1.5.0-release"
    environment:  # 环境配置,读取数据库、账号等配置
      - SONIC_EUREKA_USERNAME
      - SONIC_EUREKA_PASSWORD
      - SONIC_EUREKA_PORT
      - SONIC_EUREKA_HOST=sonic-server-eureka
      - MYSQL_HOST
      - MYSQL_PORT
      - MYSQL_DATABASE
      - MYSQL_USERNAME
      - MYSQL_PASSWORD
      - SONIC_SERVER_HOST
      - SONIC_SERVER_PORT
      - SECRET_KEY
      - EXPIRE_DAY
      - REGISTER_ENABLE
      - NORMAL_USER_ENABLE
      - LDAP_USER_ENABLE
      - LDAP_USER_ID
      - LDAP_BASE_DN
      - LDAP_BASE
      - LDAP_USERNAME
      - LDAP_PASSWORD
      - LDAP_URL
    networks:
      - sonic-network
    volumes:
      - ./logs/:/logs/
    depends_on:
      - sonic-server-eureka
    restart: on-failure
  sonic-server-folder:
    image: "registry.cn-hangzhou.aliyuncs.com/sonic-cloud/sonic-server-folder:v1.5.0-release"
    environment:
      - SONIC_EUREKA_USERNAME

通过上面的配置,我们可以看到docker-compose.yml配置文件是由我们前面介绍的指令组成,它们按照一定的格式排列组合而成。 、秩序和规则。 ,为了满足安排不同的容器相互通信,实现强大的功能

4。 Docker-Compose 操作命令

用法:
使用 Docker 定义并运行多容器应用程序。

用法:
docker-compose [-f name...] [ >... ] [options] [--] [COMMAND] [ARGS...]
docker-compose -h|--help

1.docker-compose 操作命令 所有官方说明,用于正确删除和重新安装,当 docker-compose.yml 文件发生变化或安装错误时 ps 查看所有服务的状态,类似 docker ps -astartstartdocker用法整理:docker-compose 容器编排及搭建wordpress博客系统docker用法整理:docker-compose 容器编排及搭建wordpress博客系统

服务启动

输入服务的启动顺序。如果有多个服务(nginx、db、Jenkins),在Jenkins服务下指定depend_on: db,db服务会先启动。 logs查看Docker组合操作日志

2. docker-compose 运行参数

官方所有设置

docker用法整理:docker-compose 容器编排及搭建wordpress博客系统docker用法整理:docker-compose 容器编排及搭建wordpress博客系统

常用选项

参数 说明
-f-f 指定当前启动非 compose 目录。 yml文件,使用
-d后台运行

3.存储编排操作练习

开始存储编排t。 >> 创建网络 >> 创建并运行容器 每个容器创建到docker用法整理:docker-compose 容器编排及搭建wordpress博客系统docker用法整理:docker-compose 容器编排及搭建wordpress博客系统

的连接使用“docker-compose up”和“docker-compose down”命令时,如果以下四种格式文件之一不存在在当前目录中:docker-compose.yml,docker-compile。 yaml、compose.yml、compose.yaml 或其他文件未使用 -f 参数指定,会显示错误消息:docker用法整理:docker-compose 容器编排及搭建wordpress博客系统docker用法整理:docker-compose 容器编排及搭建wordpress博客系统

取消容器排序

docker-compose down

取消容器排序:停止所有容器>>删除所有容器>>删除容器创建的网络 docker用法整理:docker-compose 容器编排及搭建wordpress博客系统docker用法整理:docker-compose 容器编排及搭建wordpress博客系统

检查容器状态

docker-compose ps  # 查看所有服务状态,类似于docker ps -a
docker用法整理:docker-compose 容器编排及搭建wordpress博客系统docker用法整理:docker-compose 容器编排及搭建wordpress博客系统

启动服务

# docker-compose start  启动所有服务
# docker-compose start [SERVICE...]    启动指定服务
docker-compose start
docker用法整理:docker-compose 容器编排及搭建wordpress博客系统docker用法整理:docker-compose 容器编排及搭建wordpress博客系统

停止服务

# docker-compose stop    停止所有服务
# docker-compose stop [options] [SERVICE...]    停止指定服务
docker-compose stop
docker用法整理:docker-compose 容器编排及搭建wordpress博客系统docker用法整理:docker-compose 容器编排及搭建wordpress博客系统

与 down 命令不同,stop 只停止对应的容器,但不会删除对应的容器 docker用法整理:docker-compose 容器编排及搭建wordpress博客系统docker用法整理:docker-compose 容器编排及搭建wordpress博客系统

查看日记

docker-compose logs

5。使用 Docker Compose 构建 WordPress 博客系统

我们已经解释了一些常用指令,并简要演示了 docker-compose.yml sonic 前端和后端服务的容器编排。接下来,我们结合 docker -compose 和 WordPress 容器来创建我们自己的容器编排服务。官方配置文件内容如下:

1.配置docker-compose.yml

官网地址:https://docs.docker.com/compose/wordpress/

services:
  db:
    # We use a mariadb image which supports both amd64 & arm64 architecture
    image: mariadb:10.6.4-focal
    # If you really want to use MySQL, uncomment the following line
    #image: mysql:8.0.27
    command: '--default-authentication-plugin=mysql_native_password'
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=somewordpress
      - MYSQL_DATABASE=wordpress
      - MYSQL_USER=wordpress
      - MYSQL_PASSWORD=wordpress
    expose:
      - 3306
      - 33060
  wordpress:
    image: wordpress:latest
    volumes:
      - wp_data:/var/www/html
    ports:
      - 88:80
    restart: always
    environment:
      - WORDPRESS_DB_HOST=db
      - WORDPRESS_DB_USER=wordpress
      - WORDPRESS_DB_PASSWORD=wordpress
      - WORDPRESS_DB_NAME=wordpress
volumes:
  db_data:
  wp_data:

【注】

  • 以上配置内容可随意修改,不一定必须遵循比如我本地有MySQL,就不需要设置mysql或者mariadb存储
  • yml文件冒号后面要有空格,格式要严格标准

2。检查存储状态

docker-compose ps -a
docker用法整理:docker-compose 容器编排及搭建wordpress博客系统docker用法整理:docker-compose 容器编排及搭建wordpress博客系统

3。前端访问

启动Docker写入。所有容器均处于上部状态。您现在可以访问控制面板。 http://192.168.1.123:88/,需要先安装配置,如:设置数据库并命名页面docker用法整理:docker-compose 容器编排及搭建wordpress博客系统docker用法整理:docker-compose 容器编排及搭建wordpress博客系统

我的个人博客主页是:docker用法整理:docker-compose 容器编排及搭建wordpress博客系统docker用法整理:docker-compose 容器编排及搭建wordpress博客系统

因为我是内网服务器并且只能在局域网内使用。公网无法访问。如果你有公网的云服务器,比如阿里云,你就可以创建自己的个人网站。这类服务器要求不高,入门级的也适合。现在的云服务器相当便宜,一年只需几十块钱。例如阿里云服务器的个人用户可以免费试用1个月。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门