Podman

From Wildsong
Jump to navigationJump to search

I have install podman in a WSL2 Debian on Murre. Now I am trying to make it do something useful.

I am currently using docker-compose all the time so learning how to migrate compose project is paramount.

I think Murre will end up being a good place to run experimental containers since it's many times faster than Bellman.

Bellman for deployment, Murre for development.

This is a list of Dockers running on Bellman today. I don't suppose I need compose for any of these, really... do I?

  • home-assistant - home automation
  • proxy - Reverse proxy using NGINX
  • proxy-letsencrypt - Certificate manager
  • squeezebox - Logitech media server
  • timemachine - Macintosh backups
  • traccar - Traccar GPS fleet management
  • traccar-mysql - mysql for Traccar
  • unifi - Ubiquiti management software
  • WABDE - ESRI Web App Builder, Developer Edition

Also I experiment with geoserver and geowebcache, which needs postgis/postgresql and pgadmin (or dbadminer), mapproxy which needs couchdb, mssql

I use lots of volumes.

local               geoserver_data
local               geoserver_pgadmin
local               geoserver_postgis_backups
local               geoserver_postgis_data
local               geowebcache_data
local               home-assistant_config
local               mapproxy_cache
local               mapproxy_config
local               mapproxy_couchdb_data
local               mssql_data
local               mssql_log
local               mssql_secrets
local               proxy_certs
local               proxy_conf
local               proxy_dhparam
local               proxy_html
local               squeezebox_settings
local               traccar_conf
local               traccar_database
local               traccar_logs
local               unifi_data
local               unifi_initd
local               unifi_log

I need to understand how to make them start at boot without Docker daemon.

Migrating from Docker

Generally it has become my habit to use docker-compose for just about every container I set up. It's just a convenient way to bundle together the settings for the container plus volumes, network ports, and so on all in one docker-compose.yml file. An example would be Unifi, it's just one web app but it has 3 volumes.

Podman does not have a completed "podman-compose" option at this time, they are working on it. They have "pods" which is a way to group containers into a single virtual network, and I will be exploring this option.

Potential issues

  1. home-assistant needs access to USB serial devices.
  2. dns and hostnames
  3. different network modes
  4. mapping ports

Simple Docker migration

Using Unifi as an example,

podman pod create --name unifi --publish 8443
podman volume create unifi_data
podman volume create unifi_log
podman volume create unifi_initd
podman container create \
   --name unifi \
   --pod unifi \
   --restart always \
   --volume unifi_data:/unifi/data \
   --volume unifi_log:/unifi/log \
   --volume unifi_initd:/unifi/init.d \
   --volume ./cert:/unifi/cert:ro \
   jacobalberty/unifi:latest
podman pod restart unifi

Docker Compose migration

https://www.metamost.com/migrating-from-docker-compose-to-podman/

Let's try traccar + traccar-mysql...