【原力计划】深夜学妹发微信视频要聊的敏感话题居然是podman,聊天过程解密

网友投稿 253 2022-10-20

【原力计划】深夜学妹发微信视频要聊的敏感话题居然是podman,聊天过程解密

学妹小庄: 师哥,现在已经一点, 咱们能聊点敏感话题吗?

老辛: 可以啊

学妹小庄: 那我们开视频吧。

视频打开后,黑漆漆的,啥也看不到,没开灯!

学妹小庄:听说docker已经不火了,在centos8下直接使用podman替代了docker,是这样的吗?

老辛: 额(超敏感,前沿话题啊),是的,docker出现的原因是为了解决不同的环境之间,手工匹配的复杂程度。

但是docker在使用的过程中也会遇到问题,比如:“Docker 守护程序在多个核心上占用 100% CPU 资源,并导致主机无法正常使用。”

而Podman不需要守护程序,也不需要访问 root 权限组。Podman 能够替代大部分子命令(run, push, pull 等等)。由于不需要守护程序,而且会利用用户命名空间模拟容器中的 root,所以 Podman 不需要接入具有 root 权限的 socket——这就解决了 Docker 长期以来一直面临的老大难问题。

学妹小庄: 那你远程教教我吗?

老辛: 额,就这?(表达对师妹爱学习态度的肯定和赞赏)

那我们先从搭建开始做起吧,然后我会结合一个案例教你如何使用podman

文章目录

​​一. 搭建podman​​

​​1. 系统环境​​​​2. 更新dnf​​​​3. 安装podman​​

​​二 . 搭建wordpress初始容器​​

​​1. 查找centos8的镜像​​​​2. 下载centos8​​

​​3. 基于镜像创建容器​​​​4. 进入容器​​​​三. 搭建wordpress​​

​​1. 安装所需要的依赖包​​​​2. 启动安装好的服务​​​​3. 查看状态​​​​4. 配置数据库​​​​5. 下载wordpress​​​​6. 解压安装​​​​7. 配置apache​​​​8. 配置wordpress​​

一. 搭建podman

1. 系统环境

[root@xinsz08-20 ~]# uname -r4.18.0-80.el8.x86_64[root@xinsz08-20 ~]# cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core)

2. 更新dnf

注: dnf类似于yum,是centos8里面自带的软件管理器

[root@xinsz08-20 ~]# dnf update -y && dnf makecache

(此处更新大约需要5分钟)

3. 安装podman

[root@xinsz08-20 ~]# dnf install podman -y[root@xinsz08-20 ~]# podman -vpodman version 2.2.1

二 . 搭建wordpress初始容器

Podman安装完成后,我们选择基于Centos 8的镜像搭建WordPress。

也可以直接在Docker Hub (Podman兼容Docker) 中找 WordPress的镜像,会更快捷,

但是呢,我们说,运维玩的就是个折腾!

所以我们多折腾一步吧,了解一下具体结构,比如添加8的镜像,用于之后搭建WordPress,有时候直接通过podman search centos:8 找不到官方的image。

1. 查找centos8的镜像

[root@xinsz08-20 ~]# podman search centos:8 ## 查看8的镜像INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATEDdocker.io docker.io/yozhi/centos add some common tools to image centos:8.2.2... 0 docker.io docker.io/dongyupu/jira-software tag 8.5.0 : centos:8(openjdk-1.8.0) tag 8.3.... 0 docker.io docker.io/vssware/gmssl Base On vssware/centos:8 1 docker.io docker.io/vssware/python 基于 *vssware/centos:8* 镜像创建,使... 0 docker.io docker.io/images4dev/centos8 Based off the official CentOS:8.1.1911 image... 0 docker.io docker.io/mizux/ortools Simple python ortools inside a centos:8 dock... 0 docker.io docker.io/jlkinsel/centos-polylinux-example Example of a centos:8.1.1911 that's had pack... 0 docker.io docker.io/thanasan/centos8-systemd Linux CentOS:8 systemd 0 docker.io docker.io/mohitaga98/centos1 centos:8 with additional internal commands(p... 0 docker.io docker.io/meghna98/centos_with_ Centos:8 images with installed 0

2. 下载centos8

[root@xinsz08-20 ~]# podman pull centos:8

查看拉取到本地的镜像

[root@xinsz08-20 ~]# podman imagesREPOSITORY TAG IMAGE ID CREATED SIZEdocker.io/library/centos 8 300e315adb2f 4 months ago 217 MB[root@xinsz08-20 ~]# podman image lsREPOSITORY TAG IMAGE ID CREATED SIZEdocker.io/library/centos 8 300e315adb2f 4 months ago 217 MB[root@xinsz08-20 ~]#

3. 基于镜像创建容器

使用podman run --help查看具体参数

–name mywordpress 将容器命名为mywordpress

-dit 是三个选项的合体,主要保证能够在后台运行

-p 表示映射一个服务器端口至容器,比如映射80端口用于为赋予容器systemctl等命令的权限,方便后续管理

[root@xinsz08-20 ~]# podman run --name mywordpress -dit -p 80:80 -p 443:443 centos:8 /sbin/init

查看当前的所有容器的状态

[root@xinsz08-20 ~]# podman ps -a ## 查看所有的容器CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESf42545980324 docker.io/library/centos:8 /sbin/init 25 seconds ago Up 22 seconds ago 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp mywordpress[root@xinsz08-20 ~]# podman ps ## 查看正在运行的容器CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESf42545980324 docker.io/library/centos:8 /sbin/init 30 seconds ago Up 27 seconds ago 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp mywordpress[root@xinsz08-20 ~]#

