update README
This commit is contained in:
parent
6de3355893
commit
3430cc5d67
67
README.md
67
README.md
@ -7,28 +7,43 @@ Why?
|
|||||||
----
|
----
|
||||||
|
|
||||||
Docker images became a popular way to distribute applications with their
|
Docker images became a popular way to distribute applications with their
|
||||||
dependencies. However, Docker itself is not the best runtime environment. At
|
dependencies; however, Docker is not the best runtime environment. At least not
|
||||||
least not for everyone. May boring technology run our software.
|
for everyone. May boring technology run our software.
|
||||||
|
|
||||||
Undocker bridges the gap between application images (in docker image format)
|
Undocker bridges the gap between application images (in docker image format)
|
||||||
and container runtimes: now you can run a Docker image with old-fashioned
|
and application isolation ("container") runtimes: once the docker image is
|
||||||
tools: lxc, systemd-nspawn or systemd itself.
|
extracted, it can be run with old-fashioned tools: lxc, systemd-nspawn,
|
||||||
|
systemd, FreeBSD Jails, and many others.
|
||||||
|
|
||||||
Usage -- extract docker image
|
`unocker` does not magically enable you to run containers from the internet.
|
||||||
-----------------------------
|
Many will need significant tuning or not work at all; one will still need to
|
||||||
|
understand [what's inside](https://xkcd.com/1988/).
|
||||||
|
|
||||||
|
Usage: convert docker image to rootfs
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
Download `busybox` docker image from docker hub and convert it to a rootfs:
|
Download `busybox` docker image from docker hub and convert it to a rootfs:
|
||||||
|
|
||||||
```
|
```
|
||||||
skopeo copy docker://docker.io/busybox:latest docker-archive:busybox.tar
|
$ skopeo copy docker://docker.io/busybox:latest docker-archive:busybox.tar
|
||||||
undocker busybox.tar - | tar -xv
|
$ undocker busybox.tar - | tar -tv | head -10
|
||||||
|
drwxr-xr-x 0/0 0 2021-05-17 22:07 bin/
|
||||||
|
-rwxr-xr-x 0/0 1149184 2021-05-17 22:07 bin/[
|
||||||
|
hrwxr-xr-x 0/0 0 2021-05-17 22:07 bin/[[ link to bin/[
|
||||||
|
hrwxr-xr-x 0/0 0 2021-05-17 22:07 bin/acpid link to bin/[
|
||||||
|
hrwxr-xr-x 0/0 0 2021-05-17 22:07 bin/add-shell link to bin/[
|
||||||
|
hrwxr-xr-x 0/0 0 2021-05-17 22:07 bin/addgroup link to bin/[
|
||||||
|
hrwxr-xr-x 0/0 0 2021-05-17 22:07 bin/adduser link to bin/[
|
||||||
|
hrwxr-xr-x 0/0 0 2021-05-17 22:07 bin/adjtimex link to bin/[
|
||||||
|
hrwxr-xr-x 0/0 0 2021-05-17 22:07 bin/ar link to bin/[
|
||||||
|
hrwxr-xr-x 0/0 0 2021-05-17 22:07 bin/arch link to bin/[
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also refer to [this][2] for other ways to download Docker images. There
|
You can also refer [here][2] for other ways to download Docker images. There
|
||||||
are many.
|
are many.
|
||||||
|
|
||||||
Usage -- systemd-nspawn example
|
Usage example: systemd-nspawn
|
||||||
-------------------------------
|
-----------------------------
|
||||||
|
|
||||||
Start with systemd-nspawn:
|
Start with systemd-nspawn:
|
||||||
|
|
||||||
@ -36,8 +51,8 @@ Start with systemd-nspawn:
|
|||||||
systemd-nspawn -D $PWD busybox httpd -vfp 8080
|
systemd-nspawn -D $PWD busybox httpd -vfp 8080
|
||||||
```
|
```
|
||||||
|
|
||||||
Usage -- plain old systemd
|
Usage example: plain old systemd
|
||||||
--------------------------
|
--------------------------------
|
||||||
|
|
||||||
```
|
```
|
||||||
systemd-run \
|
systemd-run \
|
||||||
@ -52,13 +67,6 @@ systemd-run \
|
|||||||
Good things like `PrivateUsers`, `DynamicUser`, `ProtectProc` and other
|
Good things like `PrivateUsers`, `DynamicUser`, `ProtectProc` and other
|
||||||
[systemd protections][1] are available, just like to any systemd unit.
|
[systemd protections][1] are available, just like to any systemd unit.
|
||||||
|
|
||||||
Notes & gotchas
|
|
||||||
---------------
|
|
||||||
|
|
||||||
`unocker` does not magically enable you to run containers from the internet.
|
|
||||||
Many will need significant tuning or not work at all; one will still need to
|
|
||||||
understand [what's inside](https://xkcd.com/1988/).
|
|
||||||
|
|
||||||
Similar Projects
|
Similar Projects
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
@ -74,19 +82,18 @@ Changelog
|
|||||||
Contributions
|
Contributions
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
I want this project to be useful for others, but not become a burden for me. If
|
The following contributions may be accepted:
|
||||||
undocker fails for you (for example, you found a container that undocker cannot
|
|
||||||
extract, or extracts incorrectly), **you** are on the hook to triage and fix
|
|
||||||
it.
|
|
||||||
|
|
||||||
Therefore, the following contributions are welcome:
|
- Pull requests (patchsets) with accompanying tests.
|
||||||
|
- Regression reports.
|
||||||
|
|
||||||
- Pull rquests (diffs) with accompanying tests.
|
If you found a container that undocker cannot extract, or extracts incorrectly
|
||||||
- Documentation.
|
and you need this that work with undocker, do not submit an issue: submit a
|
||||||
|
patchset.
|
||||||
|
|
||||||
Issues without accompanying patches will most likely be rejected, with one
|
Reports of regression reports must provide examples of "works before" and "does
|
||||||
exception: reports about regressions do not have to contain patches, but a
|
not work after". Issues without an accompanying patch will most likely be
|
||||||
failing commit is mandatory, and a failing test case is highly appreciated.
|
rejected.
|
||||||
|
|
||||||
LICENSE
|
LICENSE
|
||||||
-------
|
-------
|
||||||
|
Loading…
Reference in New Issue
Block a user