当前位置:首页 > 有云笔记 > SERVICES > 正文内容

Linux容器基础 、 Linux容器管理 、 podman命令行 、 管理容器进阶

小白2年前 (2021-12-22)SERVICES188390

 Linux容器基础 、 Linux容器管理 、 podman命令行 、 管理容器进阶


#####################################

一、 容器基础概述

1. Linux中的容器是装应用的

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

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

 

• 优点

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

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

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

 Linux容器基础 、 Linux容器管理 、 podman命令行 、 管理容器进阶

 Linux容器基础 、 Linux容器管理 、 podman命令行 、 管理容器进阶

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

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

• podman和容器的关系

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

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

 

• podman所需软件

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

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

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

获取镜像

• 镜像的名称标识

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

– 镜像名称(姓氏) + 标签(名字) = 唯一

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

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

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

– podman  search  关键字

podman  search  httpd

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

– podman  pull  镜像名称:标签

podman   pull   localhost/myos:latest

• 导入镜像

– podman  load  -i  备份文件.tar.gz

podman   load  -i  /root/httpd.tar.gz

镜像管理命令

• 查看镜像

– podman images

• 删除镜像

– podman rmi 镜像名称:镜像标签

镜像管理练习

]# podman  images           #查看当前有哪些镜像
]# podman   load   -i   /root/httpd.tar.gz       #导入镜像
]# podman  images            #查看当前有哪些镜像
]# podman  load   -i   /root/nginx.tar.gz          #导入镜像
]# podman  load   -i   /root/myos.tar.gz            #导入镜像
]# podman   images           #查看当前有哪些镜像

镜像删除练习

]# podman  images           #查看当前有哪些镜像
]# podman   rmi   2f5        #按照镜像的ID值,删除镜像
]# podman  images           #查看当前有哪些镜像
]# podman load  -i   /root/myos.tar.gz            #导入镜像
]# podman  images           #查看当前有哪些镜像


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

一、 使用容器

• podman run 命令

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

• 查看 run 的选项

– podman  help  run

– man  podman-run 

• run  =  创建 + 启动 + 进入

 

• podman run 命令的选项

– 选项 -i,交互式

– 选项 -t,终端

– 选项 -d,后台运行

– 选项 --name  容器名字

 • 启动容器,并进入容器

podman run -it myos:latest /bin/bash

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

容器管理命令

• 启动容器

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

• 查看容器

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

• 删除容器

– podman rm 容器id

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

– podman start|stop|restart 容器id

• 进入容器

– podman  exec   -it  容器id   启动命令

容器初步练习                            

]# 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  rm  -f  2b0b7c62ab42  #删除容器


[root@rhel8 ~]# podman  run  --name=nsd01   -it localhost/myos:httpd   /bin/bash


[root@a0efb40b414b /]# useradd hahaxixi
[root@a0efb40b414b /]# id hahaxixi
[root@a0efb40b414b /]#  exit


[root@rhel8 ~]# podman  ps  -a
[root@rhel8 ~]# podman  start  nsd01 #利用容器名字开启容器
[root@rhel8 ~]# podman  ps  -a
[root@rhel8 ~]# podman exec -it   nsd01 /bin/bash  #进入容器
[root@a0efb40b414b /]#  id  hahaxixi
[root@a0efb40b414b /]#  exit
[root@rhel8 ~]# podman  ps   -a
[root@rhel8 ~]# podman  stop   nsd01 #停止nsd01容器
[root@rhel8 ~]# podman  ps   -a       
[root@rhel8 ~]# podman  rm   nsd01  #删除nsd01容器
[root@rhel8 ~]# podman  ps   -a

容器放入后台练习 

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

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


[root@rhel8 ~]# podman  rm  -f  abc01  #强制删除容器
[root@rhel8 ~]# podman  ps  -a

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

 

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

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

• 我们使用 -p 参数把容器端口和宿主机端口绑定

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

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

• 例如:把宿主机变成 apache

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

• 例如:把宿主机变成 nginx

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

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

[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]# exit
exit
 
[root@rhel8 ~]# curl  192.168.4.233
wo shi nsdweb
[root@rhel8 ~]#

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

• podman容器不适合保存任何数据

• podman可以映射宿主机文件或目录到容器中

– 目标对象不存在就自动创建

– 目标对象存在就直接覆盖掉

– 多个容器可以映射同一个目标对象来达到数据共享的目的

• 启动容器时,使用 -v 映射参数

podman run -d  -v  宿主机对象:容器内对象   镜像名称:标签

 容器终极练习                       

]# podman rm -f   nsdweb        #强制删除容器
 
]# podman run --name rqweb   -p   80:80      -v  /opt:/var/www/html   -d   localhost/myos:httpd 
 
#-p:真机的端口:容器端口     -v:真机的路径:容器的路径
 
]# echo wo shi niuniubenben > /opt/index.html
]# curl  192.168.4.233              
wo shi niuniubenben


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

• systemd一个更高效的系统&服务管理器

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

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

– 主要管理工具:systemctl

手动方式:

      /usr/sbin/httpd      killall  httpd

systemd方式:

用户-- systemctl --》systemd--服务启动文件--》httpd启动或停止

     systemctl   start   httpd    systemctl  stop  httpd   

手动方式:

podman  stop  myweb

podman  start  myweb

systemd方式:

用户-- systemctl --》systemd--服务启动文件--》容器启动或停止

systemctl  stop  myweb

systemctl  start  myweb

systemctl  enable  myweb

• 管理员服务文件默认路径

– /usr/lib/systemd/system/

• 生成服务启动配置文件

--files:生成文件类型

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

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

systemctl  daemon-reload

容器之光练习(必须是相对路径,当前路径必须是/usr/lib/systemd/system,并且容器必须是正在运行状态)

]# cd  /usr/lib/systemd/system
]# podman  ps  -a
…..minutes ago  Up 31 minu  …….
 
]# podman generate systemd --name rqweb --files
]# vim container-rqweb.service    #简单查看一下内容
]# systemctl  daemon-reload        #重新加载服务配置文件
]# podman  stop  rqweb       #手动停止容器
 
]# podman ps -a
]# systemctl start container-rqweb   #systemd方式启动
]# podman ps -a
]# systemctl enable container-rqweb     #设置开机自启



 Linux容器基础 、 Linux容器管理 、 podman命令行 、 管理容器进阶  您阅读本篇文章共花了: 

分享到:

    扫描二维码推送至手机访问。

    版权声明:本文由有云转晴发布,如需转载请注明出处。

    本文链接:https://www.yyzq.cf/?id=52

    分享给朋友:

    相关文章

    发表评论

    访客

    ◎欢迎参与讨论,请在这里发表您的看法和观点。