Како да инсталирате и користите Docker на Rocky Linux 8


Вовед

Docker е апликација која го прави едноставно и лесно извршувањето на апликативните процеси во контејнер, кои се како виртуелни машини, само попреносливи, поприфатливи за ресурсите и повеќе зависни од оперативниот систем домаќин. За детален вовед во различните компоненти на контејнерот Docker, проверете го Екосистемот Docker: Вовед во заедничките компоненти.

Во ова упатство, ќе научите како да го инсталирате и користите на постоечка инсталација на Rocky Linux 8.

Предуслови

  • Серверот Rocky Linux 8 со корисник кој не еroot со привилегии sudo поставен со помош на Водичот за првично поставување за Rocky Linux 8 објаснува како да го поставите ова. li>

Сите команди во ова упатство треба да се извршуваат како корисник без корен. Ако е потребен root пристап за командата, ќе ѝ претходи sudo. Водичот за првично поставување за Rocky Linux 8 објаснува како да додавате корисници и да им дадете пристап до sudo.

Чекор 1 - Инсталирање на Docker

Инсталациониот пакет Docker достапен во официјалното складиште на Rocky Linux 8 можеби не е најновата верзија. За да ја добиете најновата и најдобрата верзија, инсталирајте го Docker од официјалното складиште на Docker. Овој дел ви покажува како да го направите токму тоа.

Но, прво, да ја ажурираме базата на податоци за пакетите:

  1. sudo dnf check-update

Следно, додадете го официјалното складиште на Docker:

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

Иако не постои специфично складиште за Rocky Linux од Docker, Rocky Linux се базира на CentOS и може да го користи истото складиште. Со додаденото складиште, инсталирајте го Docker, кој е составен од три пакети:

  1. sudo dnf install docker-ce docker-ce-cli containerd.io

Откако ќе заврши инсталацијата, стартувајте го Docker демонот:

  1. sudo systemctl start docker

Потврдете дека работи:

  1. sudo systemctl status docker

Излезот треба да биде сличен на следниот, покажувајќи дека услугата е активна и работи:

Output
● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2016-05-01 06:53:52 CDT; 1 weeks 3 days ago Docs: https://docs.docker.com Main PID: 749 (docker)

И на крај, проверете дали започнува при секое рестартирање на серверот:

  1. sudo systemctl enable docker

Инсталирањето на Docker сега ви ја дава не само услугата Docker (демон), туку и алатката за командната линија docker или клиентот Docker. Ќе истражиме како да ја користиме командата docker подоцна во ова упатство.

Чекор 2 - Извршување на командата на Docker без Sudo (опционално)

Стандардно, извршувањето на командата docker бара привилегии за root - односно, треба да ја префиксирате командата со sudo. Може да го работи и корисник во групата docker, која автоматски се креира за време на инсталацијата на Docker. Ако се обидете да ја извршите командата docker без да ја поставите со префикс со sudo или без да бидете во групата докер, ќе добиете излез како овој:

Output
docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?. See 'docker run --help'.

Ако сакате да избегнете пишување sudo секогаш кога ја извршувате командата docker, додајте го вашето корисничко име во групата докер:

  1. sudo usermod -aG docker $(whoami)

Ќе треба да се одјавите од Droplet и да се вратите како истиот корисник за да ја овозможите оваа промена.

Ако треба да додадете корисник во групата docker како што не сте најавени, пријавете го тоа корисничко име експлицитно користејќи:

  1. sudo usermod -aG docker username

Остатокот од овој напис претпоставува дека ја извршувате командата docker како корисник во групата корисници на docker. Ако изберете да не, ве молиме приложете ги командите со sudo.

Чекор 3 - Користење на командата Docker

Кога е инсталиран и работи Docker, сега е време да се запознаете со алатката за командна линија. Користењето на docker се состои од предавање на синџир од опции и подкоманди проследени со аргументи. Синтаксата ја има оваа форма:

  1. docker [option] [command] [arguments]

