利用Podman导入rocky容器镜像并安装httpd
1. 使用yum
安装podman
[root@Rocky ~]# yum install -y podman
2.使用podman导入rockylinux镜像
[root@Rocky ~]# podman load -i rockylinux.tar
命令说明
podman load -i {此处为镜像文件}
导入完成后可以通过如下命令查看已经导入到podman中的镜像。
[root@Rocky ~]# podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost/rockylinux 9.3.20231119-minimal 89d486197fde 3 months ago 132 MB
[root@Rocky ~]#
3.使用导入rockylinux镜像,的开启名为skills的容器,映射指定端口和文件夹。
使用命令创建容器
podman run -dt -v /dockerlinux:/etc -v /mnt:/mnt -p 8000:80 --name skills 89d486197fde
命令说明如下
podman run -dt -v {本地目录}:{容器内目录} -v {本地目录}:{容器内目录} -p {本地端口}:{容器端口} --name {容器名称} {镜像ID}
端口说明:当客户机在访问我们主机8000端口时,将会将流量转发至我们容器内的80端口中。实现客户机访问到容器内主机对外提供的服务。
镜像ID说明:镜像ID可通过
podman images
查看 该命令返回的IMAGE ID
即是对应的镜像ID目录说明:上述命令中,
dockerlinux
文件目录需要提前先建立好。此后容器内的/etc
目录下的文件将会映射到我们dockerlinux
目录中,我们修改主机内dockerlinux
文件夹内的文件时,容器主机内的文件也会一并同步修改,,方便我们配置容器内的配置文件。映射主机/mnt
目录到容器主机的/mnt
中的作用是为了配置容器内的软件源。主机已将光盘镜像挂载到
/mnt
映射到容器中,容器就可以使用包管理器离线安装软件。
授予主机映射到容器目录下的目录权限
[root@Rocky ~]# chmod 755 -R /dockerlinux
[root@Rocky ~]# chmod 755 -R /mnt
4.进入skills容器内的bash
使用如下命令进入
[root@Rocky ~]# podman exec -it skills bash
bash-5.1#
在容器中执行
bash-5.1# microdnf
退出容器终端
bash-5.1# exit
exit
[root@Rocky ~]#
5.在主机dockerlinux
中找到容器的yum源,配置yum软件源。
[root@Rocky yum.repos.d]# cat /dockerlinux/yum.repos.d/cdrom.repo
[cdrom]
name=cdrom
baseurl=file:///mnt/BaseOS
enable=1
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
enable=1
gpgcheck=0
[root@Rocky yum.repos.d]#
6.容器中安装并配置httpd
回到容器内
podman exec -it skills bash
在容器内安装httpd
bash-5.1# microdnf install httpd
(microdnf:6): GLib-CRITICAL **: 17:08:02.663: g_path_get_basename: assertion 'file_name != NULL' failed
(microdnf:6): libdnf-WARNING **: 17:08:02.698: Skipping refresh of media: Cannot update read-only repo
Package Repository Size
Installing:
acl-2.3.1-3.el9.aarch64 cdrom 72.3 kB
apr-1.7.0-11.el9.aarch64 AppStream 122.3 kB
apr-util-1.6.1-20.el9.aarch64 AppStream 97.8 kB
apr-util-bdb-1.6.1-20.el9.aarch64 AppStream 13.0 kB
apr-util-openssl-1.6.1-20.el9.aarch64 AppStream 15.1 kB
dbus-1:1.12.20-7.el9_1.aarch64 cdrom 7.1 kB
dbus-broker-28-7.el9.aarch64 cdrom 168.7 kB
dbus-common-1:1.12.20-7.el9_1.noarch cdrom 14.1 kB
expat-2.5.0-1.el9.aarch64 cdrom 113.3 kB
httpd-2.4.53-11.el9_2.4.aarch64 AppStream 48.0 kB
httpd-core-2.4.53-11.el9_2.4.aarch64 AppStream 1.4 MB
httpd-filesystem-2.4.53-11.el9_2.4.noarch AppStream 14.4 kB
httpd-tools-2.4.53-11.el9_2.4.aarch64 AppStream 82.3 kB
kmod-libs-28-7.el9.aarch64 cdrom 63.5 kB
libseccomp-2.5.2-2.el9.aarch64 cdrom 72.3 kB
mailcap-2.1.49-5.el9.noarch cdrom 32.9 kB
mod_http2-1.15.19-4.el9_2.4.aarch64 AppStream 147.7 kB
mod_lua-2.4.53-11.el9_2.4.aarch64 AppStream 60.7 kB
rocky-logos-httpd-90.14-1.el9.noarch AppStream 24.8 kB
systemd-252-13.el9_2.aarch64 cdrom 3.9 MB
systemd-pam-252-13.el9_2.aarch64 cdrom 251.1 kB
systemd-rpm-macros-252-13.el9_2.noarch cdrom 45.1 kB
Downgrading:
systemd-libs-252-13.el9_2.aarch64 cdrom 628.5 kB
replacing systemd-libs-252-18.el9.aarch64
Transaction Summary:
Installing: 22 packages
Reinstalling: 0 packages
Upgrading: 0 packages
Obsoleting: 0 packages
Removing: 0 packages
Downgrading: 1 packages
Is this ok [y/N]: y
Running transaction test...
Installing: expat;2.5.0-1.el9;aarch64;cdrom
Downgrading: systemd-libs;252-13.el9_2;aarch64;cdrom
Installing: apr;1.7.0-11.el9;aarch64;AppStream
Installing: apr-util-openssl;1.6.1-20.el9;aarch64;AppStream
Installing: apr-util-bdb;1.6.1-20.el9;aarch64;AppStream
Installing: apr-util;1.6.1-20.el9;aarch64;AppStream
Installing: httpd-tools;2.4.53-11.el9_2.4;aarch64;AppStream
Installing: httpd-filesystem;2.4.53-11.el9_2.4;noarch;AppStream
Installing: rocky-logos-httpd;90.14-1.el9;noarch;AppStream
Installing: systemd-rpm-macros;252-13.el9_2;noarch;cdrom
Installing: libseccomp;2.5.2-2.el9;aarch64;cdrom
Installing: kmod-libs;28-7.el9;aarch64;cdrom
Installing: mailcap;2.1.49-5.el9;noarch;cdrom
Installing: httpd-core;2.4.53-11.el9_2.4;aarch64;AppStream
Installing: mod_lua;2.4.53-11.el9_2.4;aarch64;AppStream
Installing: mod_http2;1.15.19-4.el9_2.4;aarch64;AppStream
Installing: acl;2.3.1-3.el9;aarch64;cdrom
Installing: dbus;1:1.12.20-7.el9_1;aarch64;cdrom
Installing: systemd-pam;252-13.el9_2;aarch64;cdrom
Installing: systemd;252-13.el9_2;aarch64;cdrom
Installing: dbus-common;1:1.12.20-7.el9_1;noarch;cdrom
Created symlink /etc/systemd/system/sockets.target.wants/dbus.socket → /usr/lib/systemd/system/dbus.socket.
Created symlink /etc/systemd/user/sockets.target.wants/dbus.socket → /usr/lib/systemd/user/dbus.socket.
Installing: dbus-broker;28-7.el9;aarch64;cdrom
Created symlink /etc/systemd/system/dbus.service → /usr/lib/systemd/system/dbus-broker.service.
Created symlink /etc/systemd/user/dbus.service → /usr/lib/systemd/user/dbus-broker.service.
Installing: httpd;2.4.53-11.el9_2.4;aarch64;AppStream
Cleanup: systemd-libs;252-18.el9;aarch64;installed
Complete.
bash-5.1#
在容器中的httpd默认网站目录下新建index.html 并写入HelloPodman。
bash-5.1# echo HelloPodman > /var/www/html/index.html
启动httpd服务
bash-5.1# httpd
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 10.88.0.13. Set the 'ServerName' directive globally to suppress this message
bash-5.1#
退出容器,返回主机
bash-5.1# exit
exit
[root@Rocky ~]#
尝试访问主机8000端口
[root@Rocky ~]# curl 127.0.0.1:8000
HelloPodman
[root@Rocky ~]#
配置完成。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。