CentOS8.2中的Podman使用初探-以搭建LNMP-seafile-onlyoffice为情景

2023-05-16

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

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以上才增加了这个命令,偏偏当前还没有升级或者安装的方法,所以这个先搁置,直接单独构建容器好了。

 更新2020-7-6 20:01:28  新版的在centos8.2中,可以增加 --ip  10.88.0.XXX  参数,为容器指定一个固定的ip了

podman run -itd --name mysql -h mysql --privileged=true -p 3306:3306 --ip 10.88.0.4 -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 --ip 10.88.0.3 -v /home/html:/usr/share/nginx/html nginx
podman run -itd --name myphp -h php --privileged=true -p 9000:9000 --ip 10.88.0.6 -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 restart 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.编辑systemd配置文档,令各个容器能实现开机启动

由于podman不是守护进程,所以开机后该服务不会自动启动,所以,不能像docker那样,随着docker的启动,控制各个容器达成的服务也自动开启。 因此,要使用systemd服务来进行设定

6.1 生成配置文档

vi /etc/systemd/system/mynginx.service

配置文件的内容:

[Unit]
Description= mynginx service
After=network.target
After=network-online.target
[Service]
Restart=always
ExecStart=/usr/bin/podman start -a mynginx
ExecStop=/usr/bin/podman stop -t 10 mynginx
[Install]
WantedBy=multi-user.target

 

注意:一定要使用编辑工具直接在  /etc/systemd/system/  目录下直接生成配置文件,如果在其他位置,例如 /home目录下,编辑后再cp 或者mv 进去,则下面的操作则不会起效。

6.2 启动容器服务,并设定容器服务开机启动

podman stop mynginx                    #为了更好的验证配置效果,先停止mynginx容器
systemctl start mynginx.service        #启动mynginx容器
systemctl status mynginx.service       #查看该容器服务是否正常。  
systemctl enable mynginx.service       #开机启动的设定命令

6.3 其他容器的配置内容:

mysql.service

[Unit]
Description= mysql service
After=network.target
After=network-online.target
[Service]
Restart=always
ExecStart=/usr/bin/podman start -a mysql
ExecStop=/usr/bin/podman stop -t 10 mysql
[Install]
WantedBy=multi-user.target

myphp.service

[Unit]
Description= myphp service
After=network.target
After=network-online.target
[Service]
Restart=always
ExecStart=/usr/bin/podman start -a myphp
ExecStop=/usr/bin/podman stop -t 10 myphp
[Install]
WantedBy=multi-user.target

 7. 运行myoffice 和myseafile 容器

 

podman run --privileged -itd --name myoffice -h onlyoffice -p 7788:80 onlyoffice/documentserver

podman run --privileged -itd --name myseafile -h seafile -e SEAFILE_ADMIN_EMAIL=youremail@XXX.com -e SEAFILE_ADMIN_PASSWORD='123456789' -v /home/myseafile:/shared -p 10001:10001 -p 12001:12001 -p 8000:8000 -p 8082:8082 -p 8080:80 seafileltd/seafile

7.1 配置myseafile,使之支持onlyoffice

vi /home/myseafile/seafile/conf/seahub_settings.py

在最下方填写下面的内容,根据实际情况修改一下自己的myoffice的地址

