13.5. Podman을 사용하여 수동으로 컨테이너 및 Pod 실행
다음 절차에서는 Podman을 사용하여 MariaDB 데이터베이스와 결합된 WordPress 콘텐츠 관리 시스템을 수동으로 생성하는 방법을 보여줍니다.
다음 디렉터리 레이아웃을 가정합니다.
├── mariadb-conf │ ├── Containerfile │ ├── my.cnf
사전 요구 사항
-
container-tools
meta-package가 설치되어 있습니다.
절차
mariadb-conf/Containerfile
파일을 표시합니다.$ cat mariadb-conf/Containerfile FROM docker.io/library/mariadb COPY my.cnf /etc/mysql/my.cnf
mariadb-conf/my.cnf
파일을 표시합니다.[client-server] # Port or socket location where to connect port = 3306 socket = /run/mysqld/mysqld.sock # Import all .cnf files from the configuration directory [mariadbd] skip-host-cache skip-name-resolve bind-address = 127.0.0.1 !includedir /etc/mysql/mariadb.conf.d/ !includedir /etc/mysql/conf.d/
mariadb-conf/Containerfile
을 사용하여 docker.io/library$ cd mariadb-conf $ podman build -t mariadb-conf . $ cd .. STEP 1: FROM docker.io/library/mariadb Trying to pull docker.io/library/mariadb:latest... Getting image source signatures Copying blob 7b1a6ab2e44d done ... Storing signatures STEP 2: COPY my.cnf /etc/mysql/my.cnf STEP 3: COMMIT mariadb-conf --> ffae584aa6e Successfully tagged localhost/mariadb-conf:latest ffae584aa6e733ee1cdf89c053337502e1089d1620ff05680b6818a96eec3c17
선택 사항: 모든 이미지를 나열합니다.
$ podman images LIST IMAGES REPOSITORY TAG IMAGE ID CREATED SIZE localhost/mariadb-conf latest b66fa0fa0ef2 57 seconds ago 416 MB
wordpresspod
라는 Pod를 생성하고 컨테이너와 호스트 시스템 간의 포트 매핑을 구성합니다.$ podman pod create --name wordpresspod -p 8080:80
wordpresspod
포드에mydb
컨테이너를 만듭니다.$ podman run --detach --pod wordpresspod \ -e MYSQL_ROOT_PASSWORD=1234 \ -e MYSQL_DATABASE=mywpdb \ -e MYSQL_USER=mywpuser \ -e MYSQL_PASSWORD=1234 \ --name mydb localhost/mariadb-conf
wordpresspod
포드에myweb
컨테이너를 만듭니다.$ podman run --detach --pod wordpresspod \ -e WORDPRESS_DB_HOST=127.0.0.1 \ -e WORDPRESS_DB_NAME=mywpdb \ -e WORDPRESS_DB_USER=mywpuser \ -e WORDPRESS_DB_PASSWORD=1234 \ --name myweb docker.io/wordpress
선택 사항: 연결된 모든 Pod 및 컨테이너를 나열합니다.
$ podman ps --pod -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES POD ID PODNAME 9ea56f771915 k8s.gcr.io/pause:3.5 Less than a second ago Up Less than a second ago 0.0.0.0:8080->80/tcp 4b7f054a6f01-infra 4b7f054a6f01 wordpresspod 60e8dbbabac5 localhost/mariadb-conf:latest mariadbd Less than a second ago Up Less than a second ago 0.0.0.0:8080->80/tcp mydb 4b7f054a6f01 wordpresspod 045d3d506e50 docker.io/library/wordpress:latest apache2-foregroun... Less than a second ago Up Less than a second ago 0.0.0.0:8080->80/tcp myweb 4b7f054a6f01 wordpresspod
검증
Pod가 실행 중인지 확인합니다. http://localhost:8080/wp-admin/install.php 페이지를 방문하거나
curl
명령을 사용합니다.$ curl http://localhost:8080/wp-admin/install.php <!DOCTYPE html> <html xml:lang="en-US"> <head> ... </head> <body class="wp-core-ui"> <p id="logo">WordPress</p> <h1>Welcome</h1> ...
추가 리소스
- Podman 플레이 kube를 사용하여 Kubernetes Pod 빌드
-
podman-play-kube
매뉴얼 페이지