Docker CE-ն Alma Linux 9-ում. Արագ և հեշտ տեղադրման ուղեցույց
Այս էջում
- Նախադրյալներ
- Docker CE պահեստի ավելացում
- Docker CE-ի տեղադրում
- Թույլ տալ, որ ոչ արմատային օգտվողին գործարկի Docker Container-ը
Docker-ի հիմնական օգտագործումը
- Աշխատեք պատկերների հետ
- Աշխատեք կոնտեյների հետ
- Կոնտեյներների անտառահատում
- Կառավարող կոնտեյներ
- Աշխատում է ծավալի հետ
- Կոնտեյներ մուտք գործելը հյուրընկալողից
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»-ի հիմնական օգտագործումը կոնտեյներ մուտք գործելու համար: