Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/watchakorn-18k/podman-template
Podman Template
https://github.com/watchakorn-18k/podman-template
docker dockerfile podman
Last synced: 2 days ago
JSON representation
Podman Template
- Host: GitHub
- URL: https://github.com/watchakorn-18k/podman-template
- Owner: watchakorn-18k
- Created: 2024-03-19T01:12:10.000Z (8 months ago)
- Default Branch: master
- Last Pushed: 2024-07-13T15:28:21.000Z (4 months ago)
- Last Synced: 2024-07-13T16:45:41.653Z (4 months ago)
- Topics: docker, dockerfile, podman
- Language: Dockerfile
- Homepage:
- Size: 158 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# Podman Template
## Download
ติดตั้ง winget ก่อน
- https://apps.microsoft.com/detail/9nblggh4nns1?rtc=1&hl=th-th&gl=TH#activetab=pivot:overviewtab
จากใช้คำสั่ง
```
winget install podman
```![alt text](Image/2image.png)
- ในการติดตั้งครั้งแรกจำเป็นต้อง `restart` เครื่องหนึ่งรอบ และอาจะต้องไปเปิด virtualization ที่ bios แต่ละ mainboard จะไม่เหมือนกันลองค้นหาวิธีใน google ดูเอานะ
## ทดสอบ
![alt text](Image/1image.png)
```
podman -v
```## สร้างเครื่องจำลองขึ้นครั้งแรก
```
podman machine init --cpus 1 --memory 1048
```## เข้าใช้งาน
```
podman machine start
```## เข้าไปภายในเครื่องจำลอง
```
podman machine ssh
```## คำสั่งเช็ค Memory
![alt text](Image/3image.png)
```
free -h --gigaexit
```## ตั้งค่าการใช้ Resource ของ เครื่องจำลอง
- ไปที่ `C:\Users\%USERPROFILE%\`
- สร้างไฟล์ที่ชื่อว่า `.wslconfig` ขึ้นมา
- และเอาข้อมูลนี้ไปใส่```
[wsl2]
memory=1GB
processors=1
```- จากนั้น restart wsl
```
wsl --shutdown
```![alt text](Image/4image.png)
- แล้วทำการ `podman machine start` ใหม่จากนั้นก็ได้ `podman machine ssh` ทำการเช็คแรมได้เลย `free -h --giga`
## ย้าย เครื่องจำลอง ไปที่ไดร์อื่น กรณี drive C จะเต็ม
- หยุด podman VM ของคุณ `podman machine stop` และ `wsl --shutdown`
- จากนั้นไปที่โฟลเดอร์นี้แล้วคัดลอก podman-machine-default มา```
%USERPROFILE%\.local\share\containers\podman\machine\wsl\wsldist\
```- จากนั้นไปสร้างโฟลเดอร์ใหม่ที่ drive อื่นเพื่อเก็บ machine ตัวนี้ไว้แล้วทำการวางที่คัดลอกไว้ที่นั่นได้เลย เช่น `G:/podman/machine`
- ตรวจสอบให้แน่ใจว่าคุณมีข้อมูลสำรองแล้วที่คัดลอกไปแล้วจากนั้นใช้คำสั่ง```
wsl --unregister podman-machine-default
```_สิ่งนี้จะลบ vhdx เดิมทิ้งหรือที่เราไปคัดลอกมานั่นเอง_
- นำเข้าจาก vhdx ที่คุณเพิ่งคัดลอกไปยังไดรฟ์อื่นมาใช้
```
wsl --import-in-place podman-machine-default Z:\machine-wsl\podman-machine-default\ext4.vhdx
```_`Z:\machine-wsl` ตรงนี้้ให้เปลี่ยนตามชื่อโฟลเดอร์ที่คุณสร้างขึ้น_
## มารัน Image แรก
```
podman pull docker.io/library/httpd
podman run -dt -p 8080:80/tcp docker.io/library/httpd
```- จากนั้นไปที่ `http://localhost:8080/`
- `podman ps` เพื่อดู VM ที่กำลังทำงานอยู่
- `podman container stop ` เพื่อหยุด VM ที่กำลังทำงาน `` จะได้มาจาก name จาก `podman ps`## ใช้ Dockerfile
- ทำการ build ก่อนนึงรอบด้วยคำสั่ง
```
podman build -t api .
```- จากนั้นรันได้ด้วยคำสั่ง
```
podman run -it -p 8000:3000 api
```_8000:3000 ตรงนี้ 8000 คือ port ที่เราจะจากเครื่องเรา และ 3000 คือ port ของ VM ที่เปิด สามารถเปลี่ยนเป็น 3000:3000 ได้เหมือนกัน_
- จากนั้นทดสอบที่ `http://127.0.0.1:8000/` ได้เลย
- ถ้าจะหยุดเซิฟเวอร์ต้องกด Ctrl + C
- เราสามารถให้มันทำงานเบื้องหลังได้ด้วยคำสั่ง```
podman run -dt -p 8000:3000 api
```- เช็คการทำงาน VM ด้วย `podman ps`
- หรือสามารถรวมคำสั่งในบรรทัดเดียว `podman build -t api . && podman run -dt -p 8000:3000 --name=api-test api` แนะนำแค่รันครั้งแรกเท่านั้น ถ้าเคย build แล้วไม่มีการแก้ไขอะไรในโค้ดก็ใช้ run ธรรมดาได้เลยไม่ต้อง build เราจะ build กรณี มีการแก้ไขโค้ดพวกนี้
- `podman stats` ใช้เพื่อดูสถิติการใช้ทรัพยากรณ์ของเครื่อง แต่ต้อง `podman machine set --rootful` ไม่งั้นสิทธิ์จะไม่ถึง
## วิธีถอนการติดตั้ง machine
- https://github.com/containers/podman/issues/17395
- ลบโฟลเดอร์พวกนี้```
%USERPROFILE%\.local\share\containers\podman\machine\wsl
%USERPROFILE%\.config\containers\podman\machine
%USERPROFILE%\AppData\Roaming\containers%USERPROFILE%\.ssh\podman-machine-default.pub
```