使用docker部署Nginx+php

一、安装基础环境

1.升级yum
yum -y update
2.安装必要插件
yum -y install wget zip unzip net-tools procps-ng vim telnet yum-utils
3.修改服务器时区
设置上海时区并设置自动更新时间
查看当前时区设置

timedatectl
如果不是Asia/Shanghai,则需要修改时区为上海

设置自动同步时间

yum install -y ntpdate
ntpdate -u cn.pool.ntp.org
设置为北京时间
timedatectl set-timezone Asia/Shanghai
4.安装docker和图形化界面
  • 安装底层工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  • 加入阿里云yum仓库提速docker下载过程

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 更新⼀下仓库的源信息

sudo yum makecache fast
  • ⾃动安装下载Docker

sudo yum -y install docker-ce
启动Docker服务

sudo service docker start
​
设置docker为自启动

systemctl enable docker
​
验证docker是否启动成功
systemctl status docker
  • 拉取portainer镜像

docker pull portainer/portainer:latest
  • 安装并启动一个portainer容器

汉化版下载
docker run -d \
--name=portainer-zh \
-p 9100:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
--restart=always \
6053537/portainer-ce
# 使用docker run命令以守护进程模式(-d)运行一个新的容器  
docker run -d    
# 为容器指定一个名称,这里命名为fus_portainer  
--name fus_portainer    
# 将宿主机的9090端口映射到容器的9000端口,使得可以通过宿主机的9090端口访问到容器内的Portainer服务  
-p 9090:9000 \  
# 将宿主机的docker socket文件挂载到容器内的相同位置,这样Portainer就可以管理宿主机上的Docker容器和镜像了  
-v /var/run/docker.sock:/var/run/docker.sock \  
# 设置容器总是自动重启,即使容器退出也会尝试重新启动  
--restart always \  
# 赋予容器特权模式,允许容器访问宿主机上的设备  
--privileged=true \  
# 指定要运行的镜像名称和版本,这里是Portainer的官方镜像  
portainer/portainer
5.安装docker-compose
sudo yum install -y epel-release
sudo yum install -y python-pip
sudo yum -y install docker-compose

二、安装nginx+php

1.下载镜像
docker pull php:7.1-fpm
docker pull nginx:1.21
docker images
2.编写 docker-compose 文件
mkdir -p /usr/local/docker
cd /usr/local/docker
mkdir php71
cd php71/
vim docker-compose.yml
  • docker-compose 中的内容

# 指定 compose 版本
version: '3.1'
# 定义服务信息
services:
  # php71 表示服务名称
  php71:
    # 使用的镜像
    image: 'php:7.1-fpm'
    # restart: 定义重启策略
    # no:是默认的重启策略,在任何情况下都不会重启容器。
    # always:容器总是重新启动。
    # on-failure:在容器非正常退出时(退出状态非0),才会重启容器。
    # unless-stopped:在容器退出时总是重启容器,但是不考虑在 Docker 守护进程启动时就已经停止了的容器
    restart: unless-stopped
    # 自定义容器名
    container_name: php71_container
    # 使 container 内的 root 拥有真正的 root 权限,不加则 container 内的 root 只是外部的一个普通用户权限。
    privileged: true
    # 设置宿主机和容器之间的端口映射关系
    ports:
      - '9000:9000'
    # 数据卷,定义映射关系,将目录或文件挂载到容器
    volumes:
      - /usr/local/docker/php71/www:/usr/share/nginx/html
      - /usr/local/docker/php71/php:/usr/local/etc/php
    # 设置环境变量(TZ=Asia/Shanghai:设置时区)
    environment:
      - TZ=Asia/Shanghai
    # 定义网络信息,详细的可以去这里看看 https://deepzz.com/post/docker-compose-file.html#toc_31
    networks:
      - airvip
​
  nginx121:
    image: 'nginx:1.21'
    restart: unless-stopped
    container_name: nginx_container
    # 使 container 内的 root 拥有真正的 root 权限,不加则 container 内的 root 只是外部的一个普通用户权限。
    privileged: true
    ports:
      - '8889:80'
    volumes:
      - /usr/local/docker/php71/www:/usr/share/nginx/html
      - /usr/local/docker/php71/nginx/conf.d:/etc/nginx/conf.d
      - /usr/local/docker/php71/logs/nginx:/var/log/nginx
    environment:
      - TZ=Asia/Shanghai
    networks:
      - airvip
    # 设置依赖关系,可以让 docker-compose 按依赖关系启动
    depends_on:
      - php71
​
networks:
  airvip:
3.创建必要的目录与文件
mkdir -p nginx/conf.d
cd nginx/conf.d
vim default.conf
编写default中的内容
server {
    listen  80 default_server;
    server_name  localhost;
​
    root  /usr/share/nginx/html;
    location / {
        index index.html index.htm index.php;
    }
​
    location ~ \.php$ {
        fastcgi_pass   php71:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
4.编写个 php 测试信息页
cd ../../
mkdir www
cd www
vim index.php
  • 下面是 index.php 中的内容

<?php phpinfo();
5.启动 php71 nginx121 服务
cd ..
docker-compose up -d
docker ps
docker-compose stop
docker-compose start
docker-compose restart
7.验证(windows浏览器)
localhost:8889

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值