Compose应用案例(利用docker compose安装lnmp实例)

目录

Compose应用案例

一、前提配置

(一)安装docker-ce(Linux安装Docker)

(二)安装docker-compose

二、安装docker compose部署lnmp

(一)目录结构:

(二)编写compose文件:

三、验证LNMP环境 


Compose应用案例

一、前提配置

为了能够说明compose如何实现上述编排与部署的原理,下面和大家分享一个通过compose来编排部署LNMP服务来更好的理解它。

(一)安装docker-ce(Linux安装Docker)

CentOS系统下安装Docker可以有两种方式:

一种是使用curl获得Docker的安装脚本进行安装,

另一种是使用YUM仓库来安装Docker。主要注意的是目前Docker只能支持64位系统。

1、安装前准备:

[root@huyang1 ~]# iptables -F

[root@huyang1 ~]# setenforce 0

[root@huyang1 ~]# systemctl stop firewalld

保证可以访问互联网

[root@huyang1 ~]# ping www.baidu.com

[root@huyang1 ~]# ls /etc/yum.repos.d/

[root@huyang1 yum.repos.d]# yum clean all && yum makecache fast

2、安装docker-ce

[root@huyang1 ~]# wget -O

/etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

[root@huyang1 ~]# yum -y install yum-utils

device-mapper-persistent-data lvm2

[root@huyang1 ~]# yum-config-manager --add-repo

http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

[root@huyang1 ~]# ls /etc/yum.repos.d/

[root@huyang1 ~]# yum -y install docker-ce

[root@huyang1 ~]# docker version  查看版本

[root@huyang1 ~]# systemctl start docker

[root@huyang1 ~]# systemctl enable docker

3、阿里云镜像加速器

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

[root@huyang1 ~]# cat << END > /etc/docker/daemon.json

{   "registry-mirrors":[ "https://nyakyfun.mirror.aliyuncs.com" ]

}

END

[root@huyang1 ~]# systemctl daemon-reload

[root@huyang1 ~]# systemctl restart docker

[root@huyang1 ~]# docker version

(二)安装docker-compose

下载最新版本安装,下载时间可能比较长

[root@compose ~]# curl -L \

https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

[root@compose ~]# chmod +x

/usr/local/bin/docker-compose

[root@compose ~]# docker-compose --version

二、安装docker compose部署lnmp

(一)目录结构:

[root@compose ~]# mkdir compose_lnmp/

[root@compose ~]# cd compose_lnmp/

[root@compose compose_lnmp]# tree

  [root@compose compose_lnmp]#vim mysql/conf/my.cnf

 [root@compose compose_lnmp]#vim nginx/Dockerfile

 [root@compose compose_lnmp]#vim nginx/nginx.conf

 [root@compose compose_lnmp]#vim nginx/run.sh

  [root@compose compose_lnmp]#vim php/Dockerfile

  [root@compose compose_lnmp]#vim wwwroot/index.html

   [root@compose compose_lnmp]#vim wwwroot/index.php

(二)编写compose文件:

[root@compose compose_lnmp]# cat docker-compose.yml

配置如下:

version: '3'
services:nginx:hostname: nginxbuild:context: ./nginxdockerfile: Dockerfileports:- 80:80networks:- lnmpvolumes:- ./wwwroot:/usr/local/nginx/htmlphp:hostname: phpbuild:context: ./phpdockerfile: Dockerfileports:- 9000:9000networks:- lnmpvolumes:- ./wwwroot:/usr/local/nginx/htmlmysql:hostname: mysqlimage: mysql:5.6ports:- 3306:3306networks:- lnmpvolumes:- ./mysql/conf:/etc/mysql/conf.d- ./mysql/data:/var/lib/mysqlcommand: --character-set-server=utf8environment:MYSQL_ROOT_PASSWORD: 123456MYSQL_DATABASE: wordpressMYSQL_USER: userMYSQL_PASSWORD: user123networks:lnmp:
~                                     

可以看到一份标准配置文件应该包含 version、services、networks 三大部分,共有三级标签,每一级都是缩进两个空格。

下面来详细说明一下里面的内容:

(一)version: '3'  这是定义compose的版本号为version 3,可以参考官方文档详细了解具体有哪些版本 Overview | Docker Documentation

(二)services:

nginx:这是services下面的二级标签,名字用户自己定义,它将是服务运行后的名称;
  hostname: nginx 这是定义容器的主机名,将写入到/etc/hostname中;

build:

context: ./nginx 指定nginx服务的上下文路径;

dockerfile:Dockerfile 指定通过上面指定路径中的Dockerilfe来构建;

ports:

 - 80:80 端口映射没什么好说的;

networks:

 -lnmp 指定的网络环境
volumes:把宿主机的/wwwroot目录绑定到容器中的/usr/local/nginx/html目录;

php:这个二级标签服务和下面的内容跟nginx差不多;

mysql:这个二级标签服务也和nginx、php差不多,唯一不同的是多了个images标签、还有定义了些环境变量。

image: mysql:5.6 它是通过mysql:5.6镜像来构建mysql服务器,前面nginx、php都指定了上下文通过Dockerfile来构建的。

environment:

   MYSQL_ROOT_PASSWORD:定义root用户密码变量为123456;

   MYSQL_DATABASE:定义了数据变量为wordpress;

   MYSQL_USER:定义了普通用户变量为user;

   MYSQL_PASSWORD:定义了普通用户密码变量为user123;

(三)networks:

   lnmp: 相当于执行docker network create lnmp命令了;

最后来运行docker-compose命令来启动:

[root@localhost ~]# cat centos-7-x86_64.tar.gz | docker import - centos:7

[root@localhost ~]# docker images centos:7

[root@localhost compose_lnmp]# docker-compose -f docker-compose.yml up -d

[root@localhost compose_lnmp]# docker-compose ps

三、验证LNMP环境 

客户端使用浏览器验证 docker-compose 创建的 lnmp 环境

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MQTT服务器详细介绍:连接物联网的通信枢纽

随着物联网技术的不断发展&#xff0c;MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;协议作为一种轻量级、可靠、灵活的通信协议&#xff0c;被广泛应用于物联网领域。在MQTT系统中&#xff0c;MQTT服务器扮演着重要的角色&#xff0c;作为连接物联网设备和…

布隆过滤器

文章目录 布隆过滤器布隆过滤器的概念布隆过滤器的插入布隆过滤器的删除 布隆过滤器 布隆过滤器就是为了解决位图不能解决的问题。 用哈希表存储用户记录&#xff0c;缺点&#xff1a;浪费空间用位图存储用户记录&#xff0c;缺点&#xff1a;不能处理哈希冲突将哈希与位图结合…

「干货分享」针对电机控制应用如何选择宽带隙器件?

在功率转换应用中&#xff0c;使用碳化硅&#xff08;SiC&#xff09;和氮化镓&#xff08;GaN&#xff09;材料的宽带隙&#xff08;WBG&#xff09;半导体器件作为开关&#xff0c;能让开关性能更接近理想状态。相比硅MOSFET或IGBT&#xff0c;宽带隙器件的静态和动态损耗都更…

【javaSE】 实现图书管理系统

目录 整体思路 Book包 Book类 BookList类 user包 User类 NormalUser类 AdminUser管理员类 testmain包 opera包 IOPeration接口 普通用户 ExitOperation类 FindOperation类 BrrowOperation类 ReturnOperation类 管理员 AddOperation类 DelOperation类 ShowOp…

Jmeter自动化性能测试常见问题

一、request 请求超时设置 timeout 超时时间是可以手动设置的&#xff0c;新建一个 http 请求&#xff0c;在“高级”设置中找到“超时”设置&#xff0c;设置连接、响应时间为2000ms。 1. 请求连接超时&#xff0c;连不上服务器。 现象&#xff1a; Jmeter表现形式为&…

视频爬虫:解析m3u8文件 python m3u8库,m3u8文件中.ts视频流的解密下载

一、引用的库 这里需要引用的库是&#xff1a;from Crypto.Cipher import AES 有坑哈&#xff0c;python3.0之后直接安装crypto你会发现不管怎么着都会报错。 经过查找资料找到了原因&#xff0c;原来是20年之后crypto已经被pycryptohome替换掉啦&#xff0c; 如果之前安装过…

什么是高级持续威胁(APT)攻击

目录 前言什么是高级持续威胁高级持续威胁攻击有哪些独特特征APT攻击的五个阶段APT检测及防护措施总结 前言 APT攻击是利用多个阶段和不同攻击技术的复合网络攻击。APT不是一时兴起2构思或实施的攻击。相反&#xff0c;攻击者故意针对特定目标定制攻击策略。并在较长时间内进行…

【Spring Boot系列】-Spring Boot过滤器Filter

【Spring Boot系列】-Spring Boot过滤器Filter 文章目录 【Spring Boot系列】-Spring Boot过滤器Filter一、概述二、Filter&#xff08;过滤器&#xff09;数据流程三、Spring Boot 过滤器生命周期四、使用注解方式实现过滤器(WebFilter)4.1. 在springboot 启动类添加该注解Ser…

flutter开发实战-实现css线性渐变转换flutter渐变LinearGradient功能

flutter开发实战-实现css线性渐变转换flutter渐变LinearGradient功能 在之前项目开发中&#xff0c;遇到更换样式&#xff0c;由于从服务器端获取的样式均为css属性值&#xff0c;需要将其转换成flutter类对应的属性值。这里只处理线性渐变linear-gradient 比如渐变 “linear-…

SQL编译优化原理

最近在团队的OLAP引擎上做了一些SQL编译优化的工作&#xff0c;整理到了语雀上&#xff0c;也顺便发在博客上了。SQL编译优化理论并不复杂&#xff0c;只需要掌握一些关系代数的基础就比较好理解&#xff1b;比较困难的在于reorder算法部分。 文章目录 基础概念关系代数等价 j…

python-网络爬虫.BS4

BS4 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库&#xff0c; 它能够通过你喜欢的转换器实现惯用的文档导航、查找、修改文档的方 式。 Beautiful Soup 4 官方文档&#xff1a;https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/ 帮助手册&…

【element-ui】form表单初始化页面如何取消自动校验rules

问题描述&#xff1a;elementUI表单提交页面&#xff0c;初始化页面是获取接口数据&#xff0c;给form赋值&#xff0c;但是有时候这些会是空值情况&#xff0c;如果是空值&#xff0c;再给form表单赋值的话&#xff0c;页面初始化时候进行rules校验会不通过&#xff0c;此时前…

在excel中整理sql语句

数据准备 CREATE TABLE t_test (id varchar(32) NOT NULL,title varchar(255) DEFAULT NULL,date datetime DEFAULT NULL ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; INSERT INTO t_test VALUES (87896cf20b5a4043b841351c2fd9271f,张三1,2023/6/8 14:06); INSERT INTO t_test …

单元测试之 - Spring框架提供的单元/集成测试注解

Spring框架提供了很多注解来辅助完成单元测试和集成测试(备注&#xff1a;这里的集成测试指容器内部的集成测试&#xff0c;非系统间的集成测试)&#xff0c;先看看Spring框架提供了哪些注解以及对应的作用。RunWith(SpringRunner.class) / ExtendWith(SpringExtension.class)&…

python与深度学习(十一):CNN和猫狗大战

目录 1. 说明2. 猫狗大战2.1 导入相关库2.2 建立模型2.3 模型编译2.4 数据生成器2.5 模型训练2.6 模型保存2.7 模型训练结果的可视化 3. 猫狗大战的CNN模型可视化结果图4. 完整代码5. 猫狗大战的迁移学习 1. 说明 本篇文章是CNN的另外一个例子&#xff0c;猫狗大战&#xff0c…

风辞远的科技茶屋:来自未来的信号枪

很久之前&#xff0c;有位朋友问我&#xff0c;现在科技资讯这么发达了&#xff0c;你们还写啊写做什么呢&#xff1f; 我是这么看的。最终能够凝结为资讯的那个新闻点&#xff0c;其实是一系列事情最终得出的结果&#xff0c;而这个结果又会带来更多新的结果。其中这些“得出”…

基于改进粒子群算法的混合储能系统容量优化(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 文献来源 &#x1f308;4 Matlab代码及文章讲解 ​ &#x1f4a5;1 概述 摘要: 为了调高风光互补发电储能系统的经济性&#xff0c;减少其运行费用&#xff0c;研究风光互补发电储能系统的容量优化配置模型&…

Nginx配置WebSocket反向代理

1、WebSocket协议 ​ WebSocket协议相比较于HTTP协议成功握手后可以多次进行通讯&#xff0c;直到连接被关闭。但是WebSocket中的握手和HTTP中的握手兼容&#xff0c;它使用HTTP中的Upgrade协议头将连接从HTTP升级到WebSocket。这使得WebSocket程序可以更容易的使用现已存在的…

云曦暑期学习第三周——ctfshow--php特性(89-104)

目录 web89 preg_match函数 、数组 web90 intval()函数、强比较 web91 正则修饰符 web92 intval()函数、弱比较 web93 八进制、小数点 web94 strpos() 函数、小数点 web95 小数点 web96 highlight_file() 下的目录路径 web97 数组 web98 三目运算符 web9…

iOS开发-NotificationServiceExtension实现实时音视频呼叫通知响铃与震动

iOS开发-NotificationServiceExtension实现实时音视频呼叫通知响铃与震动 在之前的开发中&#xff0c;遇到了实时音视频呼叫通知&#xff0c;当App未打开或者App在后台时候&#xff0c;需要通知到用户&#xff0c;用户点击通知栏后是否接入实时音视频的视频或者音频通话。 在…