Docker容器化技术(docker-compose示例:部署discuz论坛和wordpress博客,使用adminer管理数据库)

安装docker-compose
[root@service ~]# systemctl stop firewalld
[root@service ~]# setenforce 0
[root@service ~]# systemctl start docker[root@service ~]# wget https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64
创建目录
[root@service composetest]# mkdir test
[root@service composetest]# cd test/
[root@service test]# vim docker-compose.yml
编写docker-compose.yml文件
version: '3'networks:mynetwork:driver: bridgeipam:driver: defaultconfig:- subnet: 172.18.0.0/24services:db:image: mysql:5.7container_name: mysql57restart: alwaysenvironment:MYSQL_ROOT_PASSWORD: 123456MYSQL_DATABASE: wordpressMYSQL_USER: wordpressMYSQL_PASSWORD: wordpresscommand:--character-set-server=utf8--collation-server=utf8_general_civolumes:- db_data:/var/lib/mysqlnetworks:mynetwork:ipv4_address: 172.18.0.10wordpress:depends_on:- dbimage: wordpress:latestcontainer_name: wordpressrestart: alwaysenvironment:WORDPRESS_DB_HOST: db:3306WORDPRESS_DB_USER: wordpressWORDPRESS_DB_PASSWORD: wordpressWORDPRESS_DB_NAME: wordpressvolumes:- wp_data:/var/www/htmlnetworks:mynetwork:ipv4_address: 172.18.0.11ports:- 88:80discuz:depends_on:- dbimage: tencentci/discuzcontainer_name: discuzrestart: alwaysenvironment:DISCUZ_DB_HOST: db:3306volumes:- discuz_data:/var/www/htmlnetworks:mynetwork:ipv4_address: 172.18.0.12ports:- 80:80adminer:depends_on:- db image: adminercontainer_name: adminerrestart: alwaysnetworks:mynetwork:ipv4_address: 172.18.0.15ports:- 8080:8080volumes:db_data:wp_data:discuz_data:
启动编排镜像
[root@service test]# docker-compose up
[+] Running 8/8⠿ Network test_mynetwork Created 0.1s⠿ Volume "test_wp_data" Created 0.0s⠿ Volume "test_discuz_data" Created 0.0s⠿ Volume "test_db_data" Created 0.0s⠿ Container mysql57 Created 0.0s⠿ Container adminer Created 0.0s⠿ Container wordpress Created 0.1s⠿ Container discuz Created
通过主机IP地址访问Discuz论坛搭建网站

