如何傻瓜式使用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的安装和介绍就结束了。

相关推荐
工业3D_大熊1 分钟前
3D可视化引擎HOOPS Luminate场景图详解:形状的创建、销毁与管理
java·c++·3d·docker·c#·制造·数据可视化
szc17674 分钟前
docker 相关命令
java·docker·jenkins
CP-DD10 分钟前
Docker 容器化开发 应用
运维·docker·容器
Stark-C12 分钟前
万物皆可Docker,在NAS上一键部署最新苹果MacOS 15系统
macos·docker·策略模式
Tech Synapse31 分钟前
Java根据前端返回的字段名进行查询数据的方法
java·开发语言·后端
.生产的驴31 分钟前
SpringCloud OpenFeign用户转发在请求头中添加用户信息 微服务内部调用
spring boot·后端·spring·spring cloud·微服务·架构
老司机张师傅40 分钟前
【微服务实战之Docker容器】第七章-Dockerfile解析
容器·dockerfile·虚悬镜像·docker学习
微信-since811921 小时前
[ruby on rails] 安装docker
后端·docker·ruby on rails
吴半杯2 小时前
gateway漏洞(CVE-2022-22947)
docker·kubernetes·gateway
今天我刷leetcode了吗2 小时前
docker 配置同宿主机共同网段的IP 同时通过通网段的另一个电脑实现远程连接docker
tcp/ip·docker·电脑