如何傻瓜式使用Docker一键安装开发依赖环境

大家好,我是小麦。今天给大家分享的是关于使用Docker一键安装PHP环境的解决方案。该方案具有如下的特点:

  • 支持多个PHP版本,如PHP7.2、PHP7.3、PHP7.4、PHP8.0、PHP8.1。同时也支持也是完全支持自定义PHP版本,只要要简单修改配置即可完成安装你所需要的版本。
  • 支持一键安装PHP所有的套件,在日常中PHP经常会涉及到MySQL、Redis、Memcached、MongoDB、Elasticsearch、Kafka等服务的操作,如果是自己搭建这样的环境,将会是一个很繁琐的过程。该解决方案将为你一键安装所有这些服务,并且支持一键卸载,非常的简单好用。
  • 轻松安装PHP扩展,PHP很多时候的操作都需要一些扩展函数,安装扩展本身是一个很简单的过程,但在一些环境中,安装扩展可能会遇到一些问题,该解决方案直接使用一条命令即可安装需要的扩展,操作是非常的简单好用。
  • 支持HTTPS和HTTP/2、完全开源、跨平台等众多特点。

安装步骤

安装Docker

安装Docker是非常简单的,直接到Docker官网下载对应系统的安装包,然后按照安装包的步骤进行安装即可。安装好之后配置一下镜像源,这样下载镜像的速度就会快一些。 直接添加如下配置即可:

json 复制代码
"registry-mirrors": [
    "https://hub-mirror.c.163.com"
]

下载代码仓库

dnmp在Github上开源,但考虑到Github访问有所限制,因此作者在Gitee上创建了一个仓库,大家可以直接到Gitee上下载。Gitee下载地址

bash 复制代码
git clone  https://gitee.com/yeszao/dnmp.git

下载好之后,大致目录是这样的:

yaml 复制代码
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2024/3/26     11:09                .github
d-----         2024/3/26     11:09                data
d-----         2024/3/26     11:09                logs
d-----         2024/3/26     11:09                services
d-----         2024/3/26     11:09                www
-a----         2024/3/26     11:09             37 .dockerignore
-a----         2024/3/26     11:09             78 .gitattributes
-a----         2024/3/26     11:09             99 .gitignore
-a----         2024/3/26     11:09           1874 bash.alias.sample
-a----         2024/3/26     11:09          10350 docker-compose.sample.yml
-a----         2024/3/26     11:09           6865 env.sample
-a----         2024/3/26     11:09           1066 LICENSE
-a----         2024/3/26     11:09          26271 README-all-en.md
-a----         2024/3/26     11:09           2230 README-en.md
-a----         2024/3/26     11:09          33843 README.md
-a----         2024/3/26     11:09          69126 snapshot.png

直接修改.enx.exampledocker-compose.sample.yml两个文件就可以了,.env文件是配置的环境变量,配置的是安装软件的版本,安装目录,以及一些端口号信息。docker-compose.sample.yml则是执行docker-compose命令所必须要的一些配置。 直接执行如下两条命令就可以了:

bash 复制代码
cp .env.sample .env
cp .docker-compose.sample.yml .docker-compose.yml

环境安装

安装环境,你可以安装docker-compose.yml文件中的所有服务,也可以指定安装所需要的服务。

bash 复制代码
# 安装执行的服务
docker-compose up -d nginx
# 安装所有服务
docker-compose up -d

这里的服务名称就是docker-composer.yml文件中定义的服务名称。

服务管理

这里我以安装NGINX作为演示示例,其他的服务也是同样的操作。

bash 复制代码
# 安装NGINX
docker-compose up -d nginx

# 查看当前启动的容器
CONTAINER ID   IMAGE        COMMAND                   CREATED          STATUS         PORTS                                        NAMES
246bf5673f97   dnmp-nginx   "/docker-entrypoint...."   19 seconds ago   Up 3 seconds   0.0.0.0:443->443/tcp, 0.0.0.0:8080->80/tcp   nginx

# 重启服务
docker restart nginx

# 停止服务
docker stop nginx

# 启动服务
docker start nginx

在安装之后,所有的容器和镜像操作,都是使用docker命令操作即可。

dnmp官网文档所有的操作也是写的非常的详细,更多的功能和配置,可以直接参考官网文档配置即可。

配置域名

在这里单独总结一下如何配置域名。一般都是使用nginx作为web服务,所以只需要配置nginx的配置文件即可。

  • 进入NGINX配置文件目录,默认情况所有的NGINX配置文件都是放在该目录下面。
bash 复制代码
cd dnmp\services\nginx\conf.d
  • 创建配置文件,这里我们创建一个名为localhost.demo.conf的配置文件,域名也是localhost.demo.com,直接按照如下的操作即可。
bash 复制代码
touch  localhost.demo.com.conf
  • 写入如下内容。
ini 复制代码
server {
    listen       80;
    # 域名
    server_name  localhost.demo.com;
    # 网站程序根目录
    root   /www/localhost/demo/public;
    index  index.php index.html index.htm;
    
    access_log  /var/log/nginx/nginx.localhost.demo.com.access.log  main;
    error_log  /var/log/nginx/nginx.localhost.demo.com.error.log  warn;
    error_page   500 502 503 504  /50x.html;
    
    location ~ [^/].php(/|$) {
        # php:9000使用php容器,连接该容器的9000端口。如果你的php容器名称是其他名称,直接修改为对应名称即可。端口也是类似,推荐端口使用默认的。
        fastcgi_pass   php:9000;
        include        fastcgi-php.conf;
        include        fastcgi_params;
    }
    # ThinkPHP框架伪静态设置规则
    location / {
      if (!-e $request_filename) {
          rewrite  ^(.*)$  /index.php?s=/$1  last;
          break;
      }
    }
  # Laravel框架伪静态设置规则
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
}

到此dnmp的安装和介绍就结束了。

相关推荐
2401_85763639几秒前
计算机课程管理平台:Spring Boot与工程认证的结合
java·spring boot·后端
南猿北者4 分钟前
Docker Volume
运维·docker·容器
也无晴也无风雨1 小时前
深入剖析输入URL按下回车,浏览器做了什么
前端·后端·计算机网络
网络研究院2 小时前
Am I Isolated:一款安全态势基准测试工具
容器·工具·基准测试·安全态势
涔溪3 小时前
Docker简介
spring cloud·docker·eureka
内核程序员kevin4 小时前
在Linux环境下使用Docker打包和发布.NET程序并配合MySQL部署
linux·mysql·docker·.net
kayotin4 小时前
Wordpress博客配置2024
linux·mysql·docker
2401_857610034 小时前
多维视角下的知识管理:Spring Boot应用
java·spring boot·后端
代码小鑫4 小时前
A027-基于Spring Boot的农事管理系统
java·开发语言·数据库·spring boot·后端·毕业设计
颜淡慕潇6 小时前
【K8S问题系列 | 9】如何监控集群CPU使用率并设置告警?
后端·云原生·容器·kubernetes·问题解决