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
debuging¶
get the location of the logfile of a specific container¶
podman inspect --format='{{.HostConfig.LogConfig.Path}}' nc_example.com-nc
Von Jeremias Keihsler vor 17 Tagen aktualisiert · 12 Revisionen