创建Docker映射目录—— vue_demo         # Demo项目

—— php_vue

—— docker-compose.yaml

—— nginx

———— apps           # 项目代码

———— conf           # nginx配置文件

—————— nginx.conf

———— log            # nginx

———— vhost          # 虚拟机配置目录

—————— default.conf

创建docker-compose.yamlversion : "3" #docker-compose的版本services: #容器的集合

mysql: #项目名称

image: mysql:5.7 #镜像名称,如果是通过dockerfile创建的可以使用build属性

container_name: mysql  #容器名称,如果没有这个属性的话,docker-compose会随机分配一个名字给容器

privileged: true    #允许操作的表示,如果不加的话会出现类似,permission deny的错误

ports:

- 3307:3306  #开放宿主机和容器的映射端口

environment:

MYSQL_ROOT_PASSWORD: root  #mysql镜像中的环境变量

php:

image: php:7.2-fpm              container_name: php              privileged: true

ports:

- 9001:9000

links:

- mysql  #容器之间进行关联

volumes:

- ./nginx/apps:/usr/share/nginx/html  #挂载卷,需要注意的是,php在以模块的形式加载到nginx的时候,需要他们两个的目录结构一致,否则nginx无法加载php,但是 html等静态问价可以正常访问。

nginx:

image:  nginx               container_name: nginx               privileged: true

links:

- php               ports:

- 8088:80

volumes:

- ./nginx/vhost:/www/nginx/vhost                       - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf                       - ./nginx/log:/www/nginx/log                       - ./nginx/apps:/usr/share/nginx/html      phpmyadmin:

image: phpmyadmin/phpmyadmin              container_name: phpmyadmin              privileged: true

links:

- mysql              ports:

- 7001:80

environment:

MYSQL_ROOT_PASSWORD: root                      PMA_HOST: mysql      redis:

image: redis:4.0.14              container_name: redis              privileged: true

ports:

- 6379:6379

mongo:

image: mongo              restart: always              ports:

- 27017:27017

建立容器,执行命令 docker-compose up -d

创建前端项目

使用vue create vue_demo或vue ui创建项目vue_demo

打包项目cd vue_demo && npm run build,复制 dist文件夹到 php_vue/nginx/apps下测试 curl localhost:9099 返回html代码

创建php文件<?phpecho  'hello Docker';测试 curl localhost:8088 返回 hello Docker

过程中的疑难杂症

image拉取速度过慢

解决方法 - 修改仓库源

创建、修改 /etc/docker/daemon.json 文件,修改为如下形式vi /etc/docker/daemon.json          # 编辑daemon.json

{

"registry-mirrors": ["http://hub-mirror.c.163.com"]

}

systemctl restart docker            # 重启docker服务

国内加速地址有:docker-compose 拉取镜像,成功之后就不会重复拉取。

所以导出现某个镜像速度慢、卡死。 Ctrl + c终止换源,重启docker再执行命令 docker-compose up -d

docker 创建 iptables链 报错… iptables --wait -t nat -I DOCKER -i br-d38d92300109 -j RETURN:iptables: No chain/target/match by that name.

docker 服务启动的时候,docker服务会向iptables注册一个链,以便让docker服务管理的containner所暴露的端口之间进行通信

通过命令 iptables -L 可以查看iptables链

在开发环境中,如果你删除了iptables中的docker链,或者iptables的规则被丢失了(例如重启firewalld),docker就会报iptables error例如:failed programming external connectivity … iptables: No chain/target/match by that name

要解决这个问题,只要 重启docker服务,之后,正确的iptables规则就会被创建出来

docker项目部署 php_「Docker部署PHP+Vue项目」- 海风纷飞Blog相关推荐

  1. centos7查看当前端口_「Centos7开放及查看端口」- 海风纷飞Blog

    1.开放端口 firewall-cmd --zone=public --add-port=5432/tcp --permanent  # 开放5432端口 firewall-cmd --zone=pu ...

  2. laravel services.php,「Laravel框架中使用Service模式」- 海风纷飞Blog

    若将商业逻辑都写在controller,会造成controller肥大而难以维护,基于SOLID原则,我们应该使用Service模式辅助controller,将相关的商业逻辑封装在不同的service ...

  3. mysql支持事务的储存引擎_「mysql事务与mysql储存引擎」- 海风纷飞Blog

    事务概念及存储引擎 1.0 为何要事务? 先来看一个场景,银行转账汇款: 李彦宏和周鸿祎天天打架,现在让李彦宏给周鸿祎转款1000 元 设计如下表 account表 编号(id)用户名(user)金额 ...

  4. 上海时间戳 php,「PHP的时间戳与具体时间转化」- 海风纷飞Blog

    三个内置函数:time()   //获取UNIX系统时间戳 mktime(hour,minute,second,month,day,year)  //将指定时间转化为时间戳 date(时间格式,时间戳 ...

  5. vue项目如何放到服务器上,怎么把vue项目放在node服务器上?

    Vue.js是一套构建用户界面的渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合. 将vue项目 ...

  6. 怎么改vue项目的标题_如何动态修改Vue项目中的页面title

    前言:在项目中,我们有时候需要修改Vue项目中的页面title. 方法有两种,①如果需要动态设置页面的title,可以直接使用document.title:②可以使用router的beforeEach ...

  7. docker image aarch64 x86_64_「docker」交叉编译适用于ARM平台的Docker源码

    前言 docker的编译环境实际是创建了一个docker容器,在docker容器内对代码进行编译.创建该docker容器的过程中,会安装一些编译docker源码需要的第三方库以及go语言环境.此处需要 ...

  8. 使用Nginx反向代理部署laravel和history模式的Vue项目[更新]

    nginx.conf里要加上对laravel的静态文件目录的转发(这里假设我的静态文件在public/static下).修改vue的nginx配置. 我们以在我本地的开发环境为例,windows7+n ...

  9. vue项目打包丢入服务器,浅谈vue项目如何打包扔向服务器

    当我们将 vue 项目完成后,面临的就是如何将项目进行打包上线,放到服务器中.我使用的是 vue-cli(simple) 脚手架,所以就讲一下如何将项目进行打包,并放到 tomcat 上. 如果是 v ...

最新文章

  1. Oracle 12c 多租户 CDB 与 PDB之 shared undo 与 Local undo 切换
  2. [微信开发] 开发指南笔记
  3. nrf52840 gpiote如何配置中断输入_STM32第四章外部中断管理
  4. 智能家居物联网化将成为AWE大会最大看点
  5. 基于live555的视频直播 DM368IPNC RTSP分析
  6. linux 输入--输出--重定向 stdin/stdout/stderr
  7. 37. 重定向 21
  8. 如何使用poi在word表格中新增行的4种方法
  9. 邮件群发软件如何群发邮件,企业邮箱可以吗?
  10. android 自定义view 动画效果,Android自定义view实现阻尼效果的加载动画
  11. 网易云音乐app用户个人中心(对比QQ音乐)
  12. Android 安全防护
  13. Python入门-数据库
  14. 【成为架构师课程系列】消息队列:秒杀时如何处理每秒上万次的下单请求?
  15. mysql 安时间查询格式_安装MySQL慢查询日志工具Anemometer
  16. 安徽审计职业学院计算机成绩,历年安徽审计职业学院计算机软件工程专业毕业论文选题.doc...
  17. replace 与 replaceAll
  18. 2013——自我反思
  19. 机房收费系统详细设计
  20. 黑马程序员——基础学习

热门文章

  1. weblogic jmx_在WebLogic Server上驯服JMX
  2. spring hsqldb_在Spring中嵌入HSQLDB服务器实例
  3. 具有Stormpath和Spring Boot的OAuth 2.0令牌管理
  4. 冷热rx-java可观察
  5. 让我们用jOOλ在Java 8中流式传输地图
  6. 如何在Java中将图像上传到DropBox
  7. Lambda表达式和流API:基本示例
  8. Java 8 Friday Goodies:Lambda和排序
  9. JPA和CMT –为什么捕获持久性异常不够?
  10. (第2部分,共3部分):有关性能调优,Java中的JVM,GC,Mechanical Sympathy等的文章和视频的摘要...