Docker (Start-) Parameter exportieren / wiederherstellen

Arbeitet man nicht mit docker-compose und die Bash-History ist durchrotiert, ist es schwer die Parater die zum Starten des Containers genutzt wurden wiederherzustellen.
Eine Option könnte es sein, mittels docker inspect $container die ganzen Informationen nach und nach durchzuarbeiten und die Parameter zu rekonstruieren.
Glücklicherweise gibt es hierfür bereits ein Python-Projekt das sich dessen angenommen hat:
https://github.com/lavie/runlike
Die Anwendung ist auch im Python Repository von Pypi.org verfügbar und kann sehr einfach und bequem installiert werden:
pip3 install runlike
Je nachdem welche Pythonversion auf dem Host installiert ist (es ist hoffentlich keine 2.7, oder älter!), sollte die Installation mittels pip3 funktionieren. Ubuntu und andere Distributionen legen gerne einen Link an, der auf eine der beiden Versionen zeigt.
Es bietet sich also durchaus an, die Installation ausdrücklich mit pip3 durchzuführen.
PIP installieren
# Ubuntu / Debian
apt-get update
apt-get install python3-pip
# Arch Linux
pacman -S python-pip
Verwendung von runlike
Hier ein Beispiel eines mit docker-compose gestarteten Containers:
runlike mariadb
docker run --name=mariadb --hostname=my.server.de --env=TZ=Europe/London --env=MYSQL_ROOT_PASSWORD=xxxxx --env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env=GOSU_VERSION=1.13 --env=MARIADB_MAJOR=10.4 --env='MARIADB_VERSION=1:10.4.20+maria~focal' --volume=/srv/mariadb/data:/var/lib/mysql:rw --volume=/srv/mariadb/conf/my.cnf:/etc/mysql/conf.d/my.cnf:rw --volume=/etc/mysql/conf.d/my.cnf --volume=/var/lib/mysql --network=host --restart=unless-stopped --label='com.docker.compose.version=1.29.2' --label='com.docker.compose.project=mariadb' --label='com.docker.compose.project.working_dir=/srv/mariadb/mariadb' --label='com.docker.compose.project.config_files=docker-compose.yml' --label='com.docker.compose.service=mariadb' --label='com.docker.compose.container-number=1' --label='com.docker.compose.oneoff=False' --label='com.docker.compose.config-hash=80f4c4187f38a77a35a4accfb57fde25f2eb5c82efb6a51fdd19e8d8dd964e2b' --runtime=runc --detach=true mariadb:10.4 mysqld
Oder ein wenig besser lesbar:
runlike mariadb
docker run
--name=mariadb \
--hostname=my.server.de \
--env=TZ=Europe/London \
--env=MYSQL_ROOT_PASSWORD=xxxxx \
--env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
--env=GOSU_VERSION=1.13 \
--env=MARIADB_MAJOR=10.4 \
--env='MARIADB_VERSION=1:10.4.20+maria~focal' \
--volume=/srv/mariadb/data:/var/lib/mysql:rw \
--volume=/srv/mariadb/conf/my.cnf:/etc/mysql/conf.d/my.cnf:rw \
--volume=/etc/mysql/conf.d/my.cnf \
--volume=/var/lib/mysql \
--network=host \
--restart=unless-stopped \
--label='com.docker.compose.version=1.29.2' \
--label='com.docker.compose.project=mariadb' \
--label='com.docker.compose.project.working_dir=/srv/mariadb' \
--label='com.docker.compose.project.config_files=docker-compose.yml' \
--label='com.docker.compose.service=mariadb' \
--label='com.docker.compose.container-number=1' \
--label='com.docker.compose.oneoff=False' \
--label='com.docker.compose.config-hash=80f4c4187f38a77a35a4accfb57fde25f2eb5c82efb6a51fdd19e8d8dd964e2b' \
--runtime=runc \
--detach=true
mariadb:10.4 mysqld