[Õpetus] Käivitage Windowsis Linuxi konteinerid

root

Huviline
Joined
5 October 2021
Messages
318
1. Ülevaade
Nüüd on võimalik käitada Dockeri konteinereid operatsioonisüsteemides Windows 10 ja Windows Server, kasutades Ubuntut hostimisbaasina.

Kujutage ette, et kasutate Windowsis oma Linuxi rakendusi, kasutades teile sobivat Linuxi distributsiooni: Näiteks Ubuntu!

Nüüd on seda võimalik teha, kasutades Windowsi Dockeri tehnoloogiat ja Hyper-V virtualiseerimise võimalust.

shell.png

2. Nõuded
Teil on vaja 64 bitist x86 arvutit, millel on 8 GB RAM-i, milles töötab Windows 10 või Windows Server ja mida on värskendatud.

Teil on vaja ka uusimat Dockerit https://docs.docker.com/get-docker/

3. Paigaldage Docker Windows-le
Laadige Dockeri poest alla Docker Windows-le https://hub.docker.com/editions/community/docker-ce-desktop-windows

dockerstore.png

Pärast allalaadimist jätkake paigaldus toimingutega ja logige välja või taaskäivitage süsteem, nagu paigaldaja on nõudnud.

dockerinstall.png

Pärast taaskäivitamist käivitub Docker. Docker nõuab, et funktsioon Hyper-V oleks lubatud, nii et vajadusel palub teil see lubada ja taaskäivitada. Hyper-V lubamiseks ja süsteemi taaskäivitamiseks klõpsake Dockeri jaoks OK.

hyperv.png

4. Laadige alla Ubuntu konteineri image
Laadige Canonical Partner Images veebisaidilt alla uusim Windowsi jaoks mõeldud Ubuntu konteineri image https://partner-images.canonical.com/hyper-v/linux-containers/

Pärast allalaadimist pakkige lahti, kasutades nt. 7-Zip:
PHP:
C:\Users\mathi\> .\xz.exe -d xenial-container-hyper-v.vhdx.xz

5. Valmistage konteineri keskkond ette
Esiteks looge kaks kataloogi:

directoryes.png

Looge C:\lcow, mida kasutatakse Dockeri jaoks konteinerite ettevalmistamise ajal.

lcow.png

Ja looge ka C:\Program Files\Linux Containers. See on koht, kus pesitseb Ubuntu konteineri image.

Peate andma sellele kaustale lisaõigused, et lubada Dockeril selles olevaid pilte kasutada. Käivitage administraatorina Powershelli aknas järgmine skript:
PHP:
param(
[string] $Root
)
# Give the virtual machines group full control
$acl = Get-Acl -Path $Root
$vmGroupRule = new-object System.Security.AccessControl.FileSystemAccessRule ("NT VIRTUAL MACHINE\Virtual Machines", "FullControl","ContainerInherit,ObjectInherit" , "None", "Allow")
$acl.SetAccessRule($vmGroupRule)
Set-Acl -AclObject $acl -Path $Root

Salvestage see fail nimega set_perms.ps1 ja käivitage see:

NB! Powershelli skriptide käitamiseks peate võib-olla käivitama käsu „Set-ExecutionPolicy -Scope process unstricted”.

powershell.png

PHP:
C:\Users\mathi\> .\set_perms.ps1 "C:\Program Files\Linux Containers"
C:\Users\mathi\>

Nüüd kopeerige eelmises etapis lahtipakitud Ubuntu konteineri image .vhdx fail uvm.vhdx alla C:\Program Files\Linux Containers.

6. Rohkem Dockeri ettevalmistust
Docker Windows-le vajab Hyper-V -ga töötamiseks mõningaid väljalaske eelseid funktsioone. Kuigi need funktsioonid pole varem tehtud Docker CE installis veel saadavaks, saab vajalikud failid alla laadida saidilt https://master.dockerproject.org/

master.png

Laadige dockerd.exe ja docker.exe saidilt ning asetage need kaks programmi kuskile turvalisse kohta, näiteks oma kausta. Neid kasutatakse järgmises etapis Ubuntu konteineri käivitamiseks.

7. Käivitage Hyper-V-s Ubuntu konteiner
Olete nüüd valmis konteinerit käivitama. Esmalt avage administraatorina käsurida (cmd.exe) ja käivitage dockerd.exe õiges keskkonnas:
PHP:
C:\Users\mathi\> set LCOW_SUPPORTED=1
C:\Users\mathi\> .\dockerd.exe -D --data-root C:\lcow

Docker juba töötab?
Kui Dockeri installer seab Dockeri alglaadimisel automaatselt käivitama, peate võib-olla enne ülaltoodud käskude käivitamist tööriistariba ikooni kaudu sulgema.

Seejärel käivitage administraatorina Powershell ja käivitage docker.exe, juhendades sellel teie konteineri jaoks imaget tõmbama:
PHP:
C:\Users\mathi\> .\docker.exe pull ubuntu

mathi.png
mathi2.png
mathi3.png

Nüüd saame lõpuks konteineri käivitada. Käivitage docker.exe uuesti ja paluge tal käivitada uus image:
PHP:
C:\Users\mathi\> .\docker.exe run -it ubuntu

mathi4.png

Palju õnne! Olete oma süsteemi edukalt seadistanud kasutama Windowsis Hyper-V -ga konteinereid ja käivitanud oma Ubuntu konteineri.
 
Jõudsin otsaga siia - 4. Laadige alla Ubuntu konteineri image
tuli imelik pilt - lahti pakkida ei ole midagi - mingid FOOTER ja HEADER?
Paluks abi ?
 
Jõudsin siia - Salvestage see fail nimega set_perms.ps1 ja käivitage see:
kuhu oleks soovitav see fail salvestada ?
 
PS C:\Users\reine> .\set_perms.ps1 "C:\Program Files\Linux Containers"
.\set_perms.ps1 : File C:\Users\reine\set_perms.ps1 cannot be loaded because running scripts is disabled on this
system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ .\set_perms.ps1 "C:\Program Files\Linux Containers"
+ ~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
PS C:\Users\reine>
 
Millise policy ma käivitan:
To change your execution policy:

PowerShellCopy
Set-ExecutionPolicy -ExecutionPolicy <PolicyName>
For example:

PowerShellCopy
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
To set the execution policy in a particular scope:

PowerShellCopy
Set-ExecutionPolicy -ExecutionPolicy <PolicyName> -Scope <scope>
For example:

PowerShellCopy
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
 
Need õpetused ei ole 100% kõigil toimivad, nagu ka Windows 11, kellel toimib algusest saati laitmatult (nt minul) ja teised kes ei saa kohe kuidagi temaga hakkama. Teiseks nende õpetustega on see, et midagi pead ikka ise ka teadma mida teed ja käsurida võiks natuke tunda. Kolmandaks on veel see, et peaks suutma ise natuke osata vajadusel juurde googeldada.
Kui bootiva USB pulga tegemine tekitab veidi raskusi, siis ma ei soovita kohe hakata Linuxi konteinereid paigaldama.
 
Bootivad pulgad sain valmis - mõlemad - nii v20.04 kui ka v15.04.
Bootimiseks kogun veel veidi julgust ja teadmisi.
 
Back
Top