4. 进入容器

使用命令进入容器

[root@xinsz08-20 ~]# podman exec -it f42545980324 bash[root@f42545980324 /]#

可以看到xshell上主机名变化

查看下hostname

[root@f42545980324 /]# hostnamef42545980324

三. 搭建wordpress

注意: 在容器中不建议使用dnf update, 会使容器不必要的增大很多

首先我们安装所需要的软件和服务

mariadb 为一个数据库,也可以用其他数据库。用于之后 wordpress 存储文章、用户等数据信息是 apache 网站服务,wordpress 可以选择搭建在 apache 之上。当然还可以选择用 nigix。php 是 wordpress 基于的脚本语言wget 是常用的下载工具,之后会用于下载 wordpress 包

1. 安装所需要的依赖包

[root@f42545980324 /]# dnf install mariadb mariadb-server php php-cli php-json php-gd php-mbstring php-pdo php-xml php-mysqlnd php-pecl-zip wget -y

2. 启动安装好的服务

[root@f42545980324 /]# systemctl start /]# systemctl start mariadb[root@f42545980324 /]# systemctl enable symlink /etc/systemd/system/multi-user.target.wants/→ /usr/lib/systemd/system//]# systemctl enable mariadbCreated symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.[root@f42545980324 /]#

3. 查看状态

出现running就证明没有问题,已经在运行

:q可以退出到非查看状态;

如果状态非active,则意味着有一些问题,可能是配置问题(但当前还没有进行配置,但之后可能会遇到,到时候可以通过报错提示的日志查看方式,确定问题所在),也可能是内存不足等等,可以使用top查看状态;

4. 配置数据库

进入数据库:

[root@f42545980324 /]# mysql -uroot -pEnter password:

创建mywordpress数据库,名字可以自定,但需要记住,之后配置wordpress需要用到:

MariaDB [(none)]> create database mywordpress;Query OK, 1 row affected (0.001 sec)MariaDB [(none)]> GRANT ALL ON mywordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'mywordpresspassword';Query OK, 0 rows affected (0.000 sec)MariaDB [(none)]> flush privileges;Query OK, 0 rows affected (0.000 sec)

5. 下载wordpress

WordPress是php写的页面服务,跑在网站服务器上(apache或nigx),所以不需要安装。

这里选择安装至 /var/目录下

[root@f42545980324 /]# cd /var/wget lscgi-bin html latest.tar.gz[root@f42545980324 解压安装

[root@f42545980324 tar xf latest.tar.gz [root@f42545980324 ls -l total 15388drwxr-xr-x. 2 root root 6 Nov 4 03:23 cgi-bindrwxr-xr-x. 2 root root 6 Nov 4 03:23 html-rw-r--r--. 1 root root 15750352 Apr 15 02:08 latest.tar.gzdrwxr-xr-x. 5 nobody nobody 4096 Apr 15 02:08 wordpress[root@f42545980324 -R参数表示递归修改,会一起修改文件夹内所有文件,-f是不看报错消息,可以不加f。

775对应于apache和apache组可读、可写、可执行,而其他组可读、不可写、可执行

[root@f42545980324 chown -Rf apache:apache ./wordpress/[root@f42545980324 chmod -Rf 775 ./wordpress/

7. 配置apache

[root@f42545980324 cd /etc/lsconf conf.d conf.modules.d logs modules run state[root@f42545980324 ,可以查阅其配置

conf.d是额外配置的文件夹,根据.conf 结尾的文件。

conf.modules.d是模块的配置文件夹,根据.conf 结尾的文件,一些比如ssl、webdav等常用的模块配置就位于这个文件夹中。

而我们的wordpress配置可以放在conf.d中,首先进入conf.d,用vi创建并编辑配置文件:

[root@f42545980324 cd /etc/conf.d]# vim mywordpress.conf #此时还没有vimbash: vim: command not found[root@f42545980324 conf.d]# vi mywordpress.conf[root@f42545980324 conf.d]#

粘进下方配置

服务监听 80 端口

服务根文件夹为 /var/conf.d]# cat mywordpress.conf ServerAdmin root@localhost DocumentRoot /var/ ErrorLog /var/log/ CustomLog /var/log/common

完成后Esc进入vi的普通模式,并键入 :wq 保存与退出。

之后重启apache服务

[root@f42545980324 conf.d]# systemctl restart 配置wordpress

输入虚拟机的IP进行配置

192.168.1.20

选择中文

ITlaoxinJFedu1234!

输入用户名和密码就进入了后台哦。

学妹小庄: 哇,太厉害了,我去洗澡了,你早点睡吧。

老辛: 就这?(表达对学妹良好的作息习惯的肯定)

总结:

每一个新技术的出现,都是为了解决之前技术的痛点的, podman也不例外。

Podman(Pod Manager)是一个功能齐全的容器引擎,它是一个简单的无守护工具。 Podman提供了一个类似Docker-CLI的命令行,可以简化从其他容器引擎的转换,并允许管理pod,容器和图像。

你学会了吗?

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:一个实战让你搞懂Dockerfile
下一篇:java中list.forEach()和list.stream().forEach()区别
相关文章

 发表评论

暂时没有评论,来抢沙发吧~