docker-compose制作WordPress

提前准备nginx_php:v1镜像

yum仓库镜像: 方法1: 宿主机安装createrepo 容器提供nginx --> debian 数据挂载到/data 更新在宿主机上更新 优点:不需要自己创建镜像 缺点:宿主机需要额外安装软件 方法2: 自定义centos7+nginx的镜像 容器里安装createrepo 挂载目录/data 更新在容器里更新 优点:宿主机不需要做其他操作 缺点:需要自己制作镜像,操作步骤稍复杂 操作步骤: 1.准备文件 [root@docker-11 ~/dockerfile/nginx_c7]# tree . ├── build.sh ├── conf │   ├── epel.repo │   ├── nginx.conf │   └── yum.conf ├── Dockerfile └── soft └── nginx-1.18.0-1.el7.ngx.x86_64.rpm 2.编写dockerfile =================================== #基于什么镜像 FROM centos:7 #添加软件源 COPY conf/epel.repo /etc/yum.repos.d/epel.repo #拷贝nginx软件包 COPY soft/nginx-1.18.0-1.el7.ngx.x86_64.rpm /tmp/ #创建用户,安装软件 RUN groupadd -g 1000 www && \ useradd -u 1000 -g 1000 www && \ yum install openssl createrepo -y && \ rpm -ivh /tmp/nginx-1.18.0-1.el7.ngx.x86_64.rpm && \ rm -rf /etc/nginx/conf.d/* && \ rm -rf /usr/share/nginx/html/* && \ rm -rf /tmp/nginx-1.18.0-1.el7.ngx.x86_64.rpm && \ yum clean all #拷贝配置文件 COPY conf/nginx.conf /etc/nginx/nginx.conf COPY conf/yum.conf /etc/nginx/conf.d/yum.conf #暴露端口 EXPOSE 80 #启动服务 CMD ["nginx","-g","daemon off;"] =================================== 3.构建镜像 docker build -t yum:v1 . 4.启动容器 ifconfig eth0:1 10.0.0.13 up docker run -it \ --name yum \ -p 10.0.0.13:80:80 \ -v /data/yum/:/usr/share/nginx/html/ \ -d yum:v2 5.准备php需要的rpm包 6.生成仓库索引文件 docker exec yum createrepo /usr/share/nginx/html/ 7.创建干净的容器测试下载 - 创建新的centos7容器 - 将php软件包拷贝进容器里 - 进入容器 - 修改yum配置文件,打开缓存 - 进入软件包目录,执行 yum localinstall *.rpm -y - 安装完成后找出所有下载的rpm包并保存 - 将所有的rpm包拷贝到宿主机的yum仓库数据目录 - 在宿主机外执行容器命令重新生成仓库索引文件 - 重新生成新的干净的centos7容器 - 进入新容器并删除所有repo文件 - 创建本地源的repo文件 - 正常执行yum命令安装软件 - 查看安装是否报错 nginx+php镜像: 1.准备配置文件和代码 [root@docker-11 ~/dockerfile/nginx_php]# tree . ├── build.sh ├── code │   └── wordpress-5.2.2-zh_CN.tar.gz ├── conf │   ├── local.repo │   ├── nginx.conf │   ├── nginx_php.ini │   ├── supervisord.conf │   ├── wordpress.conf │   └── www.conf ├── Dockerfile └── start.sh 2.编写dockerfile =============================== [root@docker-11 ~/dockerfile/nginx_php]# cat Dockerfile #基于什么镜像 FROM centos:7 #添加软件源和代码 RUN rm -rf /etc/yum.repos.d/* COPY conf/local.repo /etc/yum.repos.d/local.repo ADD code/wordpress-5.2.2-zh_CN.tar.gz /code/ RUN groupadd -g 1000 www && \ useradd -u 1000 -g 1000 www && \ chown -R www:www /code/wordpress && \ yum install nginx php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache supervisor -y && \ rm -rf /etc/nginx/conf.d/default.conf && \ yum clean all #拷贝配置文件 COPY conf/nginx.conf /etc/nginx/nginx.conf COPY conf/wordpress.conf /etc/nginx/conf.d/wordpress.conf COPY conf/www.conf /etc/php-fpm.d/www.conf COPY conf/supervisord.conf /etc/supervisord.conf COPY conf/nginx_php.ini /etc/supervisord.d/nginx_php.ini #暴露端口 EXPOSE 80 #启动服务 CMD ["/usr/bin/supervisord","-c","/etc/supervisord.conf"] ================================= mysql命令: mkdir /data/mysql chown -R mysql:mysql /data/mysql docker run \ --name mysq \ --user 2000:2000 \ -p 3306:3306 \ -v /data/mysql:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -e MYSQL_USER=wordpress \ -e MYSQL_PASSWORD=wordpress \ -e MYSQL_DATABASE=wordpress \ -d mysql:5.7 \ --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci 

制作Wordpress

# 自定义网络 docker network create -d bridge --subnet 192.168.100.0/24 --gateway 192.168.100.1 wordpress-net cat >/root/docker-compose/docker-compose_wordpress.yml <<EOF version: '3' services: mysql: image: mysql:5.7 container_name: mysql user: 2000:2000 environment: - "MYSQL_ROOT_PASSWORD=123" - "MYSQL_DATABASE=wordpress" - "MYSQL_USER=wordpress" - "MYSQL_PASSWORD=wordpress" volumes: - "/data/wordpress_mysql:/var/lib/mysql" ports: - "3306:3306" command: --character-set-server=utf8 --collation-server=utf8_bin nginx_php: image: nginx_php:v1 container_name: nginx_php ports: - "80:80" networks: default: external: true name: wordpress-net EOF docker-compose -f docker-compose_wordpress.yml up 

原文链接:https://www.cnblogs.com/l-uz/p/16326375.html

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享