通过主机IP地址8080端口访问数据库管理界面
相关文章:
Docker容器化技术(docker-compose示例:部署discuz论坛和wordpress博客,使用adminer管理数据库)
安装docker-compose [rootservice ~]# systemctl stop firewalld [rootservice ~]# setenforce 0 [rootservice ~]# systemctl start docker[rootservice ~]# wget https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64创建目录 [rootse…...
微分学<6>——Taylor公式
索引 Taylor公式Taylor公式的定性分析定理6.1 Taylor公式(Peano余项) Taylor公式的定量分析定理6.2 Taylor公式(Lagrange余项) Taylor公式 Taylor公式的定性分析 定理6.1 Taylor公式(Peano余项) 若函数 f ( x ) f\left ( x \right ) f(x)在 x 0 x_{0} x0处的 n n n阶导数均…...
检索增强生成(RAG)应用的构建:LangChain与LlamaIndex的比较与选择
对于我要做RAG应用,我应该使用两者中的哪一个。或者说还是都使用? 在人工智能领域,检索增强生成(RAG)应用正变得越来越受欢迎,因为它们能够结合大型语言模型(LLMs)的自然语言处理能力…...
免费PDF转换和编辑工具 PDFgear 2.1.4
PDFgear是一款功能强大的 PDF 阅读及转换软件。 它支持多种文件格式的转换和编辑,同时还提供了丰富的功能模块,如签名、表单填写等,方便用户进行多样化的操作。 该软件界面简洁美观,操作简单易懂,适合不同层次的用户…...
uniapp,导航栏(切换项)有多项,溢出采取左滑右滑的形式展示
一、实现效果 当有多项的导航,或者说切换项,超出页面的宽度,我们采取可滑动的方式比较好一些!并且在页面右边加个遮罩,模拟最右边有渐变效果! 二、实现代码 html代码: <!-- 头部导航栏 --…...
计算机网络面经-什么是IPv4和IPv6?
前言 Internet协议(IP)是为连接到Internet网络的每个设备分配的数字地址。它类似于电话号码,是一种独特的数字组合,允许用户与他人通信。IP地址主要有两个主要功能。首先,有了IP,用户能够在Internet上被识别…...
彻底讲透:如何写sql能够有效的使用到复合索引?
在MySQL中,有效的使用复合索引需要确保查询条件按照索引定义的列顺序进行。以下是一个具体的例子: 假设我们有一个sales表,它有四个字段:customer_id、product_category、sale_date和amount。为了优化包含这些字段查询的性能&…...
在Spring Boot中如何处理跨域请求(CORS)?
什么是跨域? 跨域(Cross-Origin Resource Sharing,CORS)是一种机制,它允许在 Web 页面上运行的脚本能够请求从不同源(域名、协议或端口)的资源。在浏览器安全策略中,有一条称为同源…...
好就业三种专业#信息安全#云计算#网络工程
一、信息安全专业 根据2021年网络安全宣传周白皮书的观察结果,网络安全产业对于人才的需求正以高速增长的趋势呈现,当前网络安全行业存在着巨大的人才缺口,平均供求比例约为1:2。这一现象导致了资深人才的储备不足,并且新人才的培…...
electron-builder打包
打包配置: "build": {"appId": "cc11001100.electron.example-001", // 程序包名"copyright": "CC11001100", // 版权相关信息"productName": "example-001", // 安装包文件名"direct…...
SQLiteC/C++接口详细介绍sqlite3_stmt类(四)
返回:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(三) 下一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(五) 7. sqlite3_bind_parameter_count函数 sqlite3_bind_param…...
微信小程序自定义组件
微信小程序中的自定义组件是指在微信小程序中创建的可重用的、可复用的组件,它可以被多个页面使用。自定义组件可以帮助我们提高开发效率,提高代码的可维护性和可重用性。以下是微信小程序中自定义组件的使用方法: 一. 创建自定义组件 首先…...
python练习3
用户登录注册案例 while True: print("\t\t\t英雄商城登录界面\n") print("~*"*38) print("\t\t\t1.用户登录\n") print("\t\t\t2.用户注册\n") print("\t\t\t3.退出系统\n") print("~*"*38) choice input("…...
docker离线安装并修改存储目录
docker下载 根据cpu选择不同版本,正常x86就选x86_64 下载地址:https://download.docker.com/linux/static/stable/ docker安装 tar -zxvf arm-docker-25.0.4.tgz sudo cp docker/* /usr/bin/ rm -rf docker/* mkdir /etc/docker vi /etc/docker/daemo…...
【云原生 • Kubernetes】认识 k8s、k8s 架构、核心实战
文章目录 Kubernetes基础概念1. 是什么2. 架构2.1 工作方式2.2 组件架构 3. k8s组件创建集群步骤一 基础环境步骤二 安装kubelet、kubeadm、kubectl步骤三 主节点使用kubeadm引导集群步骤四 副节点加入主节点步骤五 部署dashboard Kubernetes核心实战1. 资源创建方式2. Namespa…...
墨菲安全在软件供应链安全领域阶段性总结及思考
向外看:墨菲安全在软件供应链安全领域的一些洞察、思考、行动 洞察 现状&挑战: 过去开发安全体系是无法解决软件供应链安全问题的;一些过去专注开发安全领域的厂商正在错误的引导行业用开发安全思维解决软件供应链安全问题,治…...
智慧公厕:卫生、便捷、安全的新时代厕所变革
在城市快速发展的背景下,公共厕所的建设和管理变得越来越重要。智慧公厕作为厕所变革的一项全新举措,通过建立公共厕所全面感知监测系统,以物联网、互联网、大数据、云计算、自动化控制技术为支撑,实现对公共厕所的智能化管理和运…...
Idea 不能创建JDK1.8的spring boot项目
由于https://start.springboot.io/ 不支持JDK1.8,那么我们需要换idea的springboot创建源,需要换成 https://start.aliyun.com,这也是网上大部分教程说的,但是我这边会报这样的错误: Initialization failed for https:…...
【docker】Docker学习收集
写在前面 新公司开发使用docker来部署和统一大家的开发环境,故再次记录好用的学习链接和自己遇到的奇怪问题 实用链接 Docker教程详细 常用命令 个例问题 Q: docker在终端多开,A终端的修改会影响B吗 A: 会...
LoRa模块在野外科研与环境保护中的角色:科技守护自然之宝
随着科技的不断发展,LoRa(低功耗广域网)模块在野外科研与环境保护中正发挥着越来越重要的作用。其卓越的通信能力、低功耗特性以及良好的穿透能力,为科学家和环保人士提供了一种先进的技术手段,有助于更深入、更全面地…...
手把手教你理解交叉编译:从嵌入式开发到Rust编译Android So库
手把手教你理解交叉编译:从嵌入式开发到Rust编译Android So库 当你在x86架构的笔记本上按下编译按钮,却要为树莓派(ARM架构)生成可执行文件时,背后发生了什么?这种"在A平台编译B平台程序"的技术&…...
下一代搜索引擎会是Multi-Agent系统吗?从索引检索到动态解答的演进
下一代搜索引擎会是Multi-Agent系统吗?从索引检索到动态解答的演进 一、引言 (Introduction) 钩子 (The Hook) 想象一下:你正在准备一场重要的技术演讲,主题是"量子计算在金融领域的应用"。你打开传统搜索引擎,输入"量子计算金融应用",得到的是2.3亿…...
别再为Faster R-CNN环境配置头疼了!PyTorch 1.0+版本保姆级避坑指南(附VOC2007数据集处理)
Faster R-CNN实战:PyTorch 1.0环境配置与VOC数据集处理全攻略 深度学习领域的目标检测技术日新月异,Faster R-CNN作为经典的两阶段检测算法,至今仍在工业界和学术界广泛应用。然而对于初学者而言,从环境配置到数据集处理的每一步…...
从CTF实战到代码复现:手把手教你用Python逆向分析RC4加密的crypt.exe
从CTF实战到代码复现:手把手教你用Python逆向分析RC4加密的crypt.exe 逆向工程的世界里,每一个二进制文件都像是一本加密的日记,而RC4算法则是其中最常见的密码锁之一。今天,我们将一起打开这本日记,从零开始分析一个名…...
COMSOL 超表面仿真:从入门到“光速”出图!
在系统讲解天线、超表面的物理原理、功能实现机制以及利用有限元法(Finite Element Method, FEM)进行建模与仿真设计的完整流程。通过理论讲授与仿真实践相结合的方式,帮助学员掌握从结构建模、物理场设置、网格划分、参数扫描到仿真后处理与…...
Fish-Speech 1.5新手必看:3个参数调出完美语音,告别重复卡顿
Fish-Speech 1.5新手必看:3个参数调出完美语音,告别重复卡顿 1. 为什么你的语音合成总是不自然? 刚接触语音合成的朋友经常会遇到这样的困扰:生成的语音要么机械感十足,要么频繁重复字词,甚至出现莫名其妙…...
如何快速掌握免费开源动画工具:MTB Nodes终极指南
如何快速掌握免费开源动画工具:MTB Nodes终极指南 【免费下载链接】comfy_mtb Animation oriented nodes pack for ComfyUI 项目地址: https://gitcode.com/gh_mirrors/co/comfy_mtb 想要在ComfyUI中轻松制作专业级动画效果?MTB Nodes作为专为动画…...
基础篇一 Java 有了 int 为什么还要 Integer?它们到底差在哪?
文章目录一、先回顾:Java 的两种数据类型二、为什么要设计封装类?三个核心原因1. 泛型只认对象2. 数据库和业务逻辑需要 null3. 对象能携带行为和缓存三、Integer 和 int 的核心区别四、经典面试坑点:Integer 缓存池五、自动装箱与拆箱的隐患…...
Obsidian PDF++:打造智能PDF标注与阅读的完整指南
Obsidian PDF:打造智能PDF标注与阅读的完整指南 【免费下载链接】obsidian-pdf-plus PDF: the most Obsidian-native PDF annotation & viewing tool ever. Comes with optional Vim keybindings. 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-pdf-…...
Tinder联合World推身份验证:前往验证球验证,可获五次免费推广及“已验证人类徽章”
Tinder携手World ID:面部扫描验证解锁免费推广Tinder用户通过前往World公司的身份验证球进行面部扫描,证明自己是真实人类后,可在应用程序中获得五次免费推广机会。这一服务源于去年World在日本的试点项目,如今正拓展至包括日本和…...
