Hur man installerar Docker och Docker Compose på Linux

Docker ger dig allt du behöver för att bygga och köra behållare på ditt Linux-system . Behållare liknar lätta virtuella maskiner. De låter dig skapa bärbara applikationsbilder som körs med värdens operativsystemskärna.

Du kan använda Docker på Debian-, Fedora-, CentOS- och Raspbian-plattformar. Derivat av dessa distributioner fungerar också. Docker tillhandahåller x86/x64 och ARM-byggnader för de flesta plattformar som stöds. Vi använder ett Debian-system med apt-pakethanteraren för den här guiden. Instruktioner som är specifika för andra distributioner finns i Docker-dokumenten.

Med Docker Compose kan du bygga och köra stackar med flera containrar. Du skapar en YAML-fil som konfigurerar applikationsbehållarna. Du kan sedan använda ett enda kommando för att starta alla behållare och länka dem ihop. Compose hjälper dig att separera dina stackkomponenter i individuella containertjänster.

Compose distribueras oberoende av Docker. Installera Docker innan du lägger till Compose & # 8211; annars kommer Compose inte att kunna fungera.

Install Docker

Du kan använda ditt operativsystems pakethanterare för att installera den senaste Docker-versionen. Du måste lägga till Docker-arkivet, uppdatera dina paketlistor och sedan installera Docker.

Debian/Ubuntu

Börja med att lägga till beroenden behövs av installationsprocessen:

sudo apt-get update sudo apt-get install apt-transport-https ca-certifikat curl gnupg lsb-release

Lägg sedan till Docker: s förvar GPG-nyckel:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Lägg till förvaret i dina källor och uppdatera dina paketlistor:

echo “deb [arch = amd64 sign-by =/usr/share/keyrings/docker-archive-keyring.gpg] https: //download.docker. com/linux/ubuntu $ (lsb_release -cs) stabil “| sudo tee /etc/apt/sources.list.d/docker.list & gt;/dev/null sudo apt-get update

Nu kan du installera Docker:

sudo apt-get install docker-ce docker-ce-cli containerd.io

Fedora

Lägg till Docker: s paketförvar:

sudo dnf -y install dnf-plugins-core sudo dnf config-manager –add-repo https://download.docker.com/linux/fedora/docker-ce.repo

Installera Docker:

sudo dnf installera docker-ce docker-ce-cli containerd.io

CentOS

Lägg till Docker-paketförvar:

sudo yum -y install yum-utils sudo yum-config-manager –add-repo https://download.docker.com/linux/fedora/docker-ce.repo

Installera Docker:

sudo yum installera docker-ce docker-ce- cli containerd.io

Använda Docker utan Sudo

Docker-demonen körs som root. Du måste vanligtvis prefixera Docker-kommandon med sudo. Detta kan bli tråkigt om du ofta använder Docker. Om du lägger till dig själv i dockargruppen kan du använda Docker utan sudo.

sudo usermod -aG docker $ USER

När du är i gruppen loggar du ut och loggar in igen. Alternativt kan du köra kommandot newgrp docker för att omedelbart logga in på den uppdaterade gruppen. Du borde nu kunna släppa sudo från Docker-kommandon.

Testar din Docker-installation

Nu är Docker installerad, det är dags att testa att det fungerar! Du kan använda den minimala hello-world-bilden.

docker köra hello-world: senaste

Du borde se några rader med output visas i din terminal. Docker letar först efter hejvärlden: senaste bilden på din maskin. Eftersom den inte existerar kommer bilden att hämtas från Docker Hub-arkivet.

När bilden har dragits skapas en ny behållare från den. Containern är konfigurerad för att avge en grundläggande & # 8220; hejvärld & # 8221; meddelande och avsluta sedan. Om du ser texten fungerar din Docker-installation!

Hantera Docker-tjänsten

Du kan kontrollera om Docker körs genom att inspektera dess tjänst med systemctl. Det finns två komponenter att tänka på, docker och containerd. docker är Docker Engine-demon som CLI skickar kommandon till. containerd är den underliggande körtiden som faktiskt kör dina containrar.

sudo systemctl status docker.service sudo systemctl status containerd.service

Du kan hantera demonerna som alla andra tjänster på ditt system. Använd systemctl stop om du tillfälligt vill stoppa Docker och frigöra systemresurser som används av dina behållare:

sudo systemctl stop docker.service

Du kan starta om tjänsten med systemctl start.

Lägga till Docker-Compose

docker-compose är en separat binärfil som bäst laddas ner direkt från projektets GitHub-utgåvor. De mest populära Linux-distributionerna inkluderar Compose i sina pakethanterare, men det kan vara betydligt föråldrat.

Gå till Docker Compose's utgivningssida och notera det senaste versionsnumret. I skrivande stund var det 1.29.0.

Ersätt den version du ser istället för 1.29.0 i kommandot nedan. Detta hämtar rätt binär för ditt system och släpper det till/usr/local/bin.

sudo curl -L “https://github.com/docker/compose/releases/download/1.29.0/docker -compose – $ (uname -s) – $ (uname -m) “-o/usr/local/bin/docker-compose

Gör sedan filen körbar:

sudo chmod + x/usr/local/bin/docker-compose

Du kan nu använda kommandot docker-compose i din terminal. Försök att köra docker-compose –version för att kontrollera.

Skapa en enkel Docker-Compose-fil

För att använda docker-compose måste du skapa en docker-compose.yml-fil. Detta beskriver behållarna som utgör din applikations stack. Du kan ange portbindningar, miljövariabler, nätverk och volymer som används av dina behållare.

Behållare som deklareras i samma docker-compose.yml-fil blir automatiskt en del av samma stack. De är länkade till ett Docker-nätverk så att de kan kommunicera med varandra med hjälp av deras docker-compose.yml-tjänstnamn som värdnamn.

Här är en enkel docker-compose.yml för att köra en PHP-webbserver och en MySQL-databas:

version: & quot; 3 & quot; tjänster: app: image: php8.0-apache-miljö: – MYSQL_SERVER = mysql – MYSQL_USERNAME = root – MYSQL_PASSWORD = exempelportar: – $ & # 123; PORT: -80 & # 125;: 80 omstart: om inte mysql: image : mysql: 8.0 exponera: – 3306 miljö: – MYSQL_ROOT_PASSWORD volymer: – mysql:/var/lib/mysql start: om inte stoppade volymer: mysql:

Du kan starta båda tjänsterna genom att köra docker-compose up -d. Du kommer att se att båda bilderna hämtas från Docker Hub. Containrarna startas sedan. Du kan stoppa dem båda med hjälp av docker-compose-stopp. Använd docker-compose down för att ta bort behållarna.

Exemplet YAML-fil visar några Docker Compose-funktioner. Behållare definieras under servicenoden, där varje container förklarar sin Docker-avbildning. Du kan skicka skalmiljövariabler till behållare (miljöer) och konfigurera Docker-portbindningar (portar). Miljövariabler kan interpoleras i strängar med syntaxen $ {VARIABLE: -DEFAULT}. Om variabeln inte är inställd i ditt skal används STANDARD som värde istället. Du kan lära dig mer om Docker Compose i vår dedikerade guide.

Sammanfattning

Du kan enkelt installera Docker med hjälp av pakethanterare av populära Linux-distributioner. Lägg till Docker-arkivet och installera sedan docker-ce, docker-ce-cli och containerd.io. Dessa komponenter ger dig allt du behöver för att bygga och köra dina containrar.

När du är igång kan du skriva en Dockerfile och använda docker build -t my-app: senaste. att bygga den. Använd sedan docker-kör min app: senast för att starta din container.

Docker-Compose är ett extra abstraktionsskikt som gör det lättare att köra en & # 8220; stack & # 8221; av flera containrar. Med Compose behöver du inte köra flera kommandon i serie manuellt. Du kan skriva en deklarativ YAML-fil och använda docker-compose upp för att starta alla dina containrar tillsammans.


Posted

in

by

Tags: