当前位置: 首页 > news >正文

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.

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【CTFWP】ctfshow-萌新-web1-7
  • html+css前端作业 王者荣耀官网6个页面无js
  • iOS应用冷启动优化,可以做哪些事情
  • ArcGIS Pro SDK (九)几何 12 多面体
  • 决策树的概念
  • 挖掘IPython的深度:%%dhist命令的历史探索之旅
  • Chapter17 表面着色器——Shader入门精要学习
  • keystone学习小结2
  • 深入理解Linux网络(四):TCP接收阻塞
  • 前端 Tips
  • pip安装出现的问题之SSL,一大堆WARNING问题
  • OD C卷 - 数据单元的变量替换
  • 初级java每日一道面试题-2024年7月23日-Iterator和ListIterator有什么区别?
  • C++五子棋(未做完,但能玩,而且还不错)
  • Hi3751V560_SELinux
  • 【前端学习】-粗谈选择器
  • flask接收请求并推入栈
  • Java多态
  • Java精华积累:初学者都应该搞懂的问题
  • mysql外键的使用
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • spring boot 整合mybatis 无法输出sql的问题
  • 机器学习学习笔记一
  • 技术:超级实用的电脑小技巧
  • mysql面试题分组并合并列
  • ​iOS安全加固方法及实现
  • ###项目技术发展史
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (4)Elastix图像配准:3D图像
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • (bean配置类的注解开发)学习Spring的第十三天
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (笔试题)合法字符串
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (十六)Flask之蓝图
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • .cn根服务器被攻击之后
  • .libPaths()设置包加载目录
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .NET 事件模型教程(二)
  • .NET 指南:抽象化实现的基类
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .NET之C#编程:懒汉模式的终结,单例模式的正确打开方式
  • []sim300 GPRS数据收发程序
  • [8-27]正则表达式、扩展表达式以及相关实战
  • [android] 切换界面的通用处理
  • [C#学习笔记]注释
  • [C/C++]数据结构 栈和队列()
  • [C][栈帧]详细讲解
  • [C++参考]拷贝构造函数的参数必须是引用类型
  • [EFI]Atermiter X99 Turbo D4 E5-2630v3电脑 Hackintosh 黑苹果efi引导文件