【docker四】使用Docker-compose一键部署Wordpress平台

news2024/12/22 17:17:12

目录

一、YAML 文件格式及编写注意事项(重要)

1、yaml文件使用时注意事项:

2、yaml文件的基本数据结构:

2.1、声明变量(标量。是单个的不可再分的值,类型:字符串,整数,布尔类型)

2.2、list(列表):表示有序的元素集合

2.3、键值对映射:

2.4、注释:

2.5、引用:

2.6、字符串引号:

二、docker-compose

1、概述

2、docker-compose的常用命令:

3、docker-compose的三大概念

三、部署docker-compose

1、docker-compose安装:

2、创建工作目录,编写相关Dockerfile文件

3、编写配置文件docker-compose.yml

4、根据配置文件创建和启动容器

5、登录容器,进行相关操作

四、访问宿主机IP,安装Wordpress


一、YAML 文件格式及编写注意事项(重要)

yaml文件:是一种标记语言,以竖列的形式展示序列化的数据格式,可读性高

类似于json格式。语法比json简单

yaml通过缩进来表示数据结构,连续的项目用-减号来表示

1、yaml文件使用时注意事项:

  1. 大小写敏感
  2. 通过缩进表示层级关系
  3. 只能用空格缩进,不能用tab键
  4. 可以使用#号键注释
  5. 符号字符后面都有一个空格 test: 2
  6. 单引号引起来的字符,会被当做普通字符串处理。"#$*",若双引号引来的特殊字符表示本意

2、yaml文件的基本数据结构:

2.1、声明变量(标量。是单个的不可再分的值,类型:字符串,整数,布尔类型)
name: test
age:	20
tall: yes
handsan: yes
wan: no
2.2、list(列表):表示有序的元素集合
class:
  - test
  - test1
  - test2
2.3、键值对映射:
student: 
  name: test
  age: 20
student1:
  name: test1
  age: 18
2.4、注释:
#test
2.5、引用:
student: &id1
  name: test
  age: 20
student1: *id1
#用&来定义锚点,用*来进行引用
2.6、字符串引号:
name: 'test'
name: "test"
name: '$'		表示字符串
name: "$"	表示$这个字符

二、docker-compose

1、概述

docker-compose:单机容器编排

Dockerfile:先配置好文件,然后build,镜像——>容器。

docker-compose:即可基于Dockerfile,也可以基于镜像,可以一键式拉起镜像和容器

docker-compose是基于python开发的,能运行docker的平台,都能用docker-compose编排管理容器。

本质就是在yaml格式的docker-compose配置模板文件里定义多个容器的启动参数和依赖关系,并使用docker-compose根据这个模板文件的配置启动和管理容器集群。

docker-compose核心就是yml文件,可以定义容器的一切。通过yml配置,直接运行容器

docker:主要服务于单节点。docker没有统一对外提供服务的端口和配置。docker一般都是内部访问。无需使用https。如果要对外以集群和分布式的方式提供统一访问的端口,K8S+ingress

2、docker-compose的常用命令:


必须有docker-compose.yml文件

build:构建服务

ps:列出由docker-compose编排出来的容器

up:创建和启动容器

top:显示容器的进程

logs:查看容器的输出日志

down:删除容器,网络,数据卷

exec:在容器中执行命令

stop/start/restart:停止/启动/重启

scale:指定容器服务启动的数量(副本)。

3、docker-compose的三大概念

项目project -> 包含一个或多个服务service -> 包含一个或多个容器的镜像、映射端口、环境变量等启动参数

1)默认使用项目的目录名做project项目名,支持使用 -p 或 --project-name 来指定项目名;

2)在项目目录里要包含一个 docker-compose 配置模板文件,默认为 docker-compose.yml,支持使用 -f 或 --file 来指定项目的配置模板文件;

3)在配置模板文件里要包含一个或者多个服务,每个服务包含启动容器的名称、镜像、映射端口、环境变量、挂载点、网络模式、依赖关系等容器启动的配置参数。

三、部署docker-compose

1、docker-compose安装:

2、创建工作目录,编写相关Dockerfile文件

提前将目录和文件准备好,详情可参考昨天的dockerfile部署lnmp

3、编写配置文件docker-compose.yml

