题目:
在 linux3 上安装 podman,导入 rockylinux-9.tar 镜像。
创建名称为 skills 的容器,映射本机的 8000 端口到容器的 80 端口,
在容器内安装 httpd,默认网页内容为“HelloPodman”。
配置 https 访问的私有仓库,登录用户和密码均为 admin。导入
registry.tar 镜像,创建名称为 registry 的容器。 修 改 rockylinux 镜像的 tag 为linux3.skills.lan:5000/rockylinux:9,上传该镜像到私有仓库。
做法详解:
setenforce 0 #做题之前一定要关闭selinux,要不然会导致私有仓库容器创建失败
yum install podman httpd-tools -y #安装podman和httpd-tools
上传rockylinux和registry(私有仓库)镜像
podman load -i rockylinux-9.tar #导入rockylinux镜像
podman load -i registry.tar #导入registry镜像
podman images #查看镜像
podman tag eeea865f4111 linux3.skills.lan:5000/rockylinux:9 #按照题目要求给镜像更改tag
vi /etc/containers/registries.conf #进入镜像源配置文件
[[registry]]
location = "linux3.skills.lan:5000"
#在最下方添加以上配置
systemctl restart podman # 重启podman服务
接下来创建容器本机要提前配置好http yum源,我这里提前配置好了
podman run -itd --name skills -v /etc/yum.repos.d/:/etc/yum.repos.d/ -p 8000:80 --restart=always linux3.skills.lan:5000/rockylinux:9
# 按题目要求创建skills容器
podman exec -it skills bash # 进入skills容器
yum install httpd -y # 安装httpd
echo HelloPdman > /var/www/html/index.html # 按题目要求给网站默认文档写入内容
/usr/sbin/httpd -DFOREGROUND & # 后台启动httpd
exit # 退出容器
firewall-cmd --add-port={5000,8000}/tcp
firewall-cmd --add-port={5000,8000}/tcp --per # 防火墙永久开放题目所需端口
curl linux3.skills.lan:8000 # 测试是否可以访问
htpasswd -bBc /opt/auth admin admin # 生成htpasswd文件 账号密码均为admin
接下来的创建私有仓库容器需要提前配置好证书,放在/etc/pki/tls/ skills.crt skills.key
podman run -itd --name registry -p 5000:5000 -v /etc/pki/tls:/etc/pki/tls -v /opt:/opt -e REGISTRY_HTTP_TLS_CERTIFICATE=/etc/pki/tls/skills.crt -e REGISTRY_HTTP_TLS_KEY=/etc/pki/tls/skills.key -e REGISTRY_AUTH=htpasswd -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e "REGISTRY_AUTH_HTPASSWD_PATH=/opt/auth" --restart=always registry:latest
#根据题目要求创建registry容器
podman ps #查看容器是否正常运行
podman login -u admin -p admin linux3.skills.lan:5000 #使用账号密码登录私有仓库
podman push linux3.skills.lan:5000/rockylinux:9 #把镜像上传到私有仓库
curl -u "admin:admin" https://linux3.skills.lan:5000/v2/_catalog #验证是否可以访问