我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Docker的配置和部署,并搭建php和nginx环境

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Docker的配置和部署,并搭建php和nginx环境

一开始没有思路,直接用宝塔一键搭建的Docker

服务器环境:CentOS 7.6

说下体验:

通过安装进度还是有些报错出现的,但是一向“兼容不错的宝塔”还是对他抱有一线希望。

最后还是安装成功了。

 装好了,如何使用?

Docker 是基于命令行使用的,那现在通过一些实际问题去使用一些命令!

1.首先查看是否安装成功。通过查看版本好去验证吧!

docker version

 

 运行成功,“宝塔”还是很厉害的。

2.1.Docker 下载 PHP镜像

本来想学习部署go环境的,但是为了避免程序出错,还是选择了熟悉的PHP。建议大家也选择自己熟悉环境,避免坑太多。

Docker是有云镜像的,可以这么理解,所有的环境都可以通过搜索关键词去安装。

docker search php 

接下里看到是“php” 相关的搜索结果

 结果只列出了相应软件,但是我们需要获得相应的版本号才能更好的去配置,比如:php5.3/php5.4/php5.5/php7.0

通过命令找比较麻烦,目前没有最好的方式,需要的话可以到Docker的官网去查询。

搜索地址:https://hub.docker.com/_/php/tags

当然国内无法访问,那么只有通过“搜索引擎”去了解相应版本号了

docker pull php:7.4-fpm

获取PHP镜像,后面的数字可以指定PHP的版本,目前安装的是PHP7.4

docker images

查看安装的镜像列表

docker images php

查看php的信息

在这里 IMAGE ID 是一个重要信息,通过前几位例如“38f2”来创建容器

2.3.创建容器,Docker 部署 PHP容器

现在我们需要创建PHP的容器,并且启动PHP。

docker run --name php-test -v /usr/local/nginx/html:/www -p 9000:9000 -d 38f2

命令解释

  • docker run : 是创建一个新容器并运行一个命令
  • --name : 给容器起一个名字,指的是 php-test
  • -p : 指定宿主机与容器内部端口的映射关系,-p [宿主机端口]:[容器内部端口],我设置的是 9000:9000,注意测试80端口是还容易冲突。
  • -d : 设置容器在在后台一直运行
  • 最后面的 PHP 是镜像名称,也可以是镜像ID,例如上面提到的 “38f2”

docker rm php-test

以上为删除容器,由于端口有冲突,需要删除从新创建。

 容器安装完毕

再次需要注意的是端口冲突和端口安全组规则,一般没问题,此处需要注意

3.1 nginx的配置,与PHP类似,不懂可反复查看PHP

docker search nginx

查看Nginx的镜像列表

docker pull nginx

获取Nginx 镜像

docker run --name nginx-test -p 8089:8089 -d nginx

启动容器,在宝塔面板“安全”内,做放行处理,否则会有端口冲突。

docker ps

查看正在运行的容器

docker ps -a

查看所有容器

docker stop 4a9015fc1b2a

停止容器,4a9015fc1b2a是CONTAINER ID,通过“docker ps”查看

docker start 6414e8b2ee30

运行容器,6414e8b2ee30是CONTAINER ID,通过“docker ps”查看

在此nginx安装上了,但是通过外网是无法访问的。

在此卡壳了,为了打开思路,下面继续了解下nginx配置相关的内容了,带着“端口”相关的疑惑继续配置吧!

修改nginx的配置文件

nginx是在docker中配置的,所有也是需要在docker中修改的。

docker exec -it 641 /bin/bash

进入nginx容器命令行

命令解释

  • docker exec : 在运行的容器中执行命令。
  • -it : -i和-t两个参数配合使用,开启一个交互模式的终端。
  • 641 : 名称为nginx-test容器ID。
  • /bin/bash : 指定了执行命令的shell。

exit

退出容器命令行

docker cp 6414:/etc/nginx/nginx.conf /usr/docker/nginx

docker cp 6414:/etc/nginx/conf.d/default.conf /usr/docker/nginx/conf/

6414 为容器ID,复制容器内的文件到外部。

docker run --name nginx-config -p 8089:8089 \
-v /usr/docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/docker/nginx/logs:/var/log/nginx \
-v /usr/docker/nginx/html:/usr/share/nginx/html \
-v /usr/docker/nginx/conf:/etc/nginx/conf.d \
--privileged=true -d nginx

从新配置一个容器,并将它的一些文件镜像主机,方便编辑

一些小插曲

就目前为止,容器的部署,启动,关闭,卸载,进程查看都没问题了,但是最后Nginx 始终不能正常访问,在此抛下疑问寻找突破点。

docker下的进程能否在shell下查看

nginx 删除 配置文件是否会报错,(算是互动了解了,因为就目前为止只知道安装了,但是没看到任何有迹可循的思路,哪怕是报错都没有。)

翻阅现有站点对nginx 配置文件做对比。(这个思路还是不错的,好歹有个参考点)

通过常规方式新建了一个站点,确保了一个端口是开放的,这下可以排除端口限制的问题了。

从新配置一个容器

docker run --name nginx-test-two -p 8090:8090 -d nginx

还是不行

下面nginx配置文件做对比,还是要先了解nginx的配置文件。

最后找到原因,nginx默认生成的配置文件“default.conf”端口不对,为啥是80呢(坑)

修改为8089后可以正常访问了。

通过nginx访问php

通过走上面的弯路还有一些坑,我想下面应该会顺利些了。

首先删除销毁之前配置的容器,这些请看上边的,停止--》删除容器

PHP配置

docker run --name php-test -v /usr/local/nginx/html:/www -p 8089:8089 -d 38f

新建php模块,注意 -d 是镜像ID,通过 docker images 查看

  • -v:  挂载目录, 此处 /usr/local/nginx/html目录为宿主机存放文件目录,/www为PHP容器内存放文件目录。

Nginx配置

在此卡壳,配置完成 提示成功还是无法访问PHP文件,静态文件可以访问。

来源地址:https://blog.csdn.net/weixin_39434806/article/details/131079404

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Docker的配置和部署,并搭建php和nginx环境

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Docker Compose、Nginx和MariaDB的开箱即用解决方案:快速搭建PHP环境

概述:在开发和部署PHP应用程序时,搭建一个可靠且易于管理的环境是至关重要的。Docker Compose、Nginx和MariaDB可以提供一个快速搭建PHP环境的解决方案。本文将介绍如何使用Docker Compose来配置和运行容器,
2023-10-21

打造高性能网站:使用 nginx、MySQL 和 PHP 编译,搭建 LNMP 环境并安装 WordPress实战

前言 🏠个人主页:我是沐风晓月 🧑个人简介:大家好,我是沐风晓月,阿里云社区博客专家😉😉 💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步
2023-08-21

Qt on Android(QT上搭建Android环境,即在QT上编写对应自己手机安卓版本的APP) (附配置遇到的问题和总结)

一、总结(新手必看) 目的:在毕业设计中写一个手机软件来控制我的智能家居模拟设备,希望通过QT写程序,然后将编译生成的文件能够发送给手机在手机上运行。 最开始的一脸懵逼和迷茫:网上搜索相关QT 安卓关键词,结果全都是“T for Adroi
2022-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录