dockerfile部署wordpress

1.将容器直接提交成镜像

[root@localhost ~]# docker commit 8ecc7f6b9c12 nginx:1.1
sha256:9a2bb94ba6d8d952527df616febf3fbc8f842b3b9e28b7011b50c743cd7b233b
[root@localhost ~]# docker images
REPOSITORY   TAG           IMAGE ID       CREATED         SIZE
nginx        1.1           9a2bb94ba6d8   7 seconds ago   236MB
rockylinux   9.3           583a894199be   5 hours ago     181MB

将容器的文件挂载到宿主机目录下,容器删除掉,它的文件也会存在

[root@lvs-server ~]# docker run -itd  -e MYSQL_ROOT_PASSWORD=QianFeng@123 -v /opt/data:/var/lib/mysql  mysql:8.0.38-oraclelinux9
fa63565b79532d028a09fc731496a02a0e442b2367b23c932ee6286e5e39f68d

前面的路径是宿主机的,后面的是容器的

构建容器

[root@lvs-server opt]# docker build -t dagou-rocky:1.0.7 .
[+] Building 0.1s (8/8) FINISHED                                                                          docker:default=> [internal] load build definition from Dockerfile                                                                0.0s=> => transferring dockerfile: 750B                                                                                0.0s=> WARN: MaintainerDeprecated: Maintainer instruction is deprecated in favor of using label (line 3)               0.0s=> [internal] load metadata for docker.io/library/rockylinux:9.3                                                   0.0s=> [internal] load .dockerignore                                                                                   0.0s=> => transferring context: 2B                                                                                     0.0s=> [1/3] FROM docker.io/library/rockylinux:9.3                                                                     0.0s=> [internal] load build context                                                                                   0.0s=> => transferring context: 92B                                                                                    0.0s=> CACHED [2/3] RUN yum -y install wget                                                                            0.0s=> CACHED [3/3] COPY ./nginx.conf /etc/nginx/nginx.conf                                                            0.0s=> exporting to image                                                                                              0.0s=> => exporting layers                                                                                             0.0s=> => writing image sha256:870ae144b4b45549edffbc53d16182d0445d8466934b256ac6302e321c3bf30e                        0.0s=> => naming to docker.io/library/dagou-rocky:1.0.7                  

创建容器

[root@lvs-server opt]# docker run -itd nginx:latest 
36151386fa9e9ea2c060936a1b6199f95371059c5a63e4744c387ba02de00a1f
nginx.conf

server {
    listen       80;
    server_name  localhost;
location / {
        root /usr/share/nginx/html/wordpress;
        index index.php;
}
location ~ \.php$ {
    root          /usr/share/nginx/html/wordpress;
    fastcgi_pass   127.0.0.1:9000;
    # fastcgi_pass unix:///run/php-fpm/www.sock;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}
}

nginx.repo

[nginx-stable]

name=nginx stable repo

baseurl=http://nginx.org/packages/centos/$releasever/$basearch/

gpgcheck=1

enabled=1

gpgkey=https://nginx.org/keys/nginx_signing.key

module_hotfixes=true

[nginx-mainline]

name=nginx mainline repo

baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/

gpgcheck=1

enabled=0

gpgkey=https://nginx.org/keys/nginx_signing.key

module_hotfixes=true

Dockerfile内容:

#写在第一行,定义使用的夫镜像是哪一个

FROM docker.io/library/rockylinux:9.3

#指定作者描述信息

MAINTAINER dagou

# RUN yum install -y epel-release

# RUN yum install -y nginx

#指定变量

# ARG VERSION=1.0

#ADD souce dest

#拷贝文件到镜像内

#1.支持网络资源拷贝,后面要加域名,如:http://www.example.com/file.tar.gz

#2.如果拷贝的是tar包,会自动的将tar包内的东西一同拷贝到镜像内,会自动解压

#1和2不可以同时使用

#给镜像打标签

LABEL MAINTAINER="dagou youxiang:192.168@qq.com build time='7-20'"

#构建镜像执行的命令

RUN yum -y install wget

#拷贝文件到镜像内

COPY ./nginx.conf /etc/nginx/nginx.conf

#暴露端口

EXPOSE 80 443

#如果是官网的nginx,首先创建一个以.repo结尾的文件,把官网的nginx源放进去

#COPY ./nginx.repo /etc/yum.repos.d/

#声明一个数据目录或者是配置目录,供容器使用(映射)

VOLUME [ "/usr/share/nginx/html"]

CMD [ "nginx","-g","daemon off;"]

php的配置文件

[www]
user = apache
group = apache
listen = 9000
listen.acl_users = apache,nginx
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
slowlog = /var/log/php-fpm/www-slow.log
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path]    = /var/lib/php/session
php_value[soap.wsdl_cache_dir]  = /var/lib/php/wsdlcache

dockerfile脚本

