Podman使用初探-以搭建LNMP-seafile-onlyoffice为情景

孤街浪徒 提交于 2020-01-31 02:00:26

CentOS8已经发布第2版了,之前刚出来,也试着用了一下,发现对于老硬件的支持性不好,而我的测试机正好在不支持的范围内,也就没有折腾。趁着centos8.1.1911发布,加之假期,再次折腾一下。

1.测试机的lspci信息:

05:00.0 Network controller: Qualcomm Atheros AR9285 Wireless Network Adapter (PCI-Express) (rev 01)
09:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8040 PCI-E Fast Ethernet Controller

这是我的三星N148上网本的网卡信息,很老的机子了,10年前的。

通过U盘进行最小化安装,在图形界面下,只能看到无线网卡,尽管安装时已经配置了无线网络的密码等,但是安装后WiFi无法自动启动,通过nmcli 发现“plugin missing”错误。搜索了一下,找到解决方法,也就是安装“NetworkManager-wifi”即可,不过还需要wpa_supplicant-2.7-1.el8.x86_64.rpm 才可以。

这里直接给出两者的下载地址

http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages/NetworkManager-wifi-1.20.0-3.el8.x86_64.rpm

http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages/wpa_supplicant-2.7-1.el8.x86_64.rpm 

2.podman命令

podman从网上的说明看,和docker差不多,大部分命令都可用,只有细微差别。直接用pull拉取镜像

podman pull nginx
podman pull mariadb
podman pull php:7.4-fpm
podman pull seafileltd/seafile
podman pull onlyoffice/Documentserver

注意! podman 可以在非root账号下运行容器,所以,什么身份进行操作也是比较重要的。 以普通用户和以root身份pull下来的images存储位置不同,并且, “podman image list"  只显示当前用户拉取的镜像。

拉取的镜像的存储位置, 可以通过”podman info"来获取相关信息。

3. 原本想着用 podman network create 命令来设置一个容器之间的虚拟局域网的,结果podman是1.4.2版本,网上搜索了一番,看到说是podman-1.6.0以上才增加了这个命令,偏偏当前还没有升级或者安装的方法,所以这个先搁置,直接单独构建容器好了。

podman run -itd --name mysql -h mysql --privileged=true -p 3306:3306 -v /home/sql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456789 mariadb
podman run -itd --name mynginx -h nginx --privileged=true -p 80:80 -v /home/html:/usr/share/nginx/html nginx
podman run -itd --name myphp -h php --privileged=true -p 9000:9000 -v /home/html:/usr/share/nginx/html php:7.4-fpm

使用 ~# podman inspect contaimer_name_ID | grep IPAddress\":             用来显示各个容器的内部ip

4. 修改nginx的配置文件

在podman的命令中,不知道是不是我操作不对? 还是需要加上什么参数, 总之,从容器向本地cp,只能cp文件夹,向容器内CP也是一样,和之前docker命令有所不同。

4.1 cp 原本的配置文件

podman cp mynginx:/etc/nginx/conf.d conf.d
vi conf.d/default.conf

4.2 对default.conf文档进行修改

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.php index.html index.htm;  #增加了一个index.php
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
    #    root           html;
        fastcgi_pass   10.88.0.6:9000;   #这里是myphp 的ip
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
    #上面这一行也比较关键,这个路径是php容器内的路径。如果上一步构建php容器使用的是 /var/www/html/ 则用就是 /var/www/html

        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

4.3 将修改好的文档cp进容器

podman cp /home/conf.d mynginx:/etc/nginx/

4.4 新建 info.php文件

 vi /home/html/info.php

 文件内容:  <?php phpinfo();?>

4.5 重启 mysql myphp mynginx  

podman mysql myphp mynginx  

输入 http://host-ip/info.php 应当看到类似下面的画面

php 与nginx正确连接

5. 安装phpMyAdmin 管理mysql

下载并解压phpMyAdmin到 /lnmp/nginx/html中,通过浏览器进入

http://host-ip/phpMyAdmin/

出现错误:

很明显,要在myphp容器中添加mysqli扩展

5.1.为php容器添加扩展组件

podman exec -it myphp /bin/bash          #进入myphp容器$ cd /usr/local/bin                        #进入安装命令和组件所在目录
./docker-php-ext-install pdo_mysql       #安装扩展pdo_mysql
./docker-php-ext-install mysqli          #安装扩展 mysqli
exit                                     #退出myphp容器

5.2 重启 myphp容器 

podman restart myphp

5.3.再次尝试   http://host-ip/phpMyAdmin/

5.4 登录时会出现错误提示,因为phpMyAdmin没有和mysql容器正确连接,需要对其配置文件进行修改

vi /home/html/phpMyAdmin\libraries\config.default.php

将下列配置项进行修改: $cfg['Servers'][$i]['host']='10.88.0.4';

刷新登录页面即可正确登录

6.onlyoffice 容器的配置

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!