一、 容器基礎(chǔ)概述
- Linux中的容器是裝應(yīng)用的
- 容器就是將軟件打包成標準化單元,用于開發(fā)、交付和部署
- 容器技術(shù)已經(jīng)成為應(yīng)用程序封裝和交付的核心技術(shù)
? 優(yōu)點
– 相比于傳統(tǒng)的虛擬化技術(shù),容器更加簡潔高效
– 傳統(tǒng)虛擬機需要給每個VM安裝操作系統(tǒng)
– 容器使用的共享公共庫和程序
1.png
2.png
? 鏡像是啟動容器的核心,鏡像由鏡像倉庫提供
? 在podman中容器是基于鏡像啟動的
? podman和容器的關(guān)系
– podman是完整的一套容器管理系統(tǒng)
– podman提供了一組命令,讓用戶更加方便直接地使用容器技術(shù),而不需要過多關(guān)心底層內(nèi)核技術(shù)
? podman所需環(huán)境
關(guān)閉所有虛擬機的SELinux
[root@rhel8 ~]# vim /etc/selinux/config
SELINUX=disabled
設(shè)置虛擬機的防火墻
[root@rhel8 ~]# yum -y remove firewalld
安裝容器軟件:
[root@localhost ~]# yum -y module install container-tools
獲取鏡像
?鏡像的名稱標識
–每一個鏡像都對應(yīng)唯一的鏡像 id
–鏡像名稱(姓氏) + 標簽(名字) = 唯一
–每一個鏡像都有標簽,如果沒寫就是默認標簽** latest**
–我們在調(diào)用鏡像的時候,如果沒有指定標簽也是 latest
?查找鏡像(需要能訪問互聯(lián)網(wǎng))
–podman search 關(guān)鍵字
podman search httpd
?下載鏡像(需要能訪問互聯(lián)網(wǎng))
–podman pull 鏡像名稱:標簽
podman pull localhost/myos:latest
?導(dǎo)入鏡像
–podman load -i 備份文件.tar.gz
podman load -i /root/httpd.tar.gz
二、使用容器
鏡像管理命令
?啟動容器
–podman run –選項 鏡像名稱:鏡像標簽 啟動命令
?查看容器
–podman ps [ -a 所有容器id ] [ -q 只顯示容器 id ]
?刪除容器
–podman rm 容器id
?容器管理命令啟動、停止、重啟
–podman start|stop|restart 容器id
?進入容器
–podman exec -it 容器id 啟動命令
?podman run 命令的選項
–選項 -i,交互式
–選項 -t,終端
–選項 -d,后臺運行
–選項 --name 容器名字
三、對外發(fā)布容器服務(wù)
?容器可以與宿主機的端口進行綁定
?從而把宿主機變成對應(yīng)的服務(wù),不用關(guān)心容器的IP地址
?我們使用 -p 參數(shù)把容器端口和宿主機端口綁定
?同一宿主機端口只能綁定一個容器服務(wù)
?-p [可選IP]:宿主機端口:容器端口
?例如:把宿主機變成 nginx
podman run -d -p 80:80 myos:nginx
容器放入后臺,端口綁定練習(xí)
]# podman run --name nsdweb -p 80:80 -d localhost/myos:httpd
[root@rhel8 ~]# podman ps -a
四、容器進階-容器共享卷
?podman容器不適合保存任何數(shù)據(jù)
?podman可以映射宿主機文件或目錄到容器中
–目標對象不存在就自動創(chuàng)建
–目標對象存在就直接覆蓋掉
–多個容器可以映射同一個目標對象來達到數(shù)據(jù)共享的目的
?啟動容器時,使用 -v 映射參數(shù)
podman run -d -v 宿主機對象:容器內(nèi)對象 鏡像名稱:標簽
]# podman run --name nsdweb -p 80:80 -v /webroot:/var/www/html -d localhost/myos:httpd
五、管理系統(tǒng)服務(wù)
?systemd一個更高效的系統(tǒng)&服務(wù)管理器
–開機服務(wù)并行啟動,各系統(tǒng)服務(wù)間的精確依賴
–服務(wù)目錄:/usr/lib/systemd/system/
–主要管理工具:systemctl
手動方式:
podman start nsdweb #啟動容器
podman stop nsdweb #停止容器
systemd方式:
systemctl start nsdweb #啟動容器
systemctl stop nsdweb #停止容器
systemd管理方式思路:
用戶--systemctl--》systemd--服務(wù)配置文件--》容器啟動
?管理員服務(wù)文件默認路徑
–/usr/lib/systemd/system/
?生成服務(wù)啟動配置文件
--files:生成文件類型
podman generate systemd --name 容器名 --files
?重新加載服務(wù)啟動配置文件
systemctl daemon-reload