编写配置文件docker-compose.yml
使用现有的镜像创建容器(本地/仓库) images: name:tag
或者现场构建,基于Dockerfile

version: '3'
services:
  nginx:
    hostname: nginx
    build:
      context: /opt/lnmp/nginx
      dockerfile: Dockerfile
    ports:
      - 1314:80
    container_name: nginx_server
    networks:
      lnmp:
        ipv4_address: 172.111.0.10
    volumes:
      - "nginx-data:/usr/local/nginx/html"

  mysql:
    hostname: mysql
    build: 
      context: /opt/lnmp/mysql
      dockerfile: Dockerfile
    ports:
      - 3306:3306
    container_name: mysql_server
    networks:
      lnmp:
        ipv4_address: 172.111.0.20
    privileged: true
#虽然我们登录容器,显示的是root用户,但是是伪root,一旦privileged是true,容器内的root和宿主机的root才拥有一样的权限,再生产中能不给就不给
    volumes:
      - "mysql-data:/usr/local/mysql/"

  php:
    hostname: php
    build:
      context: /opt/lnmp/php/
      dockerfile: Dockerfile
    ports:
      - 9000:9000
    container_name: php_server
    networks:
      lnmp:
        ipv4_address: 172.111.0.30
    volumes:
      - "nginx-data:/usr/local/nginx/html"
      - "mysql-data:/usr/local/mysql"

networks:
  lnmp:
    driver: bridge
    ipam:
      config:
        - subnet: 172.111.0.0/16

volumes:
  nginx-data:
  mysql-data:

4、根据配置文件创建和启动容器

docker-compose -f docker-compose.yml up -d

docker-compose:命令的开头,使用docker-compose进行容器编排

-f:使用特定的compose模版文件,一般都用docker-compose.yml

-p:project-name:指定项目名称,如果不加,会使用目录名称,可以不加

-d:后台运行

5、登录容器,进行相关操作

登录到Mysql容器给权限

create database wordpress;

grant all privileges on wordpress.* to 'wordpress'@'%' identified by '123456';

grant all privileges on *.* to 'root'@'%' identified by '123456';

flush privileges;

进入php容器,看挂载目录有没有挂载上:

四、访问宿主机IP,安装Wordpress

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1306739.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安全算法(一):安全技术、加密的基础知识、哈希函数的简单介绍

安全算法(一):安全技术、加密的基础知识、哈希函数的简单介绍 通过互联网交换数据时,数据要经过各种各样的网络和设备才能传到对方那里。数据在传输过程中有可能会经过某些恶意用户的设备,从而导致内容被盗取。 因此…

概率的乘法公式

两个事件的情况 假设A、B为随机事件,并且事件A的概率,那么 三个事件的情况 假设A、B、C为随机事件,并且,那么 多个事件的情况 假设为随机事件,其中,并且,那么

统计字母数量-第11届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第15讲。 统计字母数量&…

SQL的触发器和存储过程,一文学会!

目录 一、什么是SQL 二、什么是触发器 三、什么是存储过程 一、什么是SQL SQL(Structured Query Language)是结构化查询语言的缩写,它是用于管理和操作关系型数据库的标准化语言。SQL是一种声明式的语言,通过编写SQL语句来描述对数据库的操作。SQL具…

【Linux】高性能 Web 服务器 Nginx 安装教程(Ubuntu 22.04)

前言 Nginx 是一个高性能的开源 Web 服务器软件,也可以用作反向代理服务器、负载均衡器、HTTP 缓存以及作为邮件代理服务器等。Nginx 以其高性能、稳定性和丰富的功能而闻名,被广泛用于构建高流量网站和应用程序。 步骤 更新软件源 首先需要更新系统的软…

关于“Python”的核心知识点整理大全17

目录 ​编辑 8.3.4 结合使用函数和 while 循环 greeter.py 8.4 传递列表 greet_users.py 8.4.1 在函数中修改列表 printing_models.py 8.4.2 禁止函数修改列表 要将列表的副本传递给函数,可以像下面这样做: 往期快速传送门👆&#x…

16:00的面试,16:07就出来了,问的问题过于变态了。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到六月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40…

Java版直播商城规划:电商源码、小程序、三级分销与免费搭建全攻略

