Docker使用编译:docker-compose容器编排与wordpress博客系统搭建
来源:知乎
1. Docker-Compose1简介❀❙。简介
Docker - Compose 项目是 Docker 官方开源项目,负责实现 Docker 的多容器编排和管理系统。使用 Docker-compose,您可以使用 YAML 文件来指定要启动的一组容器以及容器运行时属性。 Docker-Compose 的项目配置文件默认为 docker-compose.yml
,项目地址为 https://github.com/docker/compose![]()
![]()
2。 Docker-Compose的前世今生
Docker Compose的前身是图,目前Docker Compose是Docker官方的单机多容器管理系统(不能跨机器)。它本质上是一个Python脚本,通过解析用户编写的yaml文件并调用Docker API来动态创建和管理多个容器。? Docker Compose 文件基本分为三部分:services(服务)、networks(网络)和volumes(数据卷)![]()
![]()
1。一般说明说明
| 说明 | 说明 | |
| 图片 | 镜像名称,根据哪个图片使用现有图片 | |
| 自定义❝图片。如果当前的 docker-compose.yml 和 Dockerfile 位于同一路径,则使用构建键值。也有可能如果不在同一个路径或者Dockerfile不是默认的Dockerfile名,那么就需要指定Dockerfile的路径 | ||
| 命令 | 用于启动镜像的命令,类似于Dockerfile CMD 命令 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 -a start start 

服务启动
输入服务的启动顺序。如果有多个服务(nginx、db、Jenkins),在Jenkins服务下指定depend_on: db,db服务会先启动。 logs 查看Docker组合操作日志 2. docker-compose 运行参数
官方所有设置


常用选项
服务启动
| 参数 | 说明 | |
| -f | -f | 指定当前启动非 compose 目录。 yml文件,使用 |
| -d | 后台运行 |
3.存储编排操作练习
开始存储编排t。 >> 创建网络 >> 创建并运行容器 每个容器创建到

的连接使用“docker-compose up”和“docker-compose down”命令时,如果以下四种格式文件之一不存在在当前目录中:docker-compose.yml,docker-compile。 yaml、compose.yml、compose.yaml 或其他文件未使用 -f 参数指定,会显示错误消息:![]()
![]()
取消容器排序
docker-compose down取消容器排序:停止所有容器>>删除所有容器>>删除容器创建的网络 ![]()
![]()
检查容器状态
docker-compose ps # 查看所有服务状态,类似于docker ps -a启动服务
# docker-compose start 启动所有服务
# docker-compose start [SERVICE...] 启动指定服务
docker-compose start停止服务
# docker-compose stop 停止所有服务
# docker-compose stop [options] [SERVICE...] 停止指定服务
docker-compose stop 与 down 命令不同,stop 只停止对应的容器,但不会删除对应的容器 ![]()
![]()
查看日记
docker-compose logs5。使用 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 -a3。前端访问
启动Docker写入。所有容器均处于上部状态。您现在可以访问控制面板。 http://192.168.1.123:88/,需要先安装配置,如:设置数据库并命名页面![]()
![]()
我的个人博客主页是:![]()
![]()
因为我是内网服务器并且只能在局域网内使用。公网无法访问。如果你有公网的云服务器,比如阿里云,你就可以创建自己的个人网站。这类服务器要求不高,入门级的也适合。现在的云服务器相当便宜,一年只需几十块钱。例如阿里云服务器的个人用户可以免费试用1个月。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网