FROM rockylinux:9.3LABEL MAINTAINER="tom 2996215658@qq.com project="wordpress""
RUN yum install -y http://rpms.remirepo.net/enterprise/remi-release-9.rpm
RUN yum install php80-php-xsl php80-php php80-php-cli php80-php-devel php80-php-gd php80-php-pdo php80-php-mysql php80-php-fpm -y
COPY ./nginx.repo /etc/yum.repos.d/ 
# 安装nginx
# RUN yum install -y epel-release
RUN yum install -y nginxADD ./wordpress-5.9.1-zh_CN.tar.gz /usr/share/nginx/html
RUN chmod 777 -R /usr/share/nginx/html/wordpress
COPY ./nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE  80 443
COPY ./docker-srart.sh /
CMD [ "sh","docker-srart.sh;" ]
# CMD [ "nginx","-g daemon off;"]
RUN /opt/remi/php80/root/usr/sbin/php-fpm

 注意:一定要授权

chmod 777   /var/opt/remi/php80/run/php-fpm/www.sock

构建映射端口

[root@lvs-server wordpress]# docker run -itd --name word -p 80:80 word:v2.2 
8f83a122abe1662f88d6eafe7088883da9fbe4029f340c277e1d0d3251af2b8b
[root@lvs-server wordpress]# docker ps
CONTAINER ID   IMAGE       COMMAND                CREATED         STATUS         PORTS                                        NAMES
8f83a122abe1   word:v2.2   "sh docker-srart.sh"   3 seconds ago   Up 2 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp, 443/tcp   word

 登录数据库

[root@lvs-server wordpress]# docker run -itd -e MYSQL_ROOT_PASSWORD=qQ111111. -e MYSQL_DATABASE=wordpress  mysql:8.0.38-oraclelinux9 
a076f210120d87d25c04c7a690b2e35aec7231c34cdfc77ec645fd09ed43cbb0
[root@lvs-server wordpress]# docker ps
CONTAINER ID   IMAGE                       COMMAND                  CREATED          STATUS          PORTS                                        NAMES
a076f210120d   mysql:8.0.38-oraclelinux9   "docker-entrypoint.s…"   6 seconds ago    Up 5 seconds    3306/tcp, 33060/tcp                          relaxed_hopper
a7488c27d87a   word:v2.1                   "sh docker-srart.sh"     11 minutes ago   Up 11 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 443/tcp   word
[root@lvs-server wordpress]# docker exec -it a0 /bin/bash
bash-5.1# mysql -pqQ111111.
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.38 MySQL Community Server - GPLCopyright (c) 2000, 2024, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databses;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'databses' at line 1
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| wordpress          |
+--------------------+
5 rows in set (0.00 sec)mysql> 
[1]+  Stopped                 mysql -pqQ111111.

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

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

相关文章

javafx的ListView代入项目的使用

目录 1. 创建一个可观察的列表,用于存储ListView中的数据,这里的User是包装了用户的相关信息。 2.通过本人id获取friendid,及好友的id,然后用集合接送,更方便直观一点。 3.用for遍历集合,逐个添加。 4.渲染器&…

【我的养猪日记】区块链游戏

剧情介绍 年少无知留给了故乡,谦卑有礼送给了远方,有工作的地方没家,有家的地方没工作,他乡留不下灵魂,故乡安不了肉身,从此便有了漂泊。在外漂泊数年的你每天过着,挤不完的公交地铁、交不完的房…

面试场景题系列--(2)短 URL 生成器设计:百亿短 URL 怎样做到无冲突?--xunznux

文章目录 面试场景题:短 URL 生成器设计:百亿短 URL 怎样做到无冲突?1. 需求分析2. 短链接生成算法2.1 自增法2.2 散列函数法2.3 预生成法 3. 部署模型3.1 其他部署方案 4. 设计4.1 重定向响应码4.2 短 URL 预生成文件及预加载4.3 用户自定义…

EtherNet/IP转Profinet协议网关(经典配置案例)

怎么样才能把EtherNet/IP和Profinet网络连接起来呢?这几天有几个朋友问到了这个问题,作者在这里统一为大家详细说明一下。其实有一个设备可以很轻松地解决这个问题,名为JM-PN-EIP,下面是详细介绍。 一,设备主要功能 1、捷米特J…

AnyMP4 Data Recovery for Mac v1.5.8免激活版:高效数据恢复新选择

AnyMP4 Data Recovery for Mac是一款专为Mac用户设计的高效数据恢复软件,凭借其强大的功能和简洁的操作界面,为用户提供了快速、安全的数据恢复体验。 该软件支持恢复多种文件类型,包括照片、视频、音频、文档等,无论是常见的图片…

前端学习7——自学习梳理

​​​​​​jQuery 教程 | 菜鸟教程jQuery 教程 jQuery 是一个 JavaScript 库。 jQuery 极大地简化了 JavaScript 编程。 jQuery 很容易学习。 本章节的每一篇都包含了在线实例 通过本站的在线编辑器,你可以在线运行修改后的代码,并查看运行结果。 实例…