SAAS云平台】打造全行业全渠道全场景的SaaS产品,为店铺经营场景提供一体化解决方案;门店经营区域化、网店经营一体化,本地化、全方位、一站式服务,为多门店提供统一运营解决方案;提供丰富多样的营销玩法覆盖所有经营场…

图片类型的二维码怎么做?扫码看图长期有效

扫码看图的效果是怎么做出来的?现在用二维码来查看图片的方式越来越流行,这种方法能够让更多人同时查看图片。可能有些小伙伴在生成的图片二维码时担心二维码是有时间限制的,逾期后就无法展示了,从而无法满足自己的使用需求&#…

git客户端安装问题

问题回顾: 做git客户端版本升级,安装好之后提示git:‘remote-https‘ 不是一个 git 命令。参见 git --help。 问题处理: 缺少第二步依赖下载 安装步骤: 1、删除安装git yum remove git 2、安装依赖 yum install lib…

企业选CRM系统,这3个关键点你一定不能错过

在充满竞争的商业市场中,企业需要一种强大的工具来管理客户关系,从而提高销售效率。CRM客户关系管理软件就是企业所需要的。然而仅仅是在国内,CRM的供应商就超过了一千家,那么应该怎样选择适合企业的CRM系统? 一、软件…

数字图像处理(实践篇)二十三 使用dlib进行人脸68关键点检测

目录 1 安装dlib 2 下载shape_predictor_68_face_landmarks.dat文件 3 涉及的函数 4 实践 使用dlib进行人脸68关键点检测实践。 1 安装dlib 使用如下命令即可安装dlib: pip install dlib

beebox靶场A3 中等级别 xss通关教程

特别注意,低级和中级的差别在于中级使用了一些函数进行了过滤或转义字符 例如 addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。 预定义字符是: 单引号()双引号(")反斜杠(\&…

14:00面试,14:08就出来了,问的问题有点变态。。。。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到5月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…

Chart 9 Adreno GPU的 OpenCL 扩展

文章目录 前言9.1 OS-dependent vendor extensions9.1.1 Performance hint (cl_qcom_perf_hint)9.1.2 Priority hint for context creation (cl_qcom_priority_hint)9.1.3 Recordable command queue (cl_qcom_recordable_queues)9.1.4 cl_qcom_protected_context9.1.5 cl_qcom_…

python对验证码进行降噪处理

举例图: 第一步先通过二值化处理把干扰线去掉: from PIL import Image# 二值化处理 def two_value():for i in range(1,5):# 打开文件夹中的图片imageImage.open(./Img/str(i).jpg)# 灰度图limimage.convert(L)# 灰度阈值设为165,低于这个值…

搭建个人博客攻略

文章目录 碎碎念一、下载 g i t git git 和 N o d e . j s Node.js Node.js二、安装 h e x o hexo hexo 1. 1. 1.在非 C C C 盘新建一个文件夹 b l o g blog blog,右键打开 g i t b a s h git bash gitbash 2. 2. 2.在 g i t git git 创建文件 hexo 3. 3. 3.he…

基于FPGA的图像RGB转CIE-Lab实现,包含testbench和MATLAB辅助验证程序

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1RGB颜色空间 4.2CIE-Lab颜色空间 4.3RGB转CIE-Lab算法原理 5.算法完整程序工程 1.算法运行效果图预览 将FPGA的结果导入到matlab,并和matlab的仿真结果进行对比&#xff1a…

数据质量管理软件行业分析:2023年复合增长率达到31.9%

数据质量管理软件按照一般的功能模块划分可以划分为产品信息管理、存货管理、销售管理、采购管理、生产管理、设备管理、实验室管理、品质管理、售后管理等模块,质量管理绝非仅仅检验,或者常说的批检、巡检、首检、自检等,质量管理是对只要影…

密码至少包含大写、小写字母、数字和特殊字符其中三种

j 正则表达式: var passReg /^(?![a-zA-Z]$)(?![A-Z0-9]$)(?![A-Z\W_!#$%^&*~()-]$)(?![a-z0-9]$)(?![a-z\W_!#$%^&*~()-]$)(?![0-9\W_!#$%^&*~()-]$)[a-zA-Z0-9\W_!#$%^&*~()-]{8,32}$/;if (!passReg.test(value)) {return callback(new Er…