Podman con docker-compose en MacOS
Podman es una alternativa a Docker Desktop en MacOS
Obtener podman instalarlo y comenzar es superfácil.
Solo usaremos brew
para instalarlo.
brew install podman
Ahora como podman usa una VM como cliente Docker en MacOS necesitamos crearla e iniciarla
podman machine init
podman machine start
Ahora estamos listos.
Si queremos podemos crear un symlink para ejecutar podman con el comando "docker"
ln -s /usr/local/bin/podman /usr/local/bin/docker
Ahora la mayoría de los comandos en podman y docker son los mismos, así que puede probar podman images
y debería ver una lista de imágenes.
De lo contrario, puede usar el comando podman --help
y se mostrará toda la ayuda que necesita.
Para obtener docker-compose
sin el cliente de docker en MacOS. Puedes instalarlo usando el comando brew
.
brew install docker-compose
Cuando esto termine ahora podrás obtener la habilidad de usar docker-compose
con podman
En MacOS el proyecto podman no expone el podman.socket
que es similar al, docker.socket
. Para hacer que docker-compose
funcione necesitamos exponer el socker.
Para hacer que el socket funcione necesitamos correr los siguientes comandos.
Primero necesitamos encontrar el puerto expuesto por la VM.
podman system connection ls
Una vez que lo tengamos tenemos que copiar el puerto y crear una conexión a él.
ssh -fnNT -L/tmp/podman.sock:/run/user/1000/podman/podman.sock -i ~/.ssh/podman-machine-default ssh://core@localhost:<puerto al socker> -o StreamLocalBindUnlink=yes
export DOCKER_HOST='unix:///tmp/podman.sock'
Segundo, necesitamos exponer la variable de entorno DOCKER_HOST
ya que esta es usada por docker-compose
.
Tenga en cuenta que si la conexión se desconecta, debe eliminar/sobrescribir /tmp/podman.socket
para ejecutar el comando ssh de nuevo.
script para copiar y pegar
brew install podman
podman machine init
podman machine start
ln -s /usr/local/bin/podman /usr/local/bin/docker
brew install docker-compose
sshPort=$(podman system connection ls --format="{{ .URI }}"| head -1 | awk -F'[^0-9]+' '{ print $2 }')
ssh -fnNT -L/tmp/podman.sock:/run/user/1000/podman/podman.sock -i ~/.ssh/podman-machine-default ssh://core@localhost:$sshPort -o StreamLocalBindUnlink=yes
export DOCKER_HOST='unix:///tmp/podman.sock'
Fuente:
https://gist.github.com/kaaquist/dab64aeb52a815b935b11c86202761a3#file-podman_macos-md