文档章节

docker 安装 thinkphp+nginx

地球和平
 地球和平
发布于 2017/07/06 17:17
字数 525
阅读 710
收藏 0

#安装docker 默认已安装docker,安装地址:https://www.docker.com/

1.下载php 和nginx镜像

docker pull php

docker pull nginx

2.创建dockerfile, dockerfile 是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。 #touch Dockerfile

创建phpdockerfile文件夹,创建Dockerfile文件。

FROM php:5.6-fpm

RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libmcrypt-dev \
        libpng12-dev \
    && docker-php-ext-install -j$(nproc) iconv mcrypt \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd

RUN docker-php-ext-install mbstring

RUN docker-php-ext-install mysqli

RUN docker-php-ext-install pdo && docker-php-ext-install pdo_mysql 

运行build 创建镜像

docker build -t pdophp .  //(pdophp)代表新镜像名非固定,(.) 代表当前目录 docker自动去找Dockerfile文件

3.根据新创建的pdophp镜像,建立容器互连php与nginx。并建立文件映射

//myphp 容器名(非固定),workend 网络组名称(非固定),/Users/xxx/Works/web/工作目录(非固定)
docker run --name myphp --net workend -v /Users/xxx/Works/web/:/var/www/html/ --privileged=true -d pdophp 

//mynginx容器名(非固定),workend网络组名称(同名互连),/Users/xxx/Works/web 工作目录(非固定),/Users/xxx/Works/docker/nginx/conf.d/ nginx配置文件(非固定)
docker run --name mynginx  -p 80:80 --net workend  -v /Users/xxx/Works/web:/usr/share/nginx/html -v /Users/xxx/Works/docker/nginx/conf.d/:/etc/nginx/conf.d --privileged=true -d nginx 

4.建立nginx配置文件

运行 docker ps 查看myphp容器端口(ports),我的为9000

在/Users/xxx/Works/docker/nginx/conf.d/下创建default.conf

server {
        listen       80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        location / {
            index  index.html index.htm index.php;
            autoindex  off;
        }
        location ~ \.php(.*)$ {
            root           /var/www/html/;
            fastcgi_pass   myphp:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
}

重启mynginx

docker restart mynginx

在/Users/xxx/Works/web/ 下创建info.php

<?php phpinfo();

打开浏览器访问,http://localhost/info.php

成功继续往下,不成功找原因...

之后把thinkphp项目放到/Users/xxx/Works/web/下,如phpshop 访问http://localhost/phpshop 在/Users/xxx/Works/docker/nginx/conf.d/下创建每个项目的专属nginx配置。配置之后要重启mynginx

偶尔容器关闭了,使用docker start myphp启动,先启动myphp再启动mynginx

参考:

http://blog.csdn.net/qq_28602957/article/details/53727865

http://www.tuicool.com/articles/AVZFZ3m

http://www.open-open.com/lib/view/open1435818241325.html

...等等等等

© 著作权归作者所有

上一篇: vue tab组件
地球和平
粉丝 0
博文 27
码字总数 4435
作品 0
大兴
私信 提问
docker 17 CE EE install

先决条件 Docker EE 要安装Docker Enterprise Edition(Docker EE),您需要知道与您的试用或订阅相关联的Docker EE存储库URL。要获取此信息: 转到https://store.docker.com/?overlay=subsc...

乌龟运维
2017/06/12
0
0
centos7 docker 安装

转载自https://www.cnblogs.com/baolong/p/6526591.html 系统要求 为了安装docker,需要准备 64-bit的CentOS 7 删除非官方的Docker包 yum的仓库中有一个很旧的Docker包, 现在Docker官方已经将...

xiaoyaoyoufang
2018/02/26
27
0
『中级篇』在centos上安装docker(九)

在mac和window上都已经安装了docker,这次咱们在linux系统下安装docker。这次也补充下vagrant如何搜索:Vagrantfile 如何搜Vagrantfile 之前的课程已经已经完成了在windows/mac下通过vagrant...

IT人故事会
2018/06/03
0
0
『中级篇』如何在mac上安装docker(五)

人与动物最大的区别就是,人会使用工具。在二线城市可能不太明显,一线开发和运维一般都是使用的电脑都是mac,因为mac更接近服务器的linux操作系统。 mac安装的官网介绍 docker官网mac安装 ...

IT人故事会
2018/05/27
0
0
Centos7系统安装docker18.03

系统官方推荐是要7.3,系统必须64位的. 由于新版本的Docker更换了发行版的仓库,以及包名,安装也和以前不太一样,最好是卸载旧版本。 卸载旧版本 旧版本的Docker的软件包名为docker或docke...

模范生
2018/05/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud 笔记之Spring cloud config client

观察者模式它的数据的变化是被动的。 观察者模式在java中的实现: package com.hxq.springcloud.springcloudconfigclient;import org.springframework.context.ApplicationListener;i...

xiaoxiao_go
今天
4
0
CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
今天
4
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
今天
7
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
今天
7
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部