使用dockerfile以及docker compose部署搭建wordpress平台

这篇具有很好参考价值的文章主要介绍了使用dockerfile以及docker compose部署搭建wordpress平台。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.什么是dockerfile

Dockerfile 是一个文本文件,其中包含了构建 Docker 镜像的指令。它描述了镜像的构建过程,包括基础镜像、安装的软件、配置信息等。

 

Dockerfile 以指令的形式定义了构建镜像的步骤,每一行指令都是一个独立的步骤。这些指令可以包括从官方仓库获取基础镜像、运行命令、添加文件、设置环境变量等。

二.什么是docker compose

 docker compose是 Docker 公司提供的一种用于定义和运行多容器应用的工具。它允许用户通过一个简单的 YAML 文件来描述应用的各个服务,并一次性启动或停止整个应用。

三.编写dockerfile

制作nginx的镜像:
#指定基础镜像
FROM daocloud.io/library/centos:7 
#指定作者
LABEL maintainer="kingshot" build-time="2024-01-01" project="wordprees"
#RUN用来执行shell命令
RUN yum -y install epel-release
RUN yum -y install nginx

#copy用来将宿主机的内容拷贝到镜像
#ADD等同于COPY,但是不同在于ADD可以拷贝网络资源;ADD可以在拷贝压缩包是,可以将解压缩的内容拷贝到镜像中
COPY ./nginx.conf /etc/nginx/nginx.conf
#指定服务端口
EXPOSE 8080
#指定卷
VOLUME ["/usr/share/nginx/html"]
#ENV设置环境变量
ENV nginx_level=1.16.1
#夯住
CMD ["nginx","-g","daemon off;"]

四.制作wordpress镜像

[root@host1 ~]# mkdir /root/wordpress

[root@host1 ~]# cd wordpress/

[root@host1 wordpress]# vim Dockerfile

[root@host1 wordpress]# mv /root/wordpress-5.9.1-zh_CN.tar.gz /root/wordpress

[root@host1 wordpress]#mv /etc/nginx.conf /root/wordpress/nginx.conf

FROM daocloud.io/library/centos:7
LABEL  maintainer="kingshot" build-time="2024-01-01" project="wordpress"
RUN yum -y install epel-release
RUN yum -y install nginx
RUN yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
RUN yum install -y php80-php-xsl php80-php php80-php-cli php80-php-devel php80-php-gd php80-php-pdo php80-php-mysql php80-php-fpm
ADD  wordpress-5.9.1-zh_CN.tar.gz /usr/share/nginx/
COPY ./nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
COPY start.sh /
ENTRYPOINT ["sh","/start.sh"]

制作启动脚本:

[root@host1 wordpress]# vim start.sh

