I am very new to appimage. would like to know the pros and cons of it against docker images?

Please help me understand the pros and cons of appimage against docker. Is appimage a good idea to create execution environment for no desktop applications

Whereas Docker is focusing on containers for servers operated by ā€œdevopsā€, AppImage is focusing on desktop applications operated by end users.

Whereas Docker puts everything (besides the Kernel) into a container and shields it from the host, AppImages use the host OS and do not shield the application from it.

That being said, you could use AppImage for server applications, and you could bundle everything if you wanted. But then you could probably just as well use Docker.

Compare AppImages to .app applications inside .dmg disk images on macOS.

2 Likes

I too am interested in how AppImage compares to Docker. What do you mean by ā€˜AppImages use the host OS and do not shield the application from itā€™? How do docker containers shield the container from the host?

Can AppImages run in a docker container? If I wanted to, for whatever reason, could I run an appimage in a docker container running on a vm? Sure it might not make senseā€¦ but it helps from an understanding point of view.

Thanks

Docker containers contain a whole operating system (everything besides the kernel), such as all libraries including glibc.

Most AppImages do not ship basic libraries that are assumed to be ā€œthereā€ on every target system (distribution), such as glibc.

Can AppImages run in a docker container?

Yes.

1 Like

Docker containers contain a whole operating system (everything besides the kernel), such as all libraries including glibc.

Thanks, I went here just to see probonoā€™s explanation on Docker and as I expected your explanation is very clear.

I donā€™t have much experience with AppImage yet, but I can tell that looking at how it internally works and comparing it to Docker, AppImage is much more secure.

Docker to work requires root access and it is messing with many core OS components including firewall, filesystem/mounts and user accounts. Docker also have a ton of well known (some not fixed for more than 5 years) security issues, eg. by messing with the firewall it often undoes firewall settings done by the sysadmin causing the machine to be accessible from networks it should not be.

AppImage on the other hand does only one thing: mounts a folder under /tmp.
After that it works just like any other Linux application, it does not need root, it does not mess with core OS components, nor firewalls. It makes it much safer to use than Docker.

Docker is for server-side command line processes where AppImage is for graphical applications that are double-clicked by end users on the desktop.

AppImage is similar to an .app in a .dmg on the Mac, or an .exe of a ā€œportable applicationā€ on Windows.