За да ги видите сите достапни подкоманди, напишете:

  1. docker

Почнувајќи од Docker 1.11.1, комплетната листа на достапни подкоманди вклучува:

Output
attach Attach to a running container build Build an image from a Dockerfile commit Create a new image from a container's changes cp Copy files/folders between a container and the local filesystem create Create a new container diff Inspect changes on a container's filesystem events Get real time events from the server exec Run a command in a running container export Export a container's filesystem as a tar archive history Show the history of an image images List images import Import the contents from a tarball to create a filesystem image info Display system-wide information inspect Return low-level information on a container or image kill Kill a running container load Load an image from a tar archive or STDIN login Log in to a Docker registry logout Log out from a Docker registry logs Fetch the logs of a container network Manage Docker networks pause Pause all processes within a container port List port mappings or a specific mapping for the CONTAINER ps List containers pull Pull an image or a repository from a registry push Push an image or a repository to a registry rename Rename a container restart Restart a container rm Remove one or more containers rmi Remove one or more images run Run a command in a new container save Save one or more images to a tar archive search Search the Docker Hub for images start Start one or more stopped containers stats Display a live stream of container(s) resource usage statistics stop Stop a running container tag Tag an image into a repository top Display the running processes of a container unpause Unpause all processes within a container update Update configuration of one or more containers version Show the Docker version information volume Manage Docker volumes wait Block until a container stops, then print its exit code

За да ги видите прекинувачите достапни за одредена команда, напишете:

  1. docker docker-subcommand --help

За да видите информации за целиот систем, користете:

  1. docker info

Чекор 4 - Работа со Docker Images

Контејнерите на Docker се извршуваат од сликите на Docker. Стандардно, ги повлекува овие слики од Docker Hub, регистар на Docker управуван од Docker, компанијата зад проектот Docker. Секој може да ги изгради и хостира своите Docker слики на Docker Hub, така што повеќето апликации и дистрибуции на Linux ќе треба да ги стартувате контејнерите на Docker имаат слики што се хостирани на Docker Hub.

За да проверите дали можете да пристапите и преземате слики од Docker Hub, напишете:

  1. docker run hello-world

Излезот, кој треба да го содржи следново, треба да покаже дека Docker работи правилно:

Output
Hello from Docker. This message shows that your installation appears to be working correctly. ...

Можете да пребарувате за слики достапни на Docker Hub со користење на командата docker со подкомандата пребарување. На пример, за да ја побарате сликата на Rocky Linux, напишете:

  1. docker search rockylinux

Скриптата ќе го индексира Docker Hub и ќе врати список на сите слики чие име одговара на низата за пребарување. Во овој случај, излезот ќе биде сличен на овој:

Output
NAME DESCRIPTION STARS OFFICIAL AUTOMATED centos The official build of CentOS. 2224 [OK] jdeathe/centos-ssh CentOS-6 6.7 x86_64 / CentOS-7 7.2.1511 x8... 22 [OK] jdeathe/centos-ssh-apache-php CentOS-6 6.7 x86_64 / Apache / PHP / PHP M... 17 [OK] million12/centos-supervisor Base CentOS-7 with supervisord launcher, h... 11 [OK] nimmis/java-centos This is docker images of CentOS 7 with dif... 10 [OK] torusware/speedus-centos Always updated official CentOS docker imag... 8 [OK] nickistre/centos-lamp LAMP on centos setup 3 [OK] ...

Во колоната ОФИЦИЈАЛНО, OK означува слика направена и поддржана од компанијата зад проектот. Откако ќе ја идентификувате сликата што сакате да ја користите, можете да ја преземете на вашиот компјутер користејќи ја подкомандата pull, на пример:

  1. docker pull rockylinux

Откако ќе се преземе сликата, тогаш можете да извршите контејнер користејќи ја преземената слика со подкомандата run. Ако сликата не е преземена кога docker се извршува со подкомандата run, клиентот Docker прво ќе ја преземе сликата, а потоа ќе стартува контејнер користејќи ја:

  1. docker run rockylinux

За да ги видите сликите што се преземени на вашиот компјутер, напишете:

  1. docker images

Излезот треба да изгледа слично на следново:

[secondary_lable Output]
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
rockylinux              latest              778a53015523        5 weeks ago         196.7 MB
hello-world         latest              94df4f0ce8a4        2 weeks ago         967 B

Како што ќе видите подоцна во ова упатство, сликите што ги користите за водење контејнери може да се модифицираат и да се користат за генерирање нови слики, кои потоа може да се прикачат (притиснати е технички термин) во Docker Hub или други регистри на Docker.

Чекор 5 - Водење на контејнер докер

Контејнерот hello-world што го водевте во претходниот чекор е пример за контејнер што работи и излегува откако ќе испушти тест порака. Сепак, контејнерите можат да бидат многу покорисни од тоа и можат да бидат интерактивни. На крајот на краиштата, тие се слични на виртуелните машини, само поповолни за ресурси.

Како пример, да извршиме контејнер користејќи ја најновата слика на Rocky Linux. Комбинацијата на прекинувачите -i и -t ви дава интерактивен пристап на школка во контејнерот:

  1. docker run -it rockylinux

Вашата командна линија треба да се промени за да го одрази фактот дека сега работите внатре во контејнерот и треба да ја има оваа форма:

Output
[root@59839a1b7de2 /]#

Важно: Забележете го ID на контејнерот во командната линија. Во горниот пример, тоа е 59839a1b7de2.

Сега можете да извршите каква било команда во контејнерот. На пример, да го инсталираме серверот MariaDB во контејнерот што работи. Нема потреба да ставате префикс на која било команда со sudo, бидејќи работите во контејнерот со права на root:

  1. dnf install mariadb-server

Чекор 6 - Извршување промени во контејнер на слика на Docker

Кога стартувате слика на Docker, можете да креирате, менувате и бришете датотеки исто како што можете со виртуелната машина. Промените што ќе ги направите ќе важат само за тој контејнер. Можете да го стартувате и прекинете, но штом ќе го уништите со командата docker rm, промените ќе бидат изгубени засекогаш.

Овој дел ви покажува како да ја зачувате состојбата на контејнер како нова слика на Docker.

Откако ќе го инсталирате серверот MariaDB во контејнерот на Rocky Linux, сега имате контејнер што истекува од слика, но контејнерот е различен од сликата што сте ја користеле за да го креирате.

За да ја зачувате состојбата на контејнерот како нова слика, прво излезете од него:

  1. exit

Потоа извршете ги промените на нов примерок на слика на Docker користејќи ја следнава команда. Прекинувачот -m е за пораката за обврзување која ви помага и на другите да знаете какви промени сте направиле, додека -a се користи за одредување на авторот. ИД на контејнерот е оној што го забележавте претходно во упатството кога ја започнавте интерактивната докерска сесија. Освен ако не сте создале дополнителни складишта на Docker Hub, складиштето обично е вашето корисничко име на Docker Hub:

  1. docker commit -m "What did you do to the image" -a "Author Name" container-id repository/new_image_name

На пример:

  1. docker commit -m "added mariadb-server" -a "Sunday Ogwu-Chinuwa" 59839a1b7de2 sammy/rockylinux-mariadb

Забелешка: Кога посветувате слика, новата слика се зачувува локално, односно на вашиот компјутер. Подоцна во ова упатство, ќе научите како да туркате слика во регистарот на Docker како што е Docker Hub за да може да биде проценета и користена од вас и од другите.

Откако ќе заврши таа операција, наведувањето на сликите на Docker сега на вашиот компјутер треба да ја прикаже новата слика, како и старата од која е изведена:

  1. docker images

Излезот треба да биде од овој вид:

Output
REPOSITORY TAG IMAGE ID CREATED SIZE sammy/rockylinux-mariadb latest 23390430ec73 6 seconds ago 424.6 MB rockylinux latest 778a53015523 5 weeks ago 196.7 MB hello-world latest 94df4f0ce8a4 2 weeks ago 967 B

Во горниот пример, rockylinux-mariadb е новата слика, која е изведена од постоечката слика на Rocky Linux од Docker Hub. Разликата во големина ги одразува промените што беа направени. И во овој пример, промената беше што беше инсталиран серверот MariaDB. Така, следниот пат кога ќе треба да стартувате контејнер користејќи Rocky Linux со претходно инсталиран сервер MariaDB, можете само да ја користите новата слика. Сликите може да се градат и од она што се нарекува Dockerfile. Но, тоа е многу вклучен процес кој е надвор од опсегот на овој напис. Тоа ќе го истражиме во наредна статија.

Чекор 7 - Наведување на докер контејнери

Откако ќе го користите Docker некое време, ќе имате многу активни (работи) и неактивни контејнери на вашиот компјутер. За да ги видите активните, користете:

  1. docker ps

Ќе видите излез сличен на следново:

Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f7c79cc556dd rockylinux "/bin/bash" 3 hours ago Up 3 hours silly_spence

За да ги видите сите контејнери — активни и неактивни, префрлете го прекинувачот -a:

  1. docker ps -a

За да го видите најновиот контејнер што го создадовте, префрлете го на прекинувачот -l:

  1. docker ps -l

Запирањето на активен или активен контејнер е едноставно како да пишувате:

  1. docker stop container-id

container-id може да се најде на излезот од командата docker ps.

Чекор 8 - туркање Docker слики во складиште на Docker

Следниот логичен чекор по создавањето на нова слика од постоечка слика е да ја споделите со неколку одбрани ваши пријатели, со целиот свет на Docker Hub или со друг Docker регистар до кој имате пристап. За да турнете слика до Docker Hub или кој било друг регистар на Docker, мора да имате сметка таму.

Овој дел ви покажува како да турнете слика на Docker во Docker Hub.

За да креирате сметка на Docker Hub, регистрирајте се во Docker Hub. Потоа, за да ја турнете вашата слика, најпрво најавете се во Docker Hub. Ќе ви биде побарано да потврдите:

  1. docker login -u docker-registry-username

Ако сте ја навеле точната лозинка, автентикацијата треба да успее. Потоа можете да ја турнете сопствената слика користејќи:

  1. docker push docker-registry-username/docker-image-name

Ќе треба некое време да се заврши, а кога ќе се заврши, излезот ќе биде од овој вид:

Output
The push refers to a repository [docker.io/sammy/rockylinux-mariadb] 670194edfaf5: Pushed 5f70bf18a086: Mounted from library/rockylinux 6a6c96337be1: Mounted from library/rockylinux ...

Откако ќе ја турнете сликата во регистарот, таа треба да биде наведена на контролната табла на вашата сметка, како што е прикажано на сликата подолу.

Ако обидот за туркање резултира со грешка од овој вид, тогаш најверојатно не сте се најавиле:

Output
The push refers to a repository [docker.io/sammy/rockylinux-mariadb] e3fbbfb44187: Preparing 5f70bf18a086: Preparing a3b5c80a4eba: Preparing 7f18b442972b: Preparing 3ce512daaf78: Preparing 7aae4540b42d: Waiting unauthorized: authentication required

Најавете се, а потоа повторете го обидот за туркање.

Заклучок

Има многу повеќе за Docker отколку што е дадено во оваа статија, но ова треба да биде доволно за да започнете да работите со него на Rocky Linux 8. Како и повеќето проекти со отворен код, Docker е изграден од база на кодови што брзо се развива, затоа направете навика за посета на страницата на блогот на проектот за најновите информации.

Проверете ги и другите упатства за Docker во DO заедницата.