Docker CE-ն Alma Linux 9-ում. Արագ և հեշտ տեղադրման ուղեցույց


Այս էջում

  1. Նախադրյալներ
  2. Docker CE պահեստի ավելացում
  3. Docker CE-ի տեղադրում
  4. Թույլ տալ, որ ոչ արմատային օգտվողին գործարկի Docker Container-ը
  5. Docker-ի հիմնական օգտագործումը

    1. Աշխատեք պատկերների հետ
    2. Աշխատեք կոնտեյների հետ
    3. Կոնտեյներների անտառահատում
    4. Կառավարող կոնտեյներ
    5. Աշխատում է ծավալի հետ
    6. Կոնտեյներ մուտք գործելը հյուրընկալողից
  6. Եզրակացություն

Docker-ը OpenSource ծրագրաշար է, որն ապահովում է OS մակարդակի վիրտուալացում՝ հավելվածների մշակման, առաքման և գործարկման համար: Docker-ում հավելվածները առաքվում են որպես փաթեթների ստանդարտացված միավորներ, որոնք կոչվում են կոնտեյներներ: Յուրաքանչյուր կոնտեյներ մեկուսացված է միմյանցից, ներառյալ գրադարանները և կազմաձևման ֆայլերը, սակայն դրանցից յուրաքանչյուրը կարող է հաղորդակցվել լավ սահմանված ցանցային ալիքների միջոցով:

Ինչ վերաբերում է այժմ, Docker-ը դարձել է ծրագրային ապահովման մշակման և DevOps-ի չափանիշ։ Այն օգտագործվում է միլիոնավոր ծրագրավորողների կողմից՝ աշխատավայրում ամեն օր ցանկացած հավելված ստեղծելու, համօգտագործելու և գործարկելու համար: Այն օգտագործվում է հավելվածների մշակման կյանքի ցիկլի մեջ՝ սկսած հենց մշակումից, փորձարկումից և արտադրությունից: Docker-ի միջոցով հավելվածը դառնում է ավելի ճկուն և շարժական: Հավելվածները կարող են գործարկվել ցանկացած վայրում տարբեր օպերացիոն համակարգերում՝ հեշտ եղանակով, բայց հավելվածն ինքը մնում է նույնը՝ գրադարաններից մինչև կազմաձևման ֆայլեր:

Այս ուղեցույցում դուք կսովորեք, թե ինչպես տեղադրել Docker CE-ը (Community Edition) Alma Linux 9-ում: Այս ուղեցույցը նաև ներառում է Docker-ի հիմնական օգտագործումը պատկերների, բեռնարկղերի և ծավալների կառավարման, կոնտեյների տեղեկամատյանների հետ աշխատելու և Docker Host-ի միջոցով կոնտեյներներ մուտք գործելու համար: .

Նախադրյալներ

Այս ուղեցույցը պահանջում էր հետևյալը.

  • Linux սերվեր, որն աշխատում է Alma Linux 9-ով – Այս օրինակում օգտագործվում է Alma Linux սերվեր՝ «alma-linux» հոսթի անունով և «192.168.5» IP հասցեով:
  • Ոչ արմատային օգտվող, sudo/root ադմինիստրատորի արտոնություններով:

Docker CE պահեստի ավելացում

Docker-ը նվագախմբի գործիք է կոնտեյների միջոցով հավելվածների մշակման, առաքման և գործարկման համար: Այն ավելի արագ է դարձնում զարգացման գործընթացը, քանի որ Docker-ը թույլ է տալիս ստեղծել հավելվածի պատկերներ՝ առանց հոսող մեքենայի վրա հենվելու: Սա ավելի արագ և հեշտ է դարձնում հավելվածների բաշխումը ծրագրավորողներին:

Docker-ը բազմահարթակ կոնտեյներային նվագախումբ է, այն կարող է տեղադրվել աշխատասեղանի և սերվերի վրա: Եթե դուք օգտագործում եք Desktop, կարող եք տեղադրել Docker Desktop-ը, բայց եթե օգտագործում եք սերվեր, կարող եք տեղադրել Docker Engine-ը պաշտոնական Docker պահեստի միջոցով:

Առաջին բաժնում դուք կտեղադրեք Docker CE պահեստը ձեր Alma Linux սերվերի վրա:

Գործարկեք հետևյալ հրամանը՝ «dnf-utils» փաթեթը տեղադրելու համար:

sudo dnf install dnf-utils

Մուտքագրեք y, երբ ձեզ հուշում են, ապա սեղմեք ENTER՝ շարունակելու համար:

Այժմ ավելացրեք Docker CE պահոցը՝ օգտագործելով հետևյալ dnf հրամանը։

sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Երբ Docker CE պահեստը ավելացվի, ստուգեք ստորև նշված հրամանի միջոցով: Սա ձեզ ցույց կտա ձեր Alma Linux-ի հասանելի պահեստների ցանկը:

sudo dnf repolist

Հաջողության դեպքում դուք պետք է ստանաք այսպիսի արդյունք.

Անցեք հաջորդ բաժին Docker CE-ի տեղադրման համար:

Docker CE-ի տեղադրում

Այս բաժնում դուք կտեղադրեք Docker CE-ն Alma Linux սերվերի վրա: Այս բաժնի ավարտին դուք կունենաք Docker-ը և կաշխատի ձեր համակարգում:

Տեղադրեք Docker CE-ն՝ օգտագործելով հետևյալ dnf հրամանը։ Դրանով դուք կտեղադրեք Docker հավելյալ փաթեթով 'docker-buildx-plugin' դա Docker Build պլագինն է, որն ավելի արագ է դարձնում պատկերների կառուցումը, իսկ «docker-compose-plugin<'-ը Docker Compose հավելվածն է՝ հավելվածների ավելի հեշտ մշակման համար:

sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Երբ ձեզ հուշում են, մուտքագրեք y՝ հաստատելու համար, այնուհետև սեղմեք ENTER՝ շարունակելու համար:

Բացի այդ, ձեզանից կպահանջվի հաստատել GPG բանալին Docker պահեստի համար: Մուտքագրեք հաստատման համար, ապա սեղմեք ENTER:

Երբ Docker-ը տեղադրվի, գործարկեք հետևյալ systemctl հրամանը՝ «docker» ծառայությունը սկսելու և միացնելու համար:

sudo systemctl start docker
sudo systemctl enable docker

Հրամանի կատարումից հետո Docker-ը կաշխատի և նաև միացված կլինի, ինչը նշանակում է, որ Docker-ը ավտոմատ կերպով կգործարկվի համակարգի գործարկումից հետո:

Գործարկեք ստորև նշված հրամանը՝ ստուգելու Docker ծառայության կարգավիճակը և համոզվելու, որ Docker-ը աշխատում է:

sudo systemctl status docker

Երբ Docker-ը աշխատում է, դուք պետք է ակնկալեք հետևյալ արդյունքը.

Թույլ տալ, որ ոչ արմատային օգտվողին գործարկի Docker Container-ը

Լռելյայն, միայն արմատային օգտվողը, որը թույլ է տվել գործարկել կոնտեյները Docker-ի միջոցով: Այս բաժինը ցույց կտա ձեզ, թե ինչպես թույլատրել ոչ արմատային օգտվողներին գործարկել Docker կոնտեյներները՝ ավելացնելով օգտվողին գոյություն ունեցող «docker» կոչվող խմբին:

Գործարկեք հետևյալ հրամանը՝ ձեր օգտվողին «docker» խմբին ավելացնելու համար: Այս օրինակում օգտագործվում է «testuser» անունով օգտվող:

sudo usermod -aG docker testuser

Այժմ մուտք գործեք որպես ձեր օգտվող՝ օգտագործելով հետևյալ հրամանը. Այնուհետև գործարկեք «docker run» հրամանը ստորև՝ «hello-world» կոնտեյները գործարկելու համար:

su - testuser
docker run hello-world

Հաջողության դեպքում դուք պետք է ստանաք հետևյալ արդյունքը.

Հաջորդը, գործարկեք հետևյալ docker հրամանը՝ ձեր համակարգի գործող կոնտեյները ստուգելու համար:

docker ps
docker ps -a

Առաջին «docker ps» հրամանը ելք չի ունենա, քանի որ այն ձեզ ցույց կտա միայն գործող կոնտեյներ, իսկ «hello-world» կոնտեյները դուրս է գալիս/դադարեցնում «-ից հետո: Ողջույն Docker-ից» հաղորդագրությունը տպագրված է: Բայց «docker ps -a»-ով երկրորդ հրամանի համար այն ձեզ ելք կտա ինչպես գործարկվող, այնպես էլ ելքի կոնտեյներների համար:

Docker-ի հիմնական օգտագործումը

Դուք այժմ հաջողությամբ հասել եք այն փուլին, երբ Docker-ը գործարկվում և աշխատում է, ինչպես նաև թույլ տվեցիք ձեր ոչ արմատային օգտատիրոջը գործարկել Docker կոնտեյները: Ոչ, անցեք Docker-ի հիմնական օգտագործմանը:

Հետևյալ քայլերը ձեզ ցույց կտան Docker-ի օգտագործման որոշ սցենարներ: Դուք կսովորեք, թե ինչպես կառավարել Docker պատկերները, աշխատել կոնտեյների և ծավալի հետ, ինչպես նաև կսովորեք, թե ինչպես մուտք գործել կոնտեյներ հյուրընկալող մեքենայից:

Եթե ամեն ինչ իր տեղում է, եկեք սկսենք:

Աշխատեք պատկերների հետ

Առաջին քայլում դուք կաշխատեք Docker պատկերի հետ: Դուք կներբեռնեք պատկերը և կհաստատեք առկա պատկերների ցանկը ձեր տեղական մեքենայի վրա:

Պատկեր ներբեռնելու համար այցելեք DockerHub և մուտքագրեք Docker պատկերի անունը, որը ցանկանում եք ներբեռնել: Այս օրինակում դուք կներբեռնեք «nginx»պատկերը՝ «alpine» պիտակներով: Եթե սեղմեք TAGS ներդիրին, դուք պետք է տեսնեք Nginx պատկերի հասանելի տարբերակների ցանկը:

Այժմ գործարկեք «docker pull» հրամանը ստորև՝ Docker պատկերները ներբեռնելու համար: Այս օրինակում դուք կներբեռնեք «nginx:alpine» պատկերը, որը վերաբերում է Nginx Alpine պատկերի վերջին տարբերակին:

docker pull nginx:alpine

Ներբեռնվելուց հետո գործարկեք հետևյալ հրամանը՝ ձեր հոսթում առկա պատկերները ցուցակագրելու համար: Եթե սկզբից հետևեք այս քայլերին, ապա դուք պետք է տեսնեք երկու Docker պատկեր՝ «hello-world»՝ «վերջին» և «nginx' «ալպիական» պիտակով:

docker images

Աշխատեք կոնտեյների հետ

Ներբեռնված Docker պատկերով այժմ կարող եք գործարկել կոնտեյները: Այս բաժինը ցույց կտա ձեզ, թե ինչպես ստեղծել և գործարկել կոնտեյներ Docker-ի միջոցով:

Կոնտեյներ գործարկելու համար ստորև գործարկեք հետևյալ «docker run» հրամանը:

docker run -it -d -p 8080:80 --name web nginx:alpine

Այս հրամանը կստեղծի նոր կոնտեյներ, որը կոչվում է «web», որը հիմնված է «nginx:alpine» Docker պատկերի վրա: «web» նոր կոնտեյները կբացահայտի «8080» նավահանգիստը Docker հոսթի վրա, որը հավասար է բեռնարկղի 80 պորտին: «-it» լրացուցիչ պարամետրը օգտագործվում է բեռնարկղը ինտերակտիվ ռեժիմում գործարկելու համար, իսկ «-d» պարամետրը կգործարկի կոնտեյները հետին պլանում:

Հրամանի կատարումից հետո դուք պետք է տեսնեք պատահական համարը և տողը, որը «CONTAINER ID» է:

Այժմ գործարկեք ստորև նշված հրամանը՝ ստուգելու գործող բեռնարկղերի ցանկը:

docker ps

Դուք պետք է ակնկալեք այսպիսի ելք՝ «web» կոնտեյները «Up» կարգավիճակով և բացեց 8080 նավահանգիստը Docker հոսթի վրա:

Այնուհետև գործարկեք ներքևում գտնվող curl հրամանը՝ մուտք գործելու 8080 նավահանգիստում բացված կոնտեյների «վեբ»: Հաջողության դեպքում դուք պետք է տեսնեք «վեբ» կոնտեյների լռելյայն ինդեքսային HTML աղբյուրի կոդը:

curl http://192.168.5.43:8080/

Ի վերջո, եթե ցանկանում եք մուտք գործել ձեր կոնտեյներ արտաքին ցանցից, դուք պետք է բացեք 8080 նավահանգիստը ձեր Alma Linux սերվերում ստորև «firewall-cmd» հրամանի միջոցով:

sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

Այժմ բացեք վեբ զննարկիչը և ձեր տեղական մեքենան և այցելեք սերվերի IP հասցեն, որին հաջորդում է 8080 պորտը (այսինքն՝ http://192.168.5.43:8080/): Դուք պետք է ակնկալեք index.html էջի արդյունք «web» կոնտեյների համար:

Կոնտեյներների անտառահատում

Logging-ը կարևոր է Docker-ում, հատկապես, եթե դուք պատկերներ եք մշակում ձեր հավելվածների համար: Մուտքագրումն օգնում է վրիպազերծել ձեր հավելվածի մշակումը:

Գործարկեք հետևյալ հրամանը՝ «web» կոնտեյների ամբողջական տեղեկամատյանները ստանալու համար:

docker logs web

Ստորև ներկայացված է նմանատիպ արդյունքը, որը դուք կստանաք «web» կոնտեյներից:

Դուք կարող եք նաև սահմանափակել տեղեկամատյանների ելքը «tail» պարամետրի միջոցով, ինչպես ստորև: Այս հրամանը ձեզ ցույց կտա «վեբ» կոնտեյների տեղեկամատյանների վերջին 5 տողերը:

docker logs --tail 5 web

Կառավարող կոնտեյներ

Այս բաժնում դուք կսովորեք, թե ինչպես կառավարել կոնտեյները: Դուք կսովորեք, թե ինչպես սկսել, դադարեցնել և հեռացնել տարան:

«web» կոնտեյների դադարեցման համար գործարկեք «docker stop» հրամանը ստորև:

docker stop web

Այժմ ստուգեք կոնտեյները՝ օգտագործելով հետևյալ հրամանը. Դուք պետք է ստանաք «վեբ» կոնտեյների ելքը «Դուրս եկած» կարգավիճակով:

docker ps
docker ps -a

«web» կոնտեյները նորից գործարկելու համար ստորև գործարկեք «docker start» հրամանը: Այնուհետև ստուգեք գործող բեռնարկղերի ցանկը՝ օգտագործելով «docker ps» հրամանը:

docker start web
docker ps

Դուք պետք է ելք ստանաք, որ «վեբ» կոնտեյները աշխատում է «Վերև» կարգավիճակով:

Վերջապես գործարկեք հետևյալ հրամանը՝ «web» կոնտեյները հեռացնելու համար: Նախքան բեռնարկղը ջնջելը, նախ պետք է դադարեցնեք բեռնարկղը:

docker stop web
docker rm web

Եթե դուք ստուգում եք ցուցակի բեռնարկղերը «docker ps» հրամանի միջոցով, ապա պետք է ակնկալեք, որ «web» կոնտեյները կջնջվի:

docker ps -a

Աշխատում է ծավալի հետ

Volume-ն այն տեղն է, որտեղ դուք կցել եք ձեր տեղական ծավալը/տեղեկատուը կոնտեյներին: Դուք կարող եք ենթադրել, որ ծավալը նման է «համօգտագործվող թղթապանակին» վիրտուալ մեքենայի մեջ: Այս բաժնում դուք կստեղծեք նոր կոնտեյներ հատուկ ծավալով, որը թույլ է տալիս կցել տեղական գրացուցակը կոնտեյներին:

Նախ, ստեղծեք նոր նախագծի գրացուցակ «~/project/data» և տեղափոխեք ձեր աշխատանքային գրացուցակը այնտեղ:

mkdir -p ~/project/data; cd ~/project

Այժմ գործարկեք հետևյալ հրամանը՝ «data/index.html» նոր ֆայլ ստեղծելու համար: Այս ֆայլը կփոխարինի նոր «web» կոնտեյների լռելյայն index.html էջին:

cat > data/index.html << EOF
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Welcome to Docker Nginx</title>
</head>
<body>
  <h2>Hello from Nginx container</h2>
</body>
</html>
EOF

Այժմ գործարկեք հետևյալ հրամանը՝ «-v» պարամետրի միջոցով «web» նոր կոնտեյներ ստեղծելու և գործարկելու համար հատուկ ծավալով: Այս օրինակում դուք կտեղադրեք «~/project/data» տեղական գրացուցակը «web» կոնտեյների մեջ՝ նպատակային գրացուցակով «/usr/share/nginx/html: '. «:ro» լրացուցիչ տարբերակը կդարձնի գրացուցակը «/usr/share/nginx/html» կոնտեյների վրա միայն կարդալու, մինչդեռ հյուրընկալող մեքենայի վրա կարդալ և գրել դեռևս թույլատրված է:

docker run -it -d -p 8080:80 --name web -v ~/project/data:/usr/share/nginx/html:ro nginx:alpine

Այնուհետև գործարկեք հետևյալ հրամանը՝ համոզվելու, որ «web» նոր կոնտեյները աշխատում է:

docker ps

Հաջողության դեպքում դուք պետք է ակնկալեք հետևյալ արդյունքը. «web» կոնտեյները աշխատում է և բացում է 8080 պորտը հյուրընկալող մեքենայի վրա:

Այժմ գործարկեք ներքևում գտնվող curl հրամանը՝ «վեբ» կոնտեյների մուտք գործելու համար: Երբ ամեն ինչ հարթ է ընթանում, դուք պետք է տեսնեք ձեր ստեղծած հատուկ index.html էջի սկզբնական կոդը:

curl http://192.168.5.43:8080/

Ստորև ներկայացված է հատուկ index.html-ի էջը, երբ մուտք է գործում վեբ բրաուզերից (այսինքն՝ http://192.168.5.43:8080/):

Կոնտեյներ մուտք գործելը հյուրընկալողից

Կոնտեյներ մուտք գործելու և մուտք գործելու համար կարող եք օգտագործել «docker exec» հրամանը, որը թույլ է տալիս կատարել այն հրամանը, որը հասանելի է կոնտեյների վրա:

Գործարկեք հետևյալ հրամանը՝ «վեբ» կոնտեյներ մուտք գործելու համար: Սա կկատարի «/bin/sh» հրամանը «web» կոնտեյների վրա, իսկ «-it» պարամետրը ձեզ անմիջապես կտանի դեպի կոնտեյները.

docker exec -it web /bin/sh

Կոնտեյներ մուտք գործելուց հետո գործարկեք հետևյալ հրամանը՝ ձեր կոնտեյների մանրամասն հոսթի անունը ստուգելու համար: Կոնտեյների հոսթի անունը պետք է լինի նույնը, ինչ «CONTAINER ID»-ը:

id
hostname

Հաջորդը, գործարկեք հետևյալ հրամանը՝ ստուգելու IP հասցեն և կոնտեյների լռելյայն դարպասը:

ip a
route -n

Դուք պետք է ակնկալեք, որ արդյունքը հետևյալն է.

Քանի որ կոնտեյների «վեբ»-ը գործարկում է Nginx գործընթացը, դուք կարող եք մուտք գործել ձեր կոնտեյներ տեղական IP հասցեի միջոցով՝ ստորև բերված curl հրամանի միջոցով: Այս օրինակում կոնտեյների IP հասցեն է «172.17.0.2»: Դուք պետք է ստանաք նույն index.html էջը:

curl 172.17.0.2

Եզրակացություն

Այժմ, երբ ավարտեցիք այս ուղեցույցը, դուք պետք է իմանաք, թե ինչպես տեղադրել Docker-ը Alma Linux 9-ում: Դուք նաև լրացրել եք Docker-ի հիմնական օգտագործման սցենարը պատկերների և կոնտեյներների կառավարման, վրիպազերծման նպատակով բեռնարկղերի գրանցման, դոկերի ծավալի հետ աշխատելու և «docker exec»-ի հիմնական օգտագործումը կոնտեյներ մուտք գործելու համար: