Juureton Docker

Juureton Docker



Docker on yksi tehokkaimmista ja vaikutusvaltaisimmista työkaluista nykyaikaiseen sovellusten kehittämiseen ja käyttöönottoon. Kehittäjänä käytämme sitä paikallisissa koneissamme sovellustarpeihimme vastaavien ympäristöjen nopeaan perustamiseen ja konfigurointiin sekunneissa.

Dockerissa työskennellessämme saatamme kuitenkin kohdata tapauksia, joissa meidän on luotava ja käytettävä Docker-resursseja, mutta meillä ei ole pääkäyttäjän oikeuksia.

Tai ehkä haluat sallia useiden tietyn järjestelmän käyttäjien käyttää Dockeria antamatta kaikille käyttäjien pääkäyttäjän oikeuksia.







Tässä opetusohjelmassa opimme juurettomasta Dockerista, mitä se tarkoittaa, miten se toimii ja kuinka voimme käyttää sitä, jotta käyttäjät, joilla ei ole pääkäyttäjän oikeuksia, voivat käyttää Dockeria ja siihen liittyviä palveluita.



Mikä on juureton Docker?

Oletuksena Dockerin asentamisen jälkeen Docker-daemon ja sen työkalut edellyttävät pääkäyttäjän oikeuksia isäntäjärjestelmässä. Tämä voi johtaa merkittävästi tietoturvariskiin, jos Docker vaarantuu, mikä voi antaa hyökkääjälle pääkäyttäjän oikeudet.



Rootless Docker on ominaisuus, jonka avulla voimme käyttää ja ajaa Docker-daemonia ja siihen liittyviä säiliöitä ilman pääkäyttäjän oikeuksia.





Kuinka se toimii

Vaikka juureton telakointiympäristön teknisiin toimiin sukeltaminen voi olla haastavaa, seuraava on korkeatasoinen yleiskatsaus, joka selittää, mitä juureton telakointiasema tekee ja miten se toimii konepellin alla.

Käyttäjänimiavaruudet – Yksi juureton telakointiaseman käyttämistä merkittävistä ominaisuuksista on käyttäjän nimiavaruudet. Tämä Linux-ytimen perusominaisuus mahdollistaa sen, että prosesseilla on erilaiset käyttäjä- ja ryhmätunnukset nimiavaruudessa kuin sen ulkopuolella. Tämä tarkoittaa, että prosessi voi toimia pääkäyttäjänä nimiavaruudessaan, mutta sen ulkopuolella se toimii tavallisena käyttäjänä.



Verkostoituminen – Seuraava juurittoman Dockerin ominaisuus on verkottuminen. Oletuksena normaali docker-daemon luottaa verkkopinoihin, kuten iptablesiin ja siltoihin, jotka edellyttävät pääkäyttäjän oikeuksia.

Docker hyödyntää ominaisuuksia, kuten slirp4netns, joka tarjoaa käyttäjätilan TCP/IP-pinon juurettomassa telakointiasemassa. Tämä mahdollistaa Dockerin pääsyn verkkoon ilman pääkäyttäjän oikeuksia isäntäjärjestelmässä.

Varastointi – Juurittoman telakointiaseman seuraava olennainen osa on tallennusohjain. Oletuksena Docker käyttää overlay2-tallennusohjainta, joka, kuten voit arvata, vaatii pääkäyttäjän oikeudet. Sen sijaan juureton telakointiinstanssi käyttää fuse-overlayfs-ohjainta. Tämä ohjain perustuu FUSE-peittokuvaan fs, jonka avulla voimme asentaa sen ilman pääkäyttäjän oikeuksia.

Yllä olevat ovat joitain juureton docker-instanssin olennaisia ​​osia. Muista, että tämä ei tutki juurittoman telakointiaseman täydellistä toimintaa. Tutustu asiakirjoihin saadaksesi lisätietoja.

Rootless Docker – vaatimukset

Siirrytään teoriasta ja opitaan luomaan ja konfiguroimaan juureton Docker-ympäristö.

Jos haluat seurata tätä viestiä, varmista, että sinulla on seuraavat asiat:

  1. Linux-pohjainen järjestelmä, jolla on pääkäyttäjän oikeudet.
  2. Verkkoyhteys.

Järjestelmän konfigurointi UIDMapin avulla

Ennen Dockerin asentamista ja määrittämistä meidän on asennettava ja määritettävä järjestelmä uidmap-apuohjelmalla.

UIDMapin avulla voimme hallita Linux-järjestelmän prosessien UID- ja GUI-kartoituksia käyttäjän nimiavaruuksien sisällössä. Muistatko kun mainitsimme, että juureton Docker hyödyntää käyttäjän nimiavaruuksia? Tämän työkalun avulla voimme määrittää UID- ja GID-kartoitukset ja niitä vastaavat nimitilat.

Aloita päivittämällä järjestelmäpaketit seuraavasti:

$ sudo apt-get update

Asenna seuraavaksi uidmap-apuohjelma kuvan mukaisesti:

$ sudo apt-get install uidmap -ja

Rootless Dockerin asentaminen

Seuraava vaihe on käsitellä ja asentaa juureton Docker. Voimme tehdä tämän noudattamalla alla kuvattuja yksinkertaisia ​​ohjeita:

Aloita lataamalla rootless Dockerin asennusohjelma alla olevasta linkistä:

https://get.docker.com/rootless

Voit käyttää cURL:iä tai WGET:iä.

$ kiemura -sSL https: // get.docker.com / juureton | sh

Huomaa, että et voi suorittaa yllä olevaa komentoa pääkäyttäjänä.

Kun asennus on valmis, muokkaa .bashrc-tiedostoa suosikkitekstieditorillasi:

$ nano .bashrc

Lisää seuraavaksi seuraavat merkinnät bashrc-määritystiedostoon:

viedä XDG_RUNTIME_DIR = / Koti / ubuntu / .satamatyöläinen / juosta

viedä PATH = / Koti / ubuntu / roskakori: $PATH

viedä DOCKER_HOST =unix: /// Koti / ubuntu / .satamatyöläinen / juosta / telakka.sukka

Varmista, että vaihdat käyttäjän 'ubuntusta' käyttäjäksi, jolle haluat asentaa Dockerin. Komentosarjan tulos antaa sinulle sisällön lisättäväksi .bashrc-tiedostoon.

Tallenna muutokset ja sulje editori.

Seuraavassa vaiheessa meidän on käynnistettävä juureton Docker-daemon. Voimme tehdä tämän käyttämällä systemctl:ää alla olevan komennon mukaisesti:

systemctl --ubuntu käynnistä telakka

Kun olet käynnistänyt, voit käynnistää ja määrittää Docker-säilöjä Docker-komennoilla.

Johtopäätös

Tässä opetusohjelmassa opimme juureton Dockerin toiminnallisuudet, kuinka se toimii ja kuinka voimme määrittää sen Linux-järjestelmässä. Voit lukea lisää rootless docker -dokumentaatiosta.