**Säiliöinti** (engl. *containerization*) tai **käyttöjärjestelmätason virtualisointi** tarkoittaa tietotekniikassa kevyempää eriyttämistä kuin *hypervisorilla* tehtävä virtualisointi.

Ratkaisuja ovat muun muassa FreeBSD:n *jail*, Linux *container*, NetBSD:n *sysjail*, AIX *Workload Partitions* ja Solaris *Container/Zone*.

Säiliöt eivät tarvitse *hypervisoria*, virtuaalikoneita eikä tarvitse suorittaa kokonaista asiakaskäyttöjärjestelmää varsinaisen käyttöjärjestelmän lisäksi. Myöskään levytilaa ei tarvitse varata toistuville tiedoille. Säiliöitä voi käyttää kuudesta kahdeksaan kertaa enemmän samalla laitteistolla kuin perinteisellä virtualisoinnilla.

Säiliöitä kutsutaan myös *virtuaaliympäristöiksi* (engl. *Virtual Environment*, VE) erona virtuaalikoneille. Virtuaaliympäristö on tiettyihin tarkoituksiin sopiva vaihtoehto virtuaalikoneille pilvipalveluiden toteutukseen.
Säiliöintiä käytetään muuttumattomien käyttöjärjestelmien kanssa: näissä varsinainen käyttöjärjestelmä on samanlainen jokaisella koneella ja sovellukset asennetaan säiliöihin.

Toteutustekniikat
-----------------

Varhainen tapa on ollut Unixissa toteutettu `chroot`-rajoitus hakemistopuun rajaamiseksi, joka myöhemmin lisättiin 4.2BSD:ssä.

Linuxissa säiliöinnin toteuttamiseen käytetään yhdistelmiä ytimen tukemia mekanismeja kuten cgroups-resurssointia ja nimiavaruuksia sekä seccomp, AppArmor ja SELinux oikeusrajoitteita. Eri ratkaisuja ovat Docker, Linux-VServer, lmctfy, LXC, OpenVZ ja Podman. Ohjelmistot kuten Kubernetes, Mesos ja Swarm ovat suunnattu useiden säiliöiden hallintaan useilla eri koneilla klustereissa.

Myös Copy-on-write -tekniikkaa voidaan käyttää hyödyksi, jolloin oma tallennustila varataan vasta kun on tarvetta tallettaa eriävää tietoa.

Docker vaikutti merkittävästi säiliöinnin suosioon ja yleistymiseen.

Open Container Initiative
-------------------------

Open Container Initiative (OCI) on Dockerin ja Linux Foundationin vuonna 2015 perustama yhteenliittymä, joka on standardoinut käytettäviä tiedostomuotoja, ohjelmointirajapintoja ja ajonaikaisia ympäristöjä. Docker refaktoroi ohjelmistonsa pienempiin komponentteihin, joista osan se luovutti määrittelyjen kanssa OCI:lle. OCI:n ohjelmistot ja määrittelyt toimivat perustana useille muille.

Lähteet
-------

1. ↑  Wainewright, Phil: Virtualization is dead, long live containerization *diginomica.com*.  2.7.2014. Viitattu 3.12.2017.
2. 1 2 3  Chenxi Wang: What is Docker? Linux containers explained  29.6.2017. InfoWorld. Viitattu 4.12.2017.
3. 1 2  Rami Rosen: Linux Containers and the Future Cloud (PDF) *haifux.org*. Viitattu 4.3.2020. (englanniksi)
4. ↑  Fedora Silverblue User Guide *docs.fedoraproject.org*. Viitattu 22.4.2021. (englanniksi)
5. ↑  9. Conclusion *docs.freebsd.org*. Viitattu 4.12.2017.
6. ↑  Demystifying container runtimes *lwn.net*.  20.12.2017. Viitattu 8.3.2020. (englanniksi)
7. ↑
8. ↑  Kubernetes vs. Mesos: Choosing a Container Orchestration Tool *dzone.com*.  8.1.2018. Viitattu 8.1.2021. (englanniksi)
9. ↑  What is Kubernetes? Your next application platform *infoworld.com*.  3.4.2019. Viitattu 8.1.2021. (englanniksi)
10. ↑  How To Run Linux Inside Linux With User Mode Linux *linux.com*.  11.1.2007. Viitattu 6.3.2020. (englanniksi)
11. ↑  What is Docker and why is it so darn popular?  21.3.2018. ZDNet. Viitattu 6.3.2020. (englanniksi)
12. ↑  Docker 101: What it is and why it’s important  10.6.2014. NetworkWorld. Viitattu 6.3.2020. (englanniksi)
13. ↑  Jordan Webb: Docker and the OCI container ecosystem *lwn.net*.  26.7.2022. Viitattu 1.11.2022. (englanniksi)

Aiheesta muualla
----------------

* Open Container Initiative (englanniksi)
* Rootless containers with Podman and fuse-overlayfs (PDF) (englanniksi)
* Image Format Specification (englanniksi)
* Open Container Initiative Runtime Specification (englanniksi)