본문 바로가기

엔지니어

Podman : 설치

컨테이너 관리 도구 Podman를 설치합니다.
Docker 명령과 동일한 사용성 또한 데몬 불필요하고 사용할 수 있습니다.

[1]Podman를 설치합니다.
[root@dlp ~]# yum -y install podman

[2]Podman의 기본 작업입니다.

이미지 pull

[root@dlp ~]# podman pull centos
[root@dlp ~]# podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/centos latest 5182e96772bf 3 weeks ago 208MB

컨테이너에서 명령 실행

[root@dlp ~]# podman run centos / bin / echo "Welcome to the Podman World"
Welcome to the Podman World

대화 세션

[root@dlp ~]# podman run -it centos bash
[root @ bd11108ed4a3 /] #
[root @ bd11108ed4a3 /] #exit
[root@dlp ~]#

이미지 commit

[root@dlp ~]# podman run centos bash -c "yum -y install httpd"
[root@dlp ~]# podman commit $ (podman ps -a | sed -n 2p | awk '{print $ 1}') my-httpd
[root@dlp ~]# podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost / my-httpd latest 314fc5b0d003 16 seconds ago 335MB
docker.io/library/centos latest 5182e96772bf 3 weeks ago 208MB

백그라운드에서 실행

[root@dlp ~]# podman run -dt -p 80:80 localhost / my-httpd / usr / sbin / apachectl -D FOREGROUND
[root@dlp ~]# podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d6ff4ee4e63a localhost / my-httpd : latest / usr / sbin / apachectl ... 4 seconds ago Up 3 seconds ago 0.0.0.0:80->80/udp, 0.0.0.0:80-> 80 / tcp gracious_wiles
[root@dlp ~]# podman exec -it d6ff4ee4e63a bash -c 'echo "Hello Podman"> /var/www/html/index.html'
[root@dlp ~]# podman inspect -l | grep \ "IPAddress
"IPAddress": "10.88.0.15"
[root@dlp ~]# curl 10.88.0.15
Hello Podman
[root@dlp ~]# podman kill d6ff4ee4e63a
d6ff4ee4e63aa33312b6532261200b1b0fdd5ecff22d27ac64d7818605ca6f07

최근 컨테이너의 파일 시스템을 마운트

[root@dlp ~]# podman mount $ (podman ps -a | sed -n 2p | awk '{print $ 1}')
/ var / lib / containers / storage / overlay / 5903fff998e5aec08d4489febf4884008137055cc7b5d3a002b1ec4f532b5332 / merged
[root@dlp ~]# df -h
Filesystem Size Used Avail Use % Mounted on
/ dev / mapper / centos-root 26G 2.2G 24G 9 % /
devtmpfs 3.9G 0 3.9G 0 % / dev
tmpfs 3.9G 0 3.9G 0 % / dev / shm
tmpfs 3.9G 8.6M 3.9G 1 % / run
tmpfs 3.9G 0 3.9G 0 % / sys / fs / cgroup
/ dev / vda1 1014M 188M 827M 19 % / boot
tmpfs 799M 0 799M 0 % / run / user / 0
overlay 26G 2.2G 24G 9 % / var / lib / containers / storage / overlay / 5903fff998e5aec08d4489febf4884008137055cc7b5d3a002b1ec4f532b5332 / merged

마운트 해제

[root@dlp ~]# podman umount $ (podman ps -a | sed -n 2p | awk '{print $ 1}')

검색

[root@dlp ~]# podman search nginx
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/library/nginx Official build of Nginx. 9436 [OK]
docker.io docker.io/jwilder/nginx-proxy Automated Nginx reverse proxy for docker con ... 1393 [OK ]

Dockerfile에서 빌드

[root@dlp ~]# cat > Dockerfile << EOF
FROM centos
MAINTAINER ServerWorld admin@srv.world

RUN yum -y install httpd
RUN echo "Hello Podman"> /var/www/html/index.html

EXPOSE 80
CMD [ "/ usr / sbin / apachectl", "-D ""FOREGROUND "]
EOF

[root@dlp ~]# podman build -t my-httpd : latest.
[root@dlp ~]# podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost / my-httpd latest 49b78fbd4fb3 49 seconds ago 335MB
docker.io/library/centos latest 5182e96772bf 3 weeks ago 208MB

컨테이너 전체 삭제 (개별 삭제의 경우는 all 대신 ID 또는 Name을 지정)

[root@dlp ~]# podman rm --all
0f8091a39a45fe0ec0b21eefe76fed0bb12f4e915e92d9fa0c5731c8c66c5d4b
4d654b0eab1a1b75773cd74e13ac6c51ca8e563e1484ca679df5a6ff6b9514e7
52c5f532425f59a7447a8255a664d53f03c43d35261249d6a7eec4adeca45aee

이미지 전체 삭제 (개별 삭제의 경우는 all 대신 ID를 지정)

[root@dlp ~]# podman rmi --all
Untagged : docker.io/library/centos:latest
314fc5b0d003953430967325517477af522f5df569c1537062e23875f226894f
18f01f6f77ef941f5b31dd007d113620cbb1939ac33d1922edce7d9d2c9ebad7
5182e96772bf11f4b912658e265dfe0db8bd314475443b6434ea708784192892
49b78fbd4fb359ff1c2fbb3a670ef6ac062f8e6b7126c15c920e2ba3f0c6c32e

'엔지니어' 카테고리의 다른 글

GlusterFS 6 : 분산 구성  (0) 2019.11.29
GlusterFS 6 : 설치  (0) 2019.11.29
Podman : 설치  (0) 2019.11.29
Kubernetes : 영구 저장소 설정  (0) 2019.11.28
Kubernetes : Kubeadm : Worker 노드 설정  (0) 2019.11.28
Kubernetes : Kubeadm : Master 노드 설정  (0) 2019.11.28