Како да инсталирате и користите 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. Овој дел ви покажува како да го направите токму тоа.
Но, прво, да ја ажурираме базата на податоци за пакетите:
- sudo dnf check-update
Следно, додадете го официјалното складиште на Docker:
- sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Иако не постои специфично складиште за Rocky Linux од Docker, Rocky Linux се базира на CentOS и може да го користи истото складиште. Со додаденото складиште, инсталирајте го Docker, кој е составен од три пакети:
- sudo dnf install docker-ce docker-ce-cli containerd.io
Откако ќе заврши инсталацијата, стартувајте го Docker демонот:
- sudo systemctl start docker
Потврдете дека работи:
- 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)
И на крај, проверете дали започнува при секое рестартирање на серверот:
- sudo systemctl enable docker
Инсталирањето на Docker сега ви ја дава не само услугата Docker (демон), туку и алатката за командната линија docker
или клиентот Docker. Ќе истражиме како да ја користиме командата docker
подоцна во ова упатство.
Чекор 2 - Извршување на командата на Docker без Sudo (опционално)
Стандардно, извршувањето на командата docker
бара привилегии за root - односно, треба да ја префиксирате командата со sudo
. Може да го работи и корисник во групата docker, која автоматски се креира за време на инсталацијата на Docker. Ако се обидете да ја извршите командата docker
без да ја поставите со префикс со sudo
или без да бидете во групата докер, ќе добиете излез како овој:
Outputdocker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See 'docker run --help'.
Ако сакате да избегнете пишување sudo
секогаш кога ја извршувате командата docker
, додајте го вашето корисничко име во групата докер:
- sudo usermod -aG docker $(whoami)
Ќе треба да се одјавите од Droplet и да се вратите како истиот корисник за да ја овозможите оваа промена.
Ако треба да додадете корисник во групата docker
како што не сте најавени, пријавете го тоа корисничко име експлицитно користејќи:
- sudo usermod -aG docker username
Остатокот од овој напис претпоставува дека ја извршувате командата docker
како корисник во групата корисници на docker. Ако изберете да не, ве молиме приложете ги командите со sudo
.
Чекор 3 - Користење на командата Docker
Кога е инсталиран и работи Docker, сега е време да се запознаете со алатката за командна линија. Користењето на docker
се состои од предавање на синџир од опции и подкоманди проследени со аргументи. Синтаксата ја има оваа форма:
- docker [option] [command] [arguments]
За да ги видите сите достапни подкоманди, напишете:
- 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
За да ги видите прекинувачите достапни за одредена команда, напишете:
- docker docker-subcommand --help
За да видите информации за целиот систем, користете:
- docker info
Чекор 4 - Работа со Docker Images
Контејнерите на Docker се извршуваат од сликите на Docker. Стандардно, ги повлекува овие слики од Docker Hub, регистар на Docker управуван од Docker, компанијата зад проектот Docker. Секој може да ги изгради и хостира своите Docker слики на Docker Hub, така што повеќето апликации и дистрибуции на Linux ќе треба да ги стартувате контејнерите на Docker имаат слики што се хостирани на Docker Hub.
За да проверите дали можете да пристапите и преземате слики од Docker Hub, напишете:
- docker run hello-world
Излезот, кој треба да го содржи следново, треба да покаже дека Docker работи правилно:
OutputHello from Docker.
This message shows that your installation appears to be working correctly.
...
Можете да пребарувате за слики достапни на Docker Hub со користење на командата docker
со подкомандата пребарување
. На пример, за да ја побарате сликата на Rocky Linux, напишете:
- docker search rockylinux
Скриптата ќе го индексира Docker Hub и ќе врати список на сите слики чие име одговара на низата за пребарување. Во овој случај, излезот ќе биде сличен на овој:
OutputNAME 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
, на пример:
- docker pull rockylinux
Откако ќе се преземе сликата, тогаш можете да извршите контејнер користејќи ја преземената слика со подкомандата run
. Ако сликата не е преземена кога docker
се извршува со подкомандата run
, клиентот Docker прво ќе ја преземе сликата, а потоа ќе стартува контејнер користејќи ја:
- docker run rockylinux
За да ги видите сликите што се преземени на вашиот компјутер, напишете:
- 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 ви дава интерактивен пристап на школка во контејнерот:
- docker run -it rockylinux
Вашата командна линија треба да се промени за да го одрази фактот дека сега работите внатре во контејнерот и треба да ја има оваа форма:
Output[root@59839a1b7de2 /]#
Важно: Забележете го ID на контејнерот во командната линија. Во горниот пример, тоа е 59839a1b7de2
.
Сега можете да извршите каква било команда во контејнерот. На пример, да го инсталираме серверот MariaDB во контејнерот што работи. Нема потреба да ставате префикс на која било команда со sudo
, бидејќи работите во контејнерот со права на root:
- dnf install mariadb-server
Чекор 6 - Извршување промени во контејнер на слика на Docker
Кога стартувате слика на Docker, можете да креирате, менувате и бришете датотеки исто како што можете со виртуелната машина. Промените што ќе ги направите ќе важат само за тој контејнер. Можете да го стартувате и прекинете, но штом ќе го уништите со командата docker rm
, промените ќе бидат изгубени засекогаш.
Овој дел ви покажува како да ја зачувате состојбата на контејнер како нова слика на Docker.
Откако ќе го инсталирате серверот MariaDB во контејнерот на Rocky Linux, сега имате контејнер што истекува од слика, но контејнерот е различен од сликата што сте ја користеле за да го креирате.
За да ја зачувате состојбата на контејнерот како нова слика, прво излезете од него:
- exit
Потоа извршете ги промените на нов примерок на слика на Docker користејќи ја следнава команда. Прекинувачот -m е за пораката за обврзување која ви помага и на другите да знаете какви промени сте направиле, додека -a се користи за одредување на авторот. ИД на контејнерот е оној што го забележавте претходно во упатството кога ја започнавте интерактивната докерска сесија. Освен ако не сте создале дополнителни складишта на Docker Hub, складиштето обично е вашето корисничко име на Docker Hub:
- docker commit -m "What did you do to the image" -a "Author Name" container-id repository/new_image_name
На пример:
- docker commit -m "added mariadb-server" -a "Sunday Ogwu-Chinuwa" 59839a1b7de2 sammy/rockylinux-mariadb
Забелешка: Кога посветувате слика, новата слика се зачувува локално, односно на вашиот компјутер. Подоцна во ова упатство, ќе научите како да туркате слика во регистарот на Docker како што е Docker Hub за да може да биде проценета и користена од вас и од другите.
Откако ќе заврши таа операција, наведувањето на сликите на Docker сега на вашиот компјутер треба да ја прикаже новата слика, како и старата од која е изведена:
- docker images
Излезот треба да биде од овој вид:
OutputREPOSITORY 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 некое време, ќе имате многу активни (работи) и неактивни контејнери на вашиот компјутер. За да ги видите активните, користете:
- docker ps
Ќе видите излез сличен на следново:
OutputCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f7c79cc556dd rockylinux "/bin/bash" 3 hours ago Up 3 hours silly_spence
За да ги видите сите контејнери — активни и неактивни, префрлете го прекинувачот -a
:
- docker ps -a
За да го видите најновиот контејнер што го создадовте, префрлете го на прекинувачот -l
:
- docker ps -l
Запирањето на активен или активен контејнер е едноставно како да пишувате:
- 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. Ќе ви биде побарано да потврдите:
- docker login -u docker-registry-username
Ако сте ја навеле точната лозинка, автентикацијата треба да успее. Потоа можете да ја турнете сопствената слика користејќи:
- docker push docker-registry-username/docker-image-name
Ќе треба некое време да се заврши, а кога ќе се заврши, излезот ќе биде од овој вид:
OutputThe push refers to a repository [docker.io/sammy/rockylinux-mariadb]
670194edfaf5: Pushed
5f70bf18a086: Mounted from library/rockylinux
6a6c96337be1: Mounted from library/rockylinux
...
Откако ќе ја турнете сликата во регистарот, таа треба да биде наведена на контролната табла на вашата сметка, како што е прикажано на сликата подолу.
Ако обидот за туркање резултира со грешка од овој вид, тогаш најверојатно не сте се најавиле:
OutputThe 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 заедницата.