网站建设的架构设计,做网站 视频加载太慢,建站之星破解版下载,想学习网站建设创建Docker映射目录—— vue_demo # Demo项目—— php_vue—— docker-compose.yaml—— nginx———— apps # 项目代码———— conf # nginx配置文件—————— nginx.conf———— log # nginx———— vhost # 虚拟机配…创建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: trueports:- 9001:9000links:- mysql #容器之间进行关联volumes:- ./nginx/apps:/usr/share/nginx/html #挂载卷需要注意的是php在以模块的形式加载到nginx的时候需要他们两个的目录结构一致否则nginx无法加载php,但是 html等静态问价可以正常访问。nginx:image: nginx container_name: nginx privileged: truelinks:- php ports:- 8088:80volumes:- ./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: truelinks:- mysql ports:- 7001:80environment:MYSQL_ROOT_PASSWORD: root PMA_HOST: mysql redis:image: redis:4.0.14 container_name: redis privileged: trueports:- 6379:6379mongo: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 -ddocker 创建 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规则就会被创建出来