Aktionen
Podman¶
install¶
yum install podman
yum install podman-compose
create pod¶
sudo podman pod create --name=app-example -p 8099:80
add container to pod¶
e.g. wordpress
sudo mkdir /opt/podman.pod
sudo mkdir /opt/podman.pod/app-example
sudo mkdir /opt/podman.pod/app-example/c_db
sudo mkdir /opt/podman.pod/app-example/c_db/var
sudo mkdir /opt/podman.pod/app-example/c_db/var/lib
sudo mkdir /opt/podman.pod/app-example/c_db/var/lib/mysql
sudo mkdir /opt/podman.pod/app-example/c_wp
sudo mkdir /opt/podman.pod/app-example/c_wp/var
sudo mkdir /opt/podman.pod/app-example/c_wp/var/www
sudo mkdir /opt/podman.pod/app-example/c_wp/var/www/html
sudo podman run -d --restart=always --pod=app-example -e MYSQL_ROOT_PASSWORD="root" -e MYSQL_DATABASE="wordpress" -e MYSQL_USER="wpuser" -e MYSQL_PASSWORD="password" -v /etc/localtime:/etc/localtime:ro -v /opt/podman.pod/app-example/c_db/var/lib/mysql:/var/lib/mysql:Z --name=app-example-db mariadb
sudo podman run -d --restart=always --pod=app-example -e WORDPRESS_DB_NAME="wordpress" -e WORDPRESS_DB_USER="wpuser" -e WORDPRESS_DB_PASSWORD="password" -e WORDPRESS_DB_HOST="127.0.0.1" -v /etc/localtime:/etc/localtime:ro -v /opt/podman.pod/app-example/c_wp/var/www/html:/var/www/html:Z --name app-example-wp wordpress
create systemd-unit files¶
cd /opt/podman.pod/app-example
sudo podman generate systemd --files --name app-example
sudo cp pod-*.service /etc/systemd/system/.
sudo cp container-*.service /etc/systemd/system/.
create container¶
see also:
https://www.redhat.com/sysadmin/wordpress-container
https://rancher.com/learning-paths/how-to-build-and-run-your-own-container-images/
https://docs.podman.io/en/latest/markdown/podman-build.1.html
create ~/container.user/wordpress.user/Dockerfile
FROM docker.io/rockylinux/rockylinux MAINTAINER jke <j@keihsler.com> RUN dnf module enable -y php:7.4 RUN yum install -y mariadb-server mariadb php php-apcu php-intl php-mbstring php-xml php-json php-mysqlnd crontabs cronie iputils net-tools;yum clean all RUN systemctl enable mariadb RUN systemctl enable httpd RUN systemctl disable systemd-update-utmp.service ENTRYPOINT ["/sbin/init"] CMD ["/sbin/init"]
cd ~/container.user/wordpress.user/
podman build -t wordpress_user .
compose pod¶
create ~/compose.user/nextcloud.user/compose.yml
version: '3'
services:
db:
image: mariadb
container_name: nextcloud-mariadb
networks:
- nextcloud_network
volumes:
- db:/opt/nextcloud/mysql
- /etc/localtime:/etc/localtime:ro
environment:
- MYSQL_ROOT_PASSWORD=XXXXX
- MYSQL_PASSWORD=XXXXX
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
restart: unless-stopped
app:
image: nextcloud:latest
container_name: nextcloud-app
ports:
- 9099:80
networks:
- nextcloud_network
depends_on:
- db
volumes:
- nextcloud:/var/www/html
- ./app/config:/var/www/html/config
- ./app/custom_apps:/var/www/html/custom_apps
- ./app/data:/var/www/html/data
- ./app/themes:/opt/nextcloud/www/html/themes
- /etc/localtime:/etc/localtime:ro
environment:
- VIRTUAL_HOST=ak-i40-cloud.openfab.org
restart: unless-stopped
volumes:
nextcloud:
db:
networks:
nextcloud_network:
podman-compose -f ~/compose.user/nextcloud.user/compose.yml up
shell-access to inside container¶
podman exec -it -u root nc_example.com-nc /bin/sh
administration¶
list (dangling) images¶
podman images
podman images -f dangling=true
remove dangling images¶
best is to make sure that all containers needed are up and running before removing dangling containers
podman system prune
Von Jeremias Keihsler vor mehr als 1 Jahr aktualisiert · 9 Revisionen