主机环境如下:

  • Debian 11系统,IP地址:192.168.0.9
  • Docker内安装Portainer图形化操作界面,Portainer的端口建议在安装的时候用10000,不要用9000,9000和php的端口有冲突。安装方法:https://kzpu.com/archives/5030.html
  • web服务器包括nginx,php,mariadb,phpmyadmin

docer里面有一些坑需要避开,新手可以看一下。打开Portainer图形化界面,并且登录。

一,安装nginx

1,点Containers,然后点右边的Add container,就是新增加一个容器

2,按照要求进行填写。Name:容器的名字,自己可以取一个,自己喜欢就行。Image:镜像的名字,要按作者取的镜像名字来填写,这个是必填。

Always pull the image:意思是总是下载镜像,第一次安装时要打开。如果之前有下载的镜像,只是修改配置,可以关闭这个开关。

Publish a new network port:把容器内的端口映射出来,网卡是桥接的时候,一定要映射,网卡是host时,不用映射。

3,全部填好之后,点一下Deploy the container,等一会容器就ok了。第一次时间比较长,因为要下载镜像,时间视网络好坏。

下图,nginx已OK了。

4,这个时候,在浏览器中输入debian主机的ip,就可以打开nginx的默认页面了。虽然可以用了,但是没有具体的配置,只能显示个默认页,显示不是我们想要的。

用ssh登录到debian之后,把容器内的配置文件复制一份到主机里。

docker cp nginx:/etc/nginx /usr/local/etc/
docker cp nginx:/usr/share/nginx/html /var/www/

把docker内的配置复制到主机来,这样我们就可以在主机内修改这些配置文件了。

5,由于我们把容器内的配置文件复制到主机内,为了要让容器能读取这些文件,我们还需要在主机和容器之间架一个桥梁。

在列表中点一下容器的名字,再点Duplicate/Edit进行编辑

在高级设置选项里面,找到Volumes

点两下map additional volume,会出来两组空行。

container指的是容器内的路径,host指的是主机的路径,Bind的意思是可以自定义路径。

/usr/share/nginx/html:是容器内的html默认的路径,我们映射到主机的/var/www/html里面。

/etc/nginx是容器内的配置目录,我们映射到主机的/usr/local/etc/nginx里面

每次要修改、增加配置时,我们只需要在主机里修改就行了,重启nginx后,容器里会同步读取这个新的配置

6,测试一下,输入ip地址,如果出现错误,可以自己建一个测试页

nano /var/www/html
<h1>aaaaa</h>

应该可以顺利打开测试页了

到此,nginx就已经完成安装了。

二,php的安装

1,Name填php81,镜像名字:php:fpm

2,端口映射:host---9000,container----9000

3,Volumes映射,host----/var/www/html,container----/var/www/html

4,点Deploy

5,测试一下php是否能用。增加一个php文件,用ssh登录debian

nano /var/www/html/index.php

写入

<?php phpinfo(); ?>

修改一下nginx的配置文件,/usr/local/etc/nginx/conf.d/default.conf,这个默认文件里面,php是被注释了的,所以现在还打不开php文件。

    location ~ \.php$ {
        root           html;
        fastcgi_pass   192.168.0.9:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name;
        include        fastcgi_params;
    }

fastcgi_pass这里写debian的ip,fastcgi_param这里,要写映射的目录名字,否则会出现错误。

三,maiadb的安装

1,Name填mariadb,镜像名字:mariadb

2,Volumes映射,host----/var/lib/mysql,container----/var/lib/mysql

3,高级设置Evn里,增加两项

MARIADB_USER:用户名
MARIADB_ROOT_PASSWORD:密码

4,Network选host

5,点Deploy

四,phpmyadmin的安装

1,Name填phpmyadmin,镜像名字:phpmyadmin

2,端口映射:host---8070,container----80。host这里,自己选个喜欢的就行

3,高级Env下面,增加一项

PMA_HOST:写debian的ip

4,点Deploy

5,在浏览器中打开192.168.0.9:8087,输入mariadb的用户名和密码,即可登录数据库。

发表评论

您的电子邮箱地址不会被公开。