Skip to content

Commit e120659

Browse files
authored
Merge pull request #85 from vrothberg/README
README Updates
2 parents 9a1a0db + 940aca0 commit e120659

File tree

1 file changed

+51
-48
lines changed

1 file changed

+51
-48
lines changed

README.md

Lines changed: 51 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,56 @@ in alignment with the <https://github.com/containers/bootc> project.
99
- Be a backend for <https://github.com/containers/podman-desktop-extension-bootc>
1010
- Work on both MacOS and Linux
1111

12+
## Running
13+
14+
First and foremost, `podman-bootc` requires a *rootful* Podman Machine to be
15+
running, which is the default on MacOS and Windows. On Linux, make sure to
16+
create a Podman Machine via `podman machine init --rootful --now` which implies
17+
that you need to run podman with `--remote` command to make built images
18+
available to `podman-bootc`.
19+
20+
The core command right now is:
21+
22+
```shell
23+
podman-bootc run <imagename>
24+
```
25+
26+
This command creates a new virtual machine, backed by a persistent disk
27+
image from a "self install" of the container image, and makes a SSH
28+
connection to it.
29+
30+
This requires SSH to be enabled by default in your base image; by
31+
default an automatically generated SSH key is injected via a systemd
32+
credential attached to qemu.
33+
34+
Even after you close the SSH connection, the machine continues to run.
35+
36+
### Other commands:
37+
38+
- `podman-bootc list`: List running VMs
39+
- `podman-bootc ssh`: Connect to a VM
40+
- `podman-bootc rm`: Remove a VM
41+
42+
### Architecture
43+
44+
At the current time the `run` command uses a
45+
[bootc install](https://containers.github.io/bootc/bootc-install.html)
46+
flow - where the container installs itself executed in a privileged
47+
mode inside the podman-machine VM.
48+
49+
The installation target is a raw disk image is created on the host, but loopback
50+
mounted over virtiofs/9p from the podman-machine VM.
51+
52+
(The need for a real-root privileged container to write Linux filesystems is part of the
53+
rationale for requiring podman-machine even on Linux is that
54+
it keeps the architecture aligned with MacOS (where it's always required))
55+
56+
In the future, support for installing via [Anaconda](https://github.com/rhinstaller/anaconda/)
57+
and [bootc-image-builder](https://github.com/osbuild/bootc-image-builder)
58+
will be added.
59+
60+
## Installation
61+
1262
### MacOS
1363

1464
First be sure you have the Podman Desktop [bootc extension requirements](https://github.com/containers/podman-desktop-extension-bootc?tab=readme-ov-file#requirements).
@@ -35,11 +85,7 @@ or by other mean and make it available in the path.
3585

3686
### Fedora
3787

38-
You first must have `podman-machine` installed.
39-
It is required to have a *rootful* podman machine setup
40-
via e.g. `podman machine init --rootful --now`.
41-
42-
For Fedora 40 and Rawhide we provide a COPR repository.
88+
For Fedora 40+ and Rawhide we provide a COPR repository.
4389
First, enable the COPR repository:
4490

4591
```
@@ -67,46 +113,3 @@ To compile it, just run in the project directory:
67113
```shell
68114
make
69115
```
70-
71-
72-
## Running
73-
74-
The core command right now is:
75-
76-
```shell
77-
podman-bootc run <imagename>
78-
```
79-
80-
This command creates a new virtual machine, backed by a persistent disk
81-
image from a "self install" of the container image, and makes a SSH
82-
connection to it.
83-
84-
This requires SSH to be enabled by default in your base image; by
85-
default an automatically generated SSH key is injected via a systemd
86-
credential attached to qemu.
87-
88-
Even after you close the SSH connection, the machine continues to run.
89-
90-
### Other commands:
91-
92-
- `podman-bootc list`: List running VMs
93-
- `podman-bootc ssh`: Connect to a VM
94-
- `podman-bootc rm`: Remove a VM
95-
96-
### Architecture
97-
98-
At the current time the `run` command uses a
99-
[bootc install](https://containers.github.io/bootc/bootc-install.html)
100-
flow - where the container installs itself executed in a privileged
101-
mode inside the podman-machine VM.
102-
103-
The installation target is a raw disk image is created on the host, but loopback
104-
mounted over virtiofs/9p from the podman-machine VM.
105-
106-
(The need for a real-root privileged container to write Linux filesystems is part of the
107-
rationale for requiring podman-machine even on Linux is that
108-
it keeps the architecture aligned with MacOS (where it's always required))
109-
110-
In the future, support for installing via [Anaconda](https://github.com/rhinstaller/anaconda/)
111-
and [bootc-image-builder](https://github.com/osbuild/bootc-image-builder)
112-
will be added.

0 commit comments

Comments
 (0)