# Enable Only Office
ENABLE_ONLYOFFICE = True
VERIFY_ONLYOFFICE_CERTIFICATE = False
ONLYOFFICE_APIJS_URL = 'http://192.168.2.33/web-apps/apps/api/documents/api.js'
ONLYOFFICE_FILE_EXTENSION = ('pdf','doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'odt', 'fodt', 'odp', 'fodp', 'ods', 'fods')
ONLYOFFICE_EDIT_FILE_EXTENSION = ('doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx')

这里面 192.168.2.33,是我在另外一台linux主机上用podman搭建的myoffice服务,主要原因是,按照docker 来进行onlyoffice向seafile集成的配置,始终无法通过。

192.168.2.33主机的配置命令:

podman run -itd --name myoffice -h onlyoffice --privileged=true -p 80:80 onlyoffice/documentserver

这是一个运行在KVM服务器上的centos8 虚拟机,专门用来运行onlyoffice

正常运行并测试成功的结果

 7.2 onlyoffice 和seafile 运行于同一台主机的配置

目前在我的这台N148上是没有配置成功。coreos系统,docker 下的配置成功的经验,请参考我之前的博客

纯docker搭建seafile私有云盘并集成onlyoffice服务-在CoreOS容器操作系统中

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CentOS8.2中的Podman使用初探-以搭建LNMP-seafile-onlyoffice为情景 的相关文章

  • CentOS8下编译配置nginx+rtmp,搭建推流服务器

    一 环境 服务器操作系统 xff1a CentOS Linux release 8 2 2004 Core nginx 版本 https nginx org download nginx 1 18 0 tar gz RMTP模块 xff1a
  • CentOS8安装GNOME3桌面并设置开机启动图形界面

    本篇文章介绍如何在CentOS8 Linux操作系统中安装GNOME3桌面环境和GDM GNOME Display Manager 现实环境管理器 环境 CentOS8 Minimal 安装GNOME3 首先列出网络源中可以使用的Group
  • LNMP详解(十四)——Nginx日志详解

    今天继续给大家介绍Linux运维相关知识 xff0c 本文主要内容是Nginx日志分析 一 Nginx日志分析简介 当Nginx作为web服务器时 xff0c 会提供对外访问功能 xff0c 这时对Nginx日志运行的错误和访问记录会进行记
  • Centos8安装smaba无法访问文件夹

    前期的安装步骤参考上一篇文章 xff1b Ubuntu 20 04 3 部署NAS于蜗牛星际C 在Centos上安装好samba之后 xff0c 由于SELinux属于默认开启状态 xff0c 因此会出现相关文件夹没有权限无法访问的情况 x
  • 不关闭selinux,在CentOS8中安装和配置samba共享

    1 安装samba xff0c 并设置为开机启动 xff1b 开放防火墙对samba的限制 xff1b 配置samba共享的内容 下面两行 xff0c 安装和设定samba开机启动 dnf install samba samba clien
  • mac pro M1(ARM)安装vmware虚拟机及centos8详细教程

    前言 mac发布了m1芯片 xff0c 其强悍的性能收到很多开发者的追捧 xff0c 但是也因为其架构的更换 xff0c 导致很多软件或环境的安装成了问题 xff0c 这次我们接着来看如何在mac m1环境下安装centos8 Centos
  • 虚拟机下CentOS8 无法上网的问题解决办法

    1 首先切换成管理员身份 xff0c root是我之前设置的管理员账号 xff0c 可能会有不同 su root 之后输入密码即可 2 然后进入目录修改配置信息 cd etc sysconfig network scripts 使用ll命令
  • Centos8重启nginx时报错【nginx: [error] invalid PID number ““ in “/opt/nginx/logs/nginx.pid“】

    一 问题描述 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 当我们修改了nginx的配置内容后 需要重启nginx 但是在nginx的sbin目录使用 nginx s reload 命令启动nginx时报错
  • [Linux] CentOS8 升级

    A CentOS8 0升级到8 5的方法 由于CentOS8已经仅仅维护Stream xff0c 8 Linux都已经不在维护 对应仓库都清空了 不过有时候 xff0c 我们依然需要安装对应小版本 xff0c 比如8 5 这里摸索了一个更新
  • LAMP和LNMP详解,面试必备

    LAMP简介 LAMP 是指一个集成开发环境 一般用来建立web应用平台 L Linux A Apache M Mysql P PHP或指Perl或指Python 1 Linux xff1a 是一个性能稳定的多用户网络操作系统 xff0c
  • podman简介

    podman简介掌握docker 跟上云时代的步伐 Podman是一个开源项目 xff0c 可在大多数Linux平台上使用并开源在GitHub上 Podman是一个无守护进程的容器引擎 xff0c 用于在Linux系统上开发 xff0c 管
  • CentOS8安装mysql8.0.24

    记录一下CentOS8安装mysql的过程 CentOS系统版本为CentOS Linux release 8 1 1911 安装的mysql版本为8 0 24 一 下载mysql安装包并解压 执行以下命令 创建mysql安装目录 mkdi
  • docker部署lnmp环境介绍

    lnmp 一 部署lnmp 二 测试nginx和php连接 三 测试php和mysql的连接 一 部署lnmp 1 网络规划 172 16 10 0 24 nginx 172 16 10 10 mysql 172 16 10 20 php
  • podman 是什么?和 docker 有什么区别?

    什么是 podman Podman 是一种无守护进程的容器引擎 可以创建 管理和运行 OCI 容器 容器可以以非 root 身份运行 也可以使用 root 身份运行 Podman 是由 Red Hat 开发 从 Red Hat Enterp
  • 如何在 Vultr 上部署 ONLYOFFICE 文档 v7.3

    现在您可使用通过 Vultr 市场提供的一键式应用在 Vultr 架构中轻松部署 Docker 版本的 ONLYOFFICE 文档 一键式应用是什么 一键式应用是一个包含所有必要预配置组件的镜像 可用于便捷地在运行有 Ubuntu OS 的
  • 如何为 OnlyOffice 正确设置 HTTPS

    下列的OnlyOffice帮助中心的说明导致创建的安全证书被浏览器声明为无效 因为它是自签名的 目的是在 NextCloud 的 Docker 上使用 OnlyOffice 的服务器 该服务器已经在另一台服务器上正常运行 目前 证书已在说明
  • Docker-compose 与 podman 一起使用?

    如何在 podman 中使用 docker compose 文件 这个例子 version 3 7 services gitea image gitea gitea latest environment DB TYPE postgres D
  • 使用 Podman 连接到 VPN

    有了这个Dockerfile FROM fedora 30 ENV LANG C UTF 8 RUN dnf upgrade y dnf install y openssh clients openvpn slirp4netns dnf c
  • 从 TestContainer 访问 Podman REST API

    我使用 Maven 3 和 Podman 1 8 0 开发一个 Java 应用程序 据我了解 Podman 提供了与 Docker 兼容的 REST API Java集成测试使用TestContainer框架 TestContainer 无
  • Podman:如何解析使用 Kubernetes YAML 部署的 pod 的主机名

    我正在使用 podman 4 5 dev 我使用以下方式部署了两个 Pod podman kube 播放 foo yaml podman kube play bar yaml 我在文件中指定了 pod 的主机名 但它们不会在容器内得到解析

随机推荐