zoukankan      html  css  js  c++  java
  • 利用docker搭建ubuntu+nginx+PHP容器

     
    环境:操作系统(Ubuntu  16.04 64位); php7.1;  nginx/1.14.0
     
    基础环境准备:
    整体思路:docker pull一个ubuntu镜像,然后在容器中安装nginx,PHP,启动时将宿主机中的数据目录,配置文件映射到容器中,映射宿主机端口到容器中端口。
     
    #拉取ubuntu镜像
    Docker pull ubuntu                
    #启动ubuntu容器
    docker  run -it —name myserver ubuntu  /bin/bash      
     #进入容器中,退出可以使用exit,容器仍然运行
    Docker exec -it myserver    /bin/bash                          
     
    容器中安装nginx:
    #安装软件前务必更新源,否则会出现找不到安装包
    apt-get update
     
    #安装nginx
    apt-get install nginx
     
    容器中安装PHP:
    sudo apt-get install -y language-pack-en-base
    locale-gen en_US.UTF-8
    sudo apt-get install software-properties-common
    sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
    sudo apt-get update
    sudo apt-get -y install php7.1
    sudo apt-get -y install php7.1-mysql
    sudo apt-get install php7.1-fpm
    apt-get install php7.1-curl php7.1-xml php7.1-mcrypt php7.1-json php7.1-gd php7.1-mbstring
    至此容器的基础环境(nginx+php)搭建好了。
     
    接下来我们把刚才的容器做成一个镜像,然后以这个镜像来做接下来的操作。
    首先用docker ps查询容器的ID,然后执行下面命令,将容器做成镜像
     提交镜像:
    docker commit-m“ubuntu+nginx+php"-a“dadong"0d358e48211c79 myserver
     
     
    1、创建容器:
     
    docker run --name myserver -p 9001-9020:9001-9020 -v /data:/data -v /etc/nginx:/etc/nginx -v /etc/php/7.1:/etc/php/7.1 -it  1023495336/linux
    注意:如果需要退出容器,使用快捷键ctrl+p+q
     
    2、修改配置文件
    修改配置文件的域名,端口
    修改docker配置文件可以在宿主机中的映射文件修改,然后到docker容器中重启nginx
    service nginx reload
     
    3、修改宿主机nginx配置文件,实现域名访问docker容器中项目。
    在nginx配置文件/etc/nginx/conf.d下创建以.conf结尾的配置文件,内容如下:
    server {
    listen 80;
    server_name  aaa.100wlc.com;
    location / {
    proxy_pass http://172.16.237.125:9030;       ##宿主机IP:宿主机端口(宿主机映射的容器端口)
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root /usr/share/nginx/html;
      }
    }
    重启宿主机nginx
     
     
     
     
  • 相关阅读:
    js中this应用
    易语言学习
    哈希表和字典List和Ilist和array和arraylist的应用
    ExtJs中decode与encode(转载)
    ajax几种请求几种类型
    关于Json
    简单属性margin和padding
    ==和===的区别
    maven实战读书笔记(三)
    maven实战读书笔记(二)
  • 原文地址:https://www.cnblogs.com/dadonggg/p/10098935.html
Copyright © 2011-2022 走看看