Podman是一個功能齊全的容器引擎,它是一個簡單的無需守護的用來管理鏡像、容器的工具。Podman提供了一個與Docker CLI兼容的操作方式,簡單地說:alias docker=podman。大多數Podman命令都可以普通用戶運行,而無需其他額外的權限。
倉庫=》鏡像=》容器的關係:
倉庫:用來提供/存放鏡像,有官方倉庫(比如紅帽的registry.redhat.io、刀客的docker.io),或自建私有倉庫。
鏡像:針對某個虛擬機或某個應用封裝的獨立環境,作爲容器的模板。
容器:基於某個鏡像啓動的在內存中運行的實例。
獲取鏡像
•鏡像的名稱標識
–每一個鏡像都對應唯一的鏡像 id
–鏡像名稱(姓氏) + 標籤(名字) = 唯一
–每一個鏡像都有標籤,如果沒寫就是默認標籤** latest**
–我們在調用鏡像的時候,如果沒有指定標籤也是 latest
基本使用
搜索鏡像:podman search 關鍵字
podman search nginx
下載鏡像:podman pull 鏡像名稱:標籤
podman pull docker.io/library/nginx
查看鏡像:podman images
啓動容器:podman run –選項 鏡像名稱:鏡像標籤 啓動命令
容器可以與宿主機的端口進行綁定,從而把宿主機變成對應的服務,不用關心容器的IP地址,•我們使用 -p 參數把容器端口和宿主機端口綁定
•同一宿主機端口只能綁定一個容器服務
•-p [可選IP]:宿主機端口:容器端口
podman run -p 8080:80 -d docker.io/library/nginx:1.16.1-alpine
訪問nginx服務:curl http://localhost:8080
查看容器:podman ps [ -a 所有容器包含爲運行的容器 ] [ -q 只顯示容器 id ]
刪除容器:podman rm 容器id
容器管理命令啓動、停止、重啓、強制停止:podman start|stop|restart|kill 容器id
進入容器:podman exec -it 容器id 啓動命令:podman exec -it a166347b6410 /bin/sh
–選項 -i,交互式
–選項 -t,終端
–選項 -d,後臺運行
–選項 --name 容器名字
進入容器後可以通過:hostname -I,查看容器的IP地址
# hostname -I 10.88.0.2
然後容器建也可以相互訪問
查看鏡像的元數據:podman inspect 容器ID,包含創建時間,鏡像名稱,創建命令等
從容器內拷貝文件到目的主機上:podman cp 容器ID:容器內路徑 目的的主機路徑
其它
在進入容器後沒有vi工具,可以安裝:apt-get install vim
podman容器不適合保存任何數據
•podman可以映射宿主機文件或目錄到容器中
–目標對象不存在就自動創建
–目標對象存在就直接覆蓋掉
–多個容器可以映射同一個目標對象來達到數據共享的目的
•啓動容器時,使用 -v 映射參數
podman run -d -v 宿主機對象:容器內對象 鏡像名稱:標籤
podman run --name nsdweb -p 80:80 -v /webroot:/var/www/html -d localhost/myos:httpd
參考:
https://www.modb.pro/db/421356
https://huangzhongde.cn/post/Linux/Podman_Basic_Usage/
https://zhuanlan.zhihu.com/p/359517644
https://blog.51cto.com/liruilong/5931170
https://www.cnblogs.com/cnwangk/p/17196478.html