0306、容器基础、对外发布容器服务、容器共享卷、systemctl方式管理容器

本文详细介绍了Podman容器的基础知识,包括容器的优势、Podman与容器的关系、镜像的获取与管理。通过实例演示了如何使用Podman运行、管理容器,以及如何对外发布容器服务。此外,还探讨了容器共享卷和系统服务的管理,提供了丰富的实战练习,帮助读者深入理解Podman容器技术。
摘要由CSDN通过智能技术生成

目录

一、容器基础概述

1、容器概述

(1)、优点:

相比于传统的虚拟化技术,容器更加简洁高效

(2)、podman和容器的关系

(3)、podman所需软件

2、获取镜像

(1)、镜像的名称标识:

(2)、查找镜像(需要能访问互联网)

(3)、下载镜像(需要能访问互联网)

(4)、导入镜像

3、镜像管理命令

(1)、查看镜像

(2)、删除镜像

4、练习

二、使用容器

1、podman run 命令

2、podman run 命令的选项

3、容器管理命令

(1)、启动容器

(2)、查看容器

(3)、删除容器

(4)、容器管理命令启动、停止、重启

(5)、进入容器

4、练习

(1)、容器初步练习                            

(2)、容器放入后台练习 

三、容器进阶-对外发布容器服务

四、容器进阶-容器共享卷

五、容器进阶-管理系统服务(了解)


一、容器基础概述

1、容器概述

Linux中的容器是装应用的

容器就是将软件打包成标准化单元,用于开发、交付和部署

容器技术已经成为应用程序封装和交付的核心技术

  • (1)、优点:

    相比于传统的虚拟化技术,容器更加简洁高效

    传统虚拟机需要给每个VM安装操作系统

    容器使用的共享公共库和程序

镜像是启动容器的核心,镜像由镜像仓库提供

在podman中容器是基于镜像启动的

(2)、podman和容器的关系

podman是完整的一套容器管理系统

podman提供了一组命令,让用户更加方便直接地使用容器技术,而不需要过多关心底层内核技术

(3)、podman所需软件

系统软件,位于 rhel-8.2-x86_64-dvd 源中

利用系统光盘,构建Yum仓库

[root@localhost ~]# yum  -y  module  install  container-tools

2、获取镜像

(1)、镜像的名称标识:

每一个镜像都对应唯一的镜像 id
镜像名称(文件名称) + 标签(路径) = 唯一

每一个镜像都有标签,如果没写就是默认标签 latest
我们在调用镜像的时候,如果没有指定标签也是 latest

(2)、查找镜像(需要能访问互联网)

podman  search  关键字
podman  search  httpd

(3)、下载镜像(需要能访问互联网)

podman  pull  镜像名称:标签
podman   pull   localhost/myos:latest

(4)、导入镜像

podman  load  -i  备份文件.tar.gz
podman   load  -i  /root/httpd.tar.gz

3、镜像管理命令

(1)、查看镜像

podman images

(2)、删除镜像

podman rmi 镜像名称:镜像标签

4、练习

镜像管理练习

]# podman images     #查看当前有哪些镜像

]# podman  load   -i   /root/httpd.tar.gz       #导入镜像

]# podman load  -i   /root/nginx.tar.gz          #导入镜像

]# podman load  -i   /root/myos.tar.gz            #导入镜像

镜像删除练习

]# podman  images           #查看当前有哪些镜像

]# podman   rmi   2f5        #按照镜像的ID值,删除镜像

]# podman   rmi    localhost/myos:nginx    #删除镜像

]# podman rmi  localhost/myos:latest      #删除镜像

二、使用容器

1、podman run 命令

podman  run  -选项   镜像名称:镜像标签   启动命令

查看 run 的选项(帮助信息)
   podman  help  run
   man  podman-run

run  =  创建 + 启动 + 进入   (三合一)

2、podman run 命令的选项

选项 -i,交互式
选项 -t,终端
选项 -d,后台运行
选项 --name  容器名字

—启动容器,并进入容器
[root@rhel8 ~]# podman  run  -it   localhost/myos:httpd  /bin/bash

可以通过命令行提示符,判定自己是否进入容器了

3、容器管理命令

(1)、启动容器

podman run –选项 镜像名称:镜像标签 启动命令

(2)、查看容器

podman ps [ -a 所有容器id ] [ -q 只显示容器 id ]

(3)、删除容器

podman rm 容器id
podman rm  -f                #强制删除

(4)、容器管理命令启动、停止、重启

podman start|stop|restart 容器id

(5)、进入容器

podman  exec   -it  容器id   启动命令

4、练习

(1)、容器初步练习                            

]# touch  /etc/resolv.conf
]# podman run -it   localhost/myos:httpd   /bin/bash

[root@2b0b7c62ab42 /]# cat /etc/redhat-release
[root@2b0b7c62ab42 /]# useradd dc
[root@2b0b7c62ab42 /]# id  dc
[root@2b0b7c62ab42 /]# exit