【Python正则表达式】:文本解析与模式匹配

文章目录 1.正则表达式2. re模块3.修饰符3.元字符3-1 字符匹配元字符3-2 重复次数限定元字符3-3 字符集合匹配元字符3-4 分组元字符3-5 边界匹配元字符3-6 字符类别匹配元字符 4.技巧4-1 贪婪与非贪婪 5.案例 1.正则表达式 正则表达式面向什么样的问题? 1、判断一个…

uniapp引入自定义图标

目录 一、选择图标,加入购物车 二、下载到本地 三、导入项目 四、修改字体引用路径 五、开始使用 这里以扩展iconfont图标为例 官网:iconfont-阿里巴巴矢量图标库 一、选择图标,加入购物车 二、下载到本地 直接点击下载素材&#xff0…

2019数字经济公测大赛-VMware逃逸

文章目录 环境搭建漏洞点exp 环境搭建 ubuntu :18.04.01vmware: VMware-Workstation-Full-15.5.0-14665864.x86_64.bundle 这里环境搭不成功。。patch过后就报错,不知道咋搞 发现可能是IDA加载后的patch似乎不行对原来的patch可能有影响,重新下了patch&…

【Kettle实现神通(数据库)MPP增量、全量数据ETL,同步任务Linux运行(通用)】

1、背景介绍 具体Kettle操作步骤不做过多介绍,主要技术方案说明,Kettle8.2版本放在底部链接提取,本次采用Kettle实现源端:神通数据通用库、目标端:神通MPP增量数据同步,并在服务器端运行Job。 2、windows…

鸿蒙OpenHarmony Native API【支持的标准库+Node_API】

Native API中支持的标准库 简介 表1 OpenHarmony支持的标准库 名称简介标准C库[libc、libm、libdl]组合实现C11标准C库。标准C库[libc]是C标准库的一种实现。OpenSL ES[OpenSL ES]是一个嵌入式跨平台的音频处理库。zlib[Zlib]是基于C/C语言实现的一个通用的数据压缩库。EGL[…

VMare centos 7 设置固定ip

第一步获取网关 查看虚拟机的网关-》编辑-》虚拟网络编辑器 NAT模式-》NAT设置 获取网关IP 192.168.70.2 第二步获取主机dns1 在本地主机获取dns1,本地主机调出cmd输入ipconfig dns1为192.168.31.1 用管理员权限的账号进入需要设置固定ip的虚拟机,在t…

零基础学习Python(四)

1. __getitem__、__setitem__、__iter__、__next__魔法方法 __index__方法是对象被作为索引访问时调用的魔法方法,那么当对象要进行索引访问时,调用什么魔法方法呢?答案是__getitem__魔法方法。 class C:def __getitem__(self, index):prin…

vscode回退不显示了,不方便操作

一、后退前进按钮 顶部显示&#xff0c;方便调试 <—— ——> 文件-> 首选项 -> 设置->commandcenter->勾选 Window: Title Bar Style->custom 将native —>custom

MongoDB教程(二十二):MongoDB固定集合

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 引言一、固定集…

单片机学习历程

学习单片机的过程可以分为几个主要阶段&#xff0c;每个阶段都涉及不同的学习内容和技能提升。下面我将以一个典型的学习历程为例进行介绍&#xff1a; 初学阶段 1.入门理论学习&#xff1a; 开始接触单片机的基础知识&#xff0c;学习其工作原理、体系结构和常见的芯片类型…

昇思25天学习打卡营第20天|CV-ResNet50图像分类

打卡 目录 打卡 图像分类 ResNet网络介绍 数据集准备与加载 可视化部分数据集 残差网络构建 Building Block 结构 代码实现 Bottleneck结构 代码实现 构建ResNet50网络 代码定义 模型训练与评估 可视化模型预测 重点&#xff1a;通过网络层数加深&#xff0c;感知…

vue3前端开发-小兔鲜项目-路由拦截器增加token的携带

vue3前端开发-小兔鲜项目-路由拦截器增加token的携带&#xff01;实际开发中&#xff0c;很多业务接口的请求&#xff0c;都要求必须是登录状态&#xff01;为此&#xff0c;这个token信息就会频繁的被加入到了请求头部信息中。request请求头内既然需要频繁的携带这个token.我们…

STM32烧录的时候报错:Error :Flash Download failed -“Cortex-M3“

点击图中标号1&#xff0c;按顺序点击进入设置 按图中标序&#xff0c;进入添加页面 添加图中所选&#xff0c;然后一直确定退出即可&#xff0c;若没有图中所示选项&#xff0c;可能软件没下载对&#xff0c;文章已附带 添加后&#xff0c;即可烧录成功。

《JavaEE篇》--多线程(2)

《JavaEE篇》--多线程(1) 线程安全 线程不安全 我们先来观察一个线程不安全的案例&#xff1a; public class Demo {private static int count 0;public static void main(String[] args) throws InterruptedException {Thread t1 new Thread(() -> {//让count自增5W次…