chmod 777 /usr/share/nginx/wordpress -R
nginx && /opt/remi/php80/root/usr/sbin/php-fpm
if [ $? -eq 0 ];then
echo "nginx和php启动成功"
else echo "启动失败"
fi
tailf /var/log/nginx/*

 nginx配置文件:

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.

server {
        listen      80;
        server_name root;
        location / {
			root /usr/share/nginx/wordpress;
			index index.php;
		}
        location ~ \.php$ {
            root          /usr/share/nginx/wordpress;  #指定网站目录
            fastcgi_pass   127.0.0.1:9000;    #指定访问地址
            fastcgi_index  index.php;		#指定默认文件
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; #站点根目录,取决于root配置项
            include        fastcgi_params;  #包含nginx常量定义
        		}
        }

# Settings for a TLS enabled server.
#
#    server {
#        listen       443 ssl http2;
#        listen       [::]:443 ssl http2;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        ssl_certificate "/etc/pki/nginx/server.crt";
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers HIGH:!aNULL:!MD5;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }

}

五.制作镜像并启动wordpress

[root@host1 wordpress]# docker build -t mywordpress:v1.0 .

[root@host1 wordpress]# docker run -itd -p 80:80 mywordpress:v1.0

六. 拉取并运行mysql5.7镜像

[root@host1 wordpress]# docker pull daocloud.io/library/mysql:5.7

[root@host1 wordpress]# docker run -itd -e MYSQL_ROOT_PASSWORD=123 -e MYSQL_DATABASE=wordpress daocloud.io/library/mysql:5.7

[root@host1 wordpress]# docker run -itd -p 80:80 mywordpress:v1.0

七.制作docker compose  

[root@host1 wordpress]# vim Docker compose.yaml

version: '3'
services:
  wordpress:
    build: .
    container_name: wordpress-web
    ports:
      - "80:80/tcp"
      - "443:443/tcp"
    links: 
      - database:wordpress.db.com
    depends_on:
      - database
  database:
    image: daocloud.io/library/mysql:5.7
    container_name: wordpress-db
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=wordpress
   #选择挂载路径
    volumes:
      - /root/wordpress/data:/var/lib/mysql

八.启动 

[root@host1 wordpress]# docker compose up 
###docker compose up -d:后台启动文章来源地址https://www.toymoban.com/news/detail-834599.html

到了这里,关于使用dockerfile以及docker compose部署搭建wordpress平台的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Docker从入门到入土 5】 使用Docker-compose一键部署Wordpress平台

    YAML 是一种标记语言,它可以很直观的展示数据序列化格式,可读性高。 类似于 json 数据描述语言,语法比 json 简单的很多。 YAML 数据结构通过缩进来表示,连续的项目通过减号来表示,键值对用冒号分隔,数组用中括号 [] 括起来, hash 用花括号 {} 括起来。 语法特点 区分大

    2024年02月03日
    浏览(49)
  • 使用docker-compose.yml快速搭建开发、部署环境(nginx、tomcat、mysql、jar包、各种程序)以及多容器通信和统一配置

    image 镜像名称,可去镜像市场查找自己需要的 hostname 容器内服务名 container_name 容器名 volumes 可以把自己电脑的路径映射到容器中的文件夹中 networks 写同一个网络可以让容器之间进行通信 启动 在项目根目录的命令行中输入 docker-compose up 停止 在项目根目录的命令行中输入 d

    2024年02月12日
    浏览(56)
  • docker-compose:Dockerfile参数以及说明

    选择基础镜像,docker当前要生成的镜像以哪个镜像为基础。 容器 构建时 需要运行的命令(区别于后面的 CMD ) 有两种格式: shell命令格式 exec 格式 容器启动之后 要运行的命令 注意 CMD 一个文件中只能有一条指令 Dockerfile 。如果您列出多个, CMD 则只有最后一个会生效。 三种格

    2024年01月16日
    浏览(41)
  • docker/docker-compose 部署 nginx+mysql+wordpress 实战

    MariaDB 作为后面的关系型数据库,端口号是 3306; WordPress 是中间的应用服务器,使用 MariaDB 来存储数据,它的端口是 80; Nginx 是前面的反向代理,它对外暴露 80 端口,然后把请求转发给 WordPress 。 先来运行 MariaDB 。根据说明文档,需要配置 MARIADB_DATABASE 等几个环境变量,用

    2024年02月10日
    浏览(51)
  • 【jenkins】idea+jenkins+docker+dockerfile+compose流水线部署java应用

    目录 整体架构 环境准备 安装docker以及docker-compose jenkins安裝 maven安装 portainer面板安装 sonarqube安装  在项目中增加dockerfile和compose.yml脚本  Dockerfile脚本内容 compose.yml脚本内容 jenkins安装必要插件 jenkins增加流水线任务 增加pipeline任务job  增加pipeline脚本 WXWork Notification Plugin 

    2024年02月16日
    浏览(63)
  • 【Java】微服务——Docker容器部署(docker安装,docker配置镜像加速,DockerHub,docker基本操作,Dockerfile自定义镜像.Docker-Compose)

    微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。 在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题 1.1.1.应用部署的环境问题 大型项目组件较多,运

    2024年02月04日
    浏览(56)
  • Docker DockerFile部署java jar项目包,以及Mysql,Redis

    Docker 运行环境要求系统为 64 位、 Linux 系统内核版本为  3.8 以上 1.1 搭建gcc环境 (gcc是编程语言译器) yum -y install gcc yum -y install gcc-c++ 1.2 安装需要的软件包 yum install -y yum-utils 1.3 装镜像仓库 因为docker的服务器是在国外, 所以有时候从仓库中下载镜像的时候会连接被拒绝或者连

    2024年02月05日
    浏览(46)
  • 【Ubuntu】安装docker,docker compose 以及部署一个docker应用

    大家好!在过去,已经分享了很多有关通过Docker部署应用的内容。今天,我将为大家详细介绍如何在Ubuntu系统上部署最新的Docker平台。 Docker是一个开源的容器化平台,它允许您将应用程序及其所有依赖项打包到称为容器的可移植单元中。 使用Docker,您可以在不同的环境中轻

    2024年02月14日
    浏览(39)
  • 了解 Dockerfile 和搭建 Docker 私有仓库:让容器化部署变得更简单

    目录 1、Dockerfile 1.1什么是Dockerfile 1.2常用命令 1.3使用脚本创建镜像 2、Docker私有仓库 2.1私有仓库介绍: 2.2私有仓库搭建与配置 2.3上传镜像到私有仓库: 1.1什么是Dockerfile Dockerfile是由一些列命令和参数构成的脚本,这些命令应用于基础镜像并且最终创建一个新的镜像。 Dock

    2024年02月10日
    浏览(40)
  • 使用 Docker 部署 WordPress

    使用 Docker 部署 WordPress。 系统架构: 这个系统可以说是比较典型的网站了。MariaDB 作为后面的关系型数据库,端口号是 3306;WordPress 是中间的应用服务器,使用 MariaDB 来存储数据,它的端口是 80;Nginx 是前面的反向代理,它对外暴露 80 端口,然后把请求转发给 WordPress。 需要

    2024年02月19日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包