[root@rhel8 ~]# podman  ps   -a        #查看当前系统容器
[root@rhel8 ~]# podman  start  2b    #利用容器id开启容器
[root@rhel8 ~]# podman exec -it   2b /bin/bash   #进入容器
[root@2b0b7c62ab42 /]# id dc
[root@2b0b7c62ab42 /]# exit

[root@rhel8 ~]# podman  ps   -a
[root@rhel8 ~]# podman stop   2b    #利用容器id停止容器
[root@rhel8 ~]# podman  ps   -a       
[root@rhel8 ~]# podman  rm   2b      #利用容器id删除容器
[root@rhel8 ~]# podman  ps   -a

(2)、容器放入后台练习 

]# podman run --name abc01  -d localhost/myos:httpd
]# podman  ps  -a
]# podman  exec  -it   abc01  /bin/bash  #进入abc01容器

[root@962aa837e17b /]# useradd tc
[root@962aa837e17b /]# id tc
uid=1000(tc) gid=1000(tc) groups=1000(tc)
[root@962aa837e17b /]# exit

[root@rhel8 ~]# podman  stop  abc01
[root@rhel8 ~]# podman  rm abc01
[root@rhel8 ~]# podman  ps  -a

三、容器进阶-对外发布容器服务

容器可以与宿主机的端口进行绑定
从而把宿主机变成对应的服务,不用关心容器的IP地址

使用 -p 参数把容器端口和宿主机端口绑定
同一宿主机端口只能绑定一个容器服务

-p  [可选IP]:宿主机端口:容器端口
例如:把宿主机变成 apache
podman run  -d  -p  80:80  locahost/myos:httpd

案例:容器放入后台,端口绑定练习

[root@rhel8 ~]# podman run --name nsdweb -p 80:80         -d   localhost/myos:httpd    #端口绑定
[root@rhel8 ~]# podman ps -a
[root@rhel8 ~]# podman exec -it nsdweb /bin/bash

[root@5b69bf6956b0 html]# echo  wo shi nsdweb  >  /var/www/html/index.html 
[root@5b69bf6956b0 html]# /usr/sbin/httpd   #手动启动
[root@5b69bf6956b0 html]# exit
exit
[root@rhel8 ~]# curl  http://192.168.4.100
wo shi nsdweb

四、容器进阶-容器共享卷

思想:类似于NFS,容器挂载了主机的某个目录下,容器始终与主机该文件夹内容保持一致

podman容器不适合保存任何数据,不安全

podman可以映射宿主机文件或目录到容器中:
目标对象不存在就自动创建
目标对象存在就直接覆盖掉
多个容器可以映射同一个目标对象来达到数据共享的目的

启动容器时,使用 -v 映射参数
podman run -it
   -v  宿主机对象:容器内对象     -d 镜像名称:标签

容器共享卷练习:
]# podman stop   nsdweb         #停止容器
]# podman rm -f   nsdweb        #强制删除容器
[root@rhel8 ~]# mkdir /webroot
[root@rhel8 ~]# podman  run  --name  myweb  -p  80:80  -v  /webroot:/var/www/html  -d   localhost/myos:httpd
7804e7c1e080c9857d06eb9818fb09fddc59fa08d3622b848cdfbc7997d155eb
[root@rhel8 ~]# echo wo shi hahaha > /webroot/index.html
[root@rhel8 ~]# curl 192.168.4.100
wo shi hahaha

五、容器进阶-管理系统服务(了解)

systemctl  --->  system ---->  容器

•systemd一个更高效的系统&服务管理器
–开机服务并行启动,各系统服务间的精确依赖
–服务目录:/usr/lib/systemd/system/
–主要管理工具:systemctl

•管理员服务文件默认路径
–/usr/lib/systemd/system/

•生成服务启动配置文件
   --files:生成文件类型
podman  generate  systemd   --name  容器名  --files  

•重新加载服务启动配置文件
systemctl  daemon-reload

练习:(必须是相对路径,当前路径必须是/usr/lib/systemd/system

[root@rhel8 ~]# cd   /usr/lib/systemd/system
[root@rhel8 system]# podman  ps  -a

CONTAINER ID          IMAGE                       COMMAND                CREATED    
7804e7c1e080     localhost/myos:httpd      /usr/sbin/httpd -...     20 minutes ago                            
STATUS                                        PORTS                                      NAMES
Up 20 minutes ago               0.0.0.0:80->80/tcp                              myweb

[root@rhel8 system]# podman generate systemd  --name myweb --files     #2类似与:配置
/usr/lib/systemd/system/container-myweb.service
[root@rhel8 system]# vim   container-myweb.service  #文件中书写的配置,感觉这个类似于别名
[root@rhel8 system]# systemctl daemon-reload      #重新加载服务配置文件/刷新

[root@rhel8 system]# podman stop myweb               #手动停止

[root@rhel8 system]# podman ps -a

[root@rhel8 system]# systemctl start container-myweb.service       #3起服务

[root@rhel8 system]# systemctl  enable  container-myweb      #设置开机自启
Created symlink /etc/systemd/system/multi-user.target.wants/container-myweb.service → /usr/lib/systemd/system/container-myweb.service.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值