Докер је популаран програм за контејнеризацију. Контејнери су стандардна јединица софтвера која пакује код и све његове зависности тако да се апликација може брзо и поуздано покренути на различитим оперативним системима и рачунарским окружењима.
Технички, контејнер је процес који се покреће, изолован је од других процеса и има приступ ресурсима рачунара. Затим ћемо погледати инсталирање Докера на Дебијану 11, као и покретање прве апликације.
Постоје два начина за инсталацију - коришћење стандардних Дебијан репозиторијума или званичног Докер репозиторијума. Дебијан репозиторијуми не садрже најновију верзију, па хајде да погледамо метод инсталације из званичног Докер репозиторијума.
Пре додавања репозиторијума, потребно је да ажурирате листу пакета покретањем команде:
$ sudo apt update
Такође инсталирајте додатне пакете који су неопходни за рад са удаљеним репозиторијумима. Да бисте инсталирали ове пакете, потребно је да покренете команду:
$ sudo apt -y install ca-certificates curl gnupg lsb-release
Затим, преузмите и додајте PGP кључ из репозиторијума. Да бисте то урадили, потребно је да покренете команду:
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Да бисте додали спремиште, потребно је да покренете команду:
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Да бисте инсталирали, прво морате ажурирати листе пакета тако да се нови репозиторијум појави у систему. Да бисте то урадили, једноставно покрените команду:
$ sudo apt update
Коначно, можете инсталирати додатне пакете. Инсталација се врши помоћу команде:
$ sudo apt -y install docker-ce docker-ce-cli containerd.io
Реч ce
у називу пакета docker-ce
означава community
, што значи да ће бити инсталирана бесплатна верзија (такође позната као community version). Сада знате како да инсталирате docker debian.
Након инсталације, биће подразумевано онемогућен. Да бисте покренули програм, потребно је да покренете команду:
$ sudo systemctl start docker
Да би се покренуо са оперативним системом, мора се додати у покретање помоћу команде:
$ sudo systemctl enable docker
Подразумевано, само root корисник може да користи и извршава његове команде у терминалу. Ако извршите било коју команду као обичан корисник, у терминалу ће се приказати следећа грешка:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied
Да бисте покренули команду као обичан корисник и без коришћења команде sudo
, морате додати корисника у docker
групу. docker
група се креира аутоматски током инсталације. Међутим, ако се из неког разлога не креира аутоматски, морате је креирати ручно покретањем:
$ sudo groupadd docker
Затим, да бисте додали тренутног корисника у докер групу, потребно је да покренете:
$ sudo usermod -aG docker $USER
Променљива $USER
значи да ће тренутни корисник у чије име је сесија покренута бити додат у docker
групу. Ова променљива је присутна у свим модерним Linux дистрибуцијама. Такође је вредно напоменути да docker група пружа привилегије еквивалентне привилегијама root корисника.
Након додавања корисника, потребно је поново се пријавити на систем и тек тада можете покренути било коју Docker
команду за проверу. На пример, извршена је docker ps
команда, која приказује листу покренутих контејнера:
$ docker ps
Као што можете видети на горњем снимку екрана, завршено је без грешака и у име обичног корисника.
Да бисте у потпуности тестирали Докер, можете преузети тест слику са hello-world
командом за тестирање. Да бисте то урадили, потребно је да покренете:
$ docker run hello-world
Команда docker run
ће преузети слику програма из онлајн репозиторијума docker hub
- званичног регистра за чување слика софтвера из Docker-а, који се користи подразумевано, и аутоматски га покренути. У примеру је приказана фраза Hello from Docker!
што значи да је слика успешно преузета и покренута.