added Podman
This commit is contained in:
76
Tools/Podman.md
Normal file
76
Tools/Podman.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# Podman
|
||||
Podman is a container system very similar to docker that lets you run programs in an isolated and self-contained environment. A number of programs, usually those with Web Interfaces can be run with podman.
|
||||
|
||||
Podman is built to be a drop-in replacement for Docker, so if you see something that can be run with docker, you can usually just replace "docker" with "podman" and it will work.
|
||||
|
||||
Podman has 2 main advantages over Docker:
|
||||
1. Due to licensing podman is easier to install on Linux, since it is just packaged as normal software.
|
||||
2. Podman is setup to run without root permissions by default, which generally makes it more secure, and means a user does not need root permissions on their system to use it.
|
||||
|
||||
## Install
|
||||
Podman can be installed by the package manager on your system:
|
||||
|
||||
### Arch-Based:
|
||||
Select `crun` if asked
|
||||
```sh
|
||||
sudo pacman -S podman
|
||||
```
|
||||
|
||||
### Debian/Mint/Ubuntu
|
||||
```sh
|
||||
sudo apt install podman
|
||||
```
|
||||
|
||||
### Fedora
|
||||
```sh
|
||||
sudo dnf install podman
|
||||
```
|
||||
|
||||
## Run a container
|
||||
A container is simply run with the `podman run` command.
|
||||
|
||||
For example, to run the simple debian container from the Docker Hub (https://hub.docker.com/_/debian), you would run the following:
|
||||
```sh
|
||||
podman run docker.io/library/debian:latest
|
||||
```
|
||||
|
||||
You man want to expose ports from inside the container onto your computer (so the port can be accessed from outside the container), for example if there is a webserver running in that container you could expose port 80 to port 80 on your computer by adding `-p 80:80` like so:
|
||||
|
||||
```sh
|
||||
podman run -p 80:80 docker.io/library/debian:latest
|
||||
```
|
||||
|
||||
### DockerFile
|
||||
|
||||
More commonly projects will provide a DockerFile, which you can just download, when in the directory with that file just run `podman run` and it will use the information from that file.
|
||||
|
||||
### Compose
|
||||
You may also see compose files provided for docker projects, for that you will probably need to install the separate `podman-compose` package, and then `podman-compose` can just be used in place of `docker compose` or `docker-compose`.
|
||||
|
||||
For example, being in a directory with a compose file, you can run `podman-compose up` to start the program.
|
||||
|
||||
## Manage Containers
|
||||
### View running containers
|
||||
You can see all running podman containers with
|
||||
```sh
|
||||
podman ps
|
||||
```
|
||||
|
||||
You can additionally view all containers (including stopped) with
|
||||
```sh
|
||||
podman ps -a
|
||||
```
|
||||
|
||||
### Stop a container
|
||||
After running `podman ps` you can see a container's id, and you can use that id to control it.
|
||||
|
||||
For example you can stop it with
|
||||
```sh
|
||||
podman stop <id>
|
||||
```
|
||||
|
||||
### Delete a container
|
||||
You can also delete a stopped container with
|
||||
```sh
|
||||
podman rm <id>
|
||||
```
|
||||
Reference in New Issue
Block a user