当前位置:   article > 正文

centos7.5安装podman容器、基础使用、容器共享卷及管理_podman运行容器时解释器

podman运行容器时解释器

一、容器介绍

1、Linux里面容器的作用

- Linux中的容器是装应用的

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

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

2、容器的优缺点

1.优点

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

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

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

2.缺点

- 容器的隔离性没有虚拟化强

- 共用Linux内核,安全性有先天缺陷

3、podman描述

1.podman和容器的关系:

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

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

二、podman安装

[root@localhost ~]# yum -y install podman

三、镜像、仓库

1、镜像概念

1.镜像是启动容器的核心

        - 镜像可以从官方镜像库下载,也可以自己制作

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

3.镜像采用分层设计

4.使用COW技术

2、 官方镜像库

docker.io、quay.io

3、镜像的名称和标签

指定镜像的方法:

        - 每一个镜像都对应唯一的镜像id

        - 镜像名称(文件名称)+标签(路径) == 唯一

        - 每一个镜像都有标签,如果没写就是默认标签 latest

        - 我们在调用镜像的时候,如果没有指定标签也是latest

4、常用命令

podman images                   #查看本机镜像
  1. podman search 关键字 #查找镜像(需要能访问互联网)
  2. 案例:podman search httpd
  1. podman pull 镜像名称:标签 #下载镜像(需要能访问互联网)
  2. 案例:podman pull localhost/myos:latest
  1. podman load -i 备份文件.tar.gz #导入镜像
  2. 案例:podman load -i /root/httpd.tar.gz
  1. 镜像管理命令:
  2. podman images #查看镜像
  3. podman search #查找镜像
  4. podman rmi 镜像名称:镜像标签 #删除镜像
  1. podman run 命令 #运行容器 run = 创建 + 启动 + 进入
  2. 格式:podman run -选项 镜像名称:镜像标签 启动命令
  3. 查看run的选项
  4. podman help run
  5. man podman-run
  6. 命令常用参数:
  7. -i:交互式
  8. -t:终端
  9. -d:后台运行
  10. --name:容器名字
  11. 案例:
  12. [root@localhost ~]# podman pull docker.io/library/httpd #下载镜像
  13. [root@localhost ~]# podman images #查看镜像
  14. REPOSITORY TAG IMAGE ID CREATED SIZE
  15. docker.io/library/httpd latest c30a46771695 2 weeks ago 148 MB
  16. [root@localhost ~]# podman run -it c30 /bin/bash #运行容器,前台运行必须加解释器、后台不用

四、podman容器管理

1、容器管理命令

1、启动容器

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

2、查看容器

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

3、删除容器

podman rm 容器id

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

podman   start  |  stop  |  restart   容器id

 5、进入容器,启动新进程

podman   exec   -it  容器id   启动命令

五、对外发布容器服务

1、如何访问podman服务

1、默认容器可以访问外网

2、但外部网络的主机不可以访问容器内的资源

3、容器每次创建IP地址都会改变

4、解决这个问题的最佳方法是端口绑定

5、容器可以与宿主机的端口进行绑定

6、从而把宿主机变成对应的服务,不用关心容器的IP地址

 2、发布podman服务

1、使用 -p 参数把容器端口和宿主机端口绑定

2、同一宿主机端口只能绑定一个容器服务

3、-p [可选IP]:宿主机端口:容器端口

4、案例:把宿主机变成apache

        podman run -d -p 80:80 myos:httpd

六、容器共享卷

1、卷的用途(类似挂载)

1、podman容器不适合保存任何数据
2、数据文件与配置文件频繁更改
3、修改多个容器中的数据非常困难
4、多容器之间有数据共享、同步需求
5、重要数据在容器内不方便管理易丢失
6、解决这些问题请使用主机卷映射功能

2、主机卷的映射

1、podman可以映射宿主机文件或目录到容器中
-   目标对象不存在就自动创建
-   目标对象存在就直接覆盖掉
-   多个容器可以映射同一个目标对象来达到数据共享的目的
2、启动容器时,使用-v 映射参数(可有多个)
-   podman run -itd -v 宿主机对象:容器内对象 镜像名称:标签

 3、卷映射案例

  1. [root@localhost ~]# podman run -itd --name myweb c30a46771695 #启动后端容器
  2. [root@localhost ~]# podman inspect myweb | grep "IPAddress.:" | awk -F'"' '{print $4}' #查看后端容器ip
  3. [root@localhost ~]# mkdir /var/webroot #新建目录
  4. [root@localhost ~]# echo TestApache > /var/webroot/index.html #编写网页测试文件
  5. [root@localhost ~]# podman run -itd --name httpd -p 80:80 -v /var/webroot/:/usr/local/apache2/htdocs/ c30a46771695 #映射卷完成、并启动容器
  6. [root@localhost ~]# podman exec -it httpd /bin/bash #进入容器
  7. root@3fbd2dc5c49e:/usr/local/apache2# find / -name "index.html" #查询网页文件位置
  8. /usr/local/apache2/htdocs/index.html #实际位置
  9. [root@localhost ~]# curl 127.0.0.1 #验证
  10. 踩坑记:
  11. 默认apache网页根目录是/var/www/html/,经过启动容器后查询发现根目录改变,因此卷映射处要改成实际映射的目录

七、管理系统服务

1、systemd

1.一个更高效的系统&服务管理器

        - 开机服务并行启动,各系统服务间的精确依赖

        - 服务目录:/usr/lib/systemd/system/

        - 主要管理工具:systemctl

2、管理员管理容器服务

1.管理员服务文件默认路径

        - /usr/lib/systemd/system/

2.生成服务启动配置文件

        --files:生成文件类型

        podman generate systemd --name 容器名 --files

3.重新加载服务启动配置文件 

        systemctl daemon-reload

3、案例

  1. 将容器配置成systemd管理的服务
  2. [root@localhost ~]# cd /usr/lib/systemd/system/ #进入服务目录
  3. [root@localhost system]# podman generate systemd --name httpd --files #建立服务文件
  4. /usr/lib/systemd/system/container-httpd.service
  5. [root@localhost system]# systemctl daemon-reload #重新加载服务文件
  6. [root@localhost system]# systemctl enable container-httpd.service #设置开机自启
  7. Created symlink from /etc/systemd/system/multi-user.target.wants/container-httpd.service to /usr/lib/systemd/system/container-httpd.service
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/159046
推荐阅读
相关标签
  

闽ICP备14008679号