Як встановити Docker і Docker Compose на Kali Linux
Ласкаво просимо до нашого посібника про те, як встановити Docker і Docker Compose на машину Kali Linux. Ми встановимо Docker CE (Community Edition) на Kali Linux. Docker є найпопулярнішим і широко використовуваним середовищем виконання контейнерів. Це дозволяє розробникам упаковувати, відправляти та запускати свої програми в ізольованих контейнерах. Це спрощує доставку з машини розробника в робоче середовище, організоване за допомогою Kubernetes.
Нижче наведені терміни, які часто використовуються в екосистемі Docker.
- Docker daemon: Це також називається Docker Engine, це фоновий процес, який працює на хост-системі, відповідальній за збірку та запуск контейнерів..
- Docker Client: Це інструмент командного рядка, який використовується користувачем для взаємодії з фоновою службою Docker.
- Docker Image: Образ — це незмінний файл, який, по суті, є знімком контейнера. Образ Docker має файлову систему та залежності програм, необхідні для запуску програм..
- Docker container: це запущений екземпляр образу docker з додатком та його залежностями. Кожен контейнер має унікальний ідентифікатор процесу та ізольований від інших контейнерів. Єдине, що є спільним для контейнерів, це Kernel.
- Docker registry: це програма, яка відповідає за керування зберіганням і доставкою образів контейнерів Docker. Він може бути приватним або державним.
Отже, приступимо до установки Docker на Kali Linux.
Крок 1: Встановіть пакети залежностей
Розпочніть встановлення, переконавшись, що всі пакунки, які використовуються docker як залежності, встановлені.
sudo apt update && sudo apt -y full-upgrade
sudo apt install curl gnupg2 apt-transport-https software-properties-common ca-certificates
Перевірте, чи потрібне перезавантаження після оновлення:
[ -f /var/run/reboot-required ] && sudo reboot -f
Крок 2: Імпортуйте ключ Docker GPG
Імпорт ключа Docker GPG, який використовується для підпису пакетів Docker:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker-archive-keyring.gpg
Крок 3: Додайте репозиторій Docker до Kali Linux
Додайте репозиторій Docker, який містить останні стабільні релізи Docker CE.
echo "deb [arch=amd64] https://download.docker.com/linux/debian bullseye stable" | sudo tee /etc/apt/sources.list.d/docker.list
Ця команда додасть URL репозиторію до /etc/apt/sources.list.d/docker.list.
Крок 4: Встановіть Docker на Kali Linux
Оновіть індекс пакетів.apt
$ sudo apt update
gn:1 http://dl.google.com/linux/chrome/deb stable InRelease
Get:3 https://download.docker.com/linux/debian bullseye InRelease [44.4 kB]
Hit:2 http://kali.download/kali kali-rolling InRelease
Hit:4 http://dl.google.com/linux/chrome/deb stable Release
Get:5 https://download.docker.com/linux/debian bullseye/stable amd64 Packages [10.9 kB]
Fetched 55.3 kB in 1s (45.2 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
186 packages can be upgraded. Run 'apt list --upgradable' to see them.
Щоб встановити Docker CE на Kali Linux, виконайте команду:
sudo apt install docker-ce docker-ce-cli containerd.io
Натисніть клавішу y, щоб розпочати встановлення Docker на Kali Linux.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
fastjar fonts-roboto-slab gnome-desktop3-data jarwrapper kali-wallpapers-2021.4 libaom0 libcbor0 libcodec2-0.9 libdap27 libdapclient6v5 libdav1d4 libepsilon1 libfluidsynth2 libfmt7 libgdal28
libgdal29 libgdk-pixbuf-xlib-2.0-0 libgdk-pixbuf2.0-0 libgeos-3.9.1 libgeos3.10.1 libgnome-desktop-3-19 libgupnp-1.2-0 libidn11 libigdgmm11 libnetcdf18 libntfs-3g883 libodbc1 libodbccr2
libomp-11-dev libomp5-11 libproj19 libqhull8.0 liburcu6 liburing1 libvpx6 libwireshark14 libwiretap11 libwsutil12 libx265-192 libxkbregistry0 libyara4 linux-image-5.10.0-kali9-amd64 maltego
odbcinst odbcinst1debian2 python3-editor python3-exif python3-ipython-genutils python3-orjson python3-pylnk python3-stem ruby-atomic ruby-thread-safe starkiller zaproxy
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
docker-ce-rootless-extras docker-scan-plugin libslirp0 pigz slirp4netns
Suggested packages:
aufs-tools cgroupfs-mount | cgroup-lite
The following NEW packages will be installed:
containerd.io docker-ce docker-ce-cli docker-ce-rootless-extras docker-scan-plugin libslirp0 pigz slirp4netns
0 upgraded, 8 newly installed, 0 to remove and 16 not upgraded.
Need to get 97.1 MB of archives.
After this operation, 409 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Ця установка додасть групу в систему без будь-яких користувачів. Додайте свій обліковий запис користувача до групи, щоб виконувати команди docker як непривілейований користувач.docker
sudo usermod -aG docker $USER
newgrp docker
Перевірте встановлену версію Docker.
$ docker version
Client: Docker Engine - Community
Version: 20.10.23
API version: 1.41
Go version: go1.18.10
Git commit: 7155243
Built: Thu Jan 19 17:36:21 2023
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.23
API version: 1.41 (minimum version 1.12)
Go version: go1.18.10
Git commit: 6051f14
Built: Thu Jan 19 17:34:26 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.15
GitCommit: 5b842e528e99d4d4c1686467debf2bd4b88ecd86
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Крок 5: Встановіть Docker Compose на Kali Linux
Скористайтеся наведеним нижче посібником, щоб встановити останню версію Docker Compose на Kali Linux.
Після інсталяції підтвердьте успішну інсталяцію, перевіривши версію.
$ docker-compose version
Docker Compose version v2.15.1
Крок 6: Перевірте встановлення Docker.
Запустіть тестовий контейнер docker:
$ docker run --rm -it hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:9572f7cdcee8591948c2963463447a53466950b3fc15a247fcad1917ca215a2f
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
Крок 6: Перевірте інсталяцію Docker Compose
Створіть тестовий файл Docker Compose.
vim docker-compose.yml
Додайте до файлу наведені нижче дані.
version: '3'
services:
web:
image: nginx:latest
ports:
- "8080:80"
links:
- php
php:
image: php:8-fpm
Запустіть сервісні контейнери.
$ docker-compose up -d
[+] Running 17/17
⠿ php Pulled 9.5s
⠿ 5eb5b503b376 Pull complete 1.9s
⠿ 8b1ad84cf101 Pull complete 2.0s
⠿ 38c937dadeb7 Pull complete 6.3s
⠿ 6a2f1dc96e59 Pull complete 6.3s
⠿ 09f78174268e Pull complete 6.4s
⠿ 789f1e9593c6 Pull complete 6.5s
⠿ a94c2f1ef4c2 Pull complete 7.2s
⠿ 362cd81222e9 Pull complete 7.2s
⠿ da7a098ae555 Pull complete 7.3s
⠿ 69108a9ecce2 Pull complete 7.3s
⠿ web Pulled 4.9s
⠿ 1ae07ab881bd Pull complete 2.5s
⠿ 78091884b7be Pull complete 2.5s
⠿ 091c283c6a66 Pull complete 2.6s
⠿ 55de5851019b Pull complete 2.6s
⠿ b559bad762be Pull complete 2.7s
[+] Running 3/3
⠿ Network jkmutai_default Created 0.2s
⠿ Container jkmutai-php-1 Started 1.2s
⠿ Container jkmutai-web-1 Started 0.6s
Показати запущені контейнери:
$ docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------
jkmutai_php_1 docker-php-entrypoint php-fpm Up 9000/tcp
jkmutai_web_1 nginx -g daemon off; Up 0.0.0.0:8080->80/tcp
Знищити контейнери:
$ docker-compose stop
[+] Running 2/2
⠿ Container jkmutai-web-1 Stopped 0.2s
⠿ Container jkmutai-php-1 Stopped 0.2s
$ docker-compose rm
docker-compose rm
? Going to remove jkmutai-web-1, jkmutai-php-1 Yes
[+] Running 2/0
⠿ Container jkmutai-php-1 Removed 0.0s
⠿ Container jkmutai-web-1 Removed 0.0s
Насолоджуйтесь розробкою та роботою контейнерних додатків за допомогою Docker і Docker Compose на Kali Linux.