Установите 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: Образ – это неизменяемый файл, который по сути является снимком контейнера. Образ Docker имеет файловую систему и зависимости приложений, необходимые для запуска приложений.
  • Контейнер Docker. Это работающий экземпляр образа Docker с приложением и его зависимостями. Каждый контейнер имеет уникальный идентификатор процесса и изолирован от других контейнеров. Единственное, что разделяют контейнеры – это Ядро.
  • Реджестри Docker. Это приложение отвечает за управление хранением и доставкой образов контейнеров Docker. Это может быть частным или публичным.
Итак, начнем с установки Docker на Kali Linux.

 

Шаг 1: Установите пакеты зависимостей

Запустите установку, убедившись, что установлены все пакеты, используемые docker в качестве зависимостей.

sudo apt update

sudo apt -y install curl gnupg2 apt-transport-https software-properties-common ca-certificates  

 

Шаг 2: Импортируйте ключ Docker GPG:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

 

Шаг 3: Добавьте репозиторий Docker в Kali Linux

Добавьте репо Docker, которое содержит последние стабильные выпуски Docker CE.

echo "deb [arch=amd64] https://download.docker.com/linux/debian buster 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 buster 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 buster/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       

Reading state information... Done

The following additional packages will be installed:

  aufs-dkms aufs-tools cgroupfs-mount dkms linux-compiler-gcc-9-x86 linux-headers-5.4.0-kali3-amd64

  linux-headers-5.4.0-kali3-common linux-headers-amd64 linux-kbuild-5.4 pigz

Suggested packages:

  aufs-dev menu

The following NEW packages will be installed:

  aufs-dkms aufs-tools cgroupfs-mount containerd.io dkms docker-ce docker-ce-cli linux-compiler-gcc-9-x86

  linux-headers-5.4.0-kali3-amd64 linux-headers-5.4.0-kali3-common linux-headers-amd64 linux-kbuild-5.4 pigz

0 upgraded, 13 newly installed, 0 to remove and 186 not upgraded.

Need to get 98.1 MB of archives.

After this operation, 446 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:           19.03.6

 API version:       1.40

 Go version:        go1.12.16

 Git commit:        369ce74a3c

 Built:             Thu Feb 13 01:27:58 2020

 OS/Arch:           linux/amd64

 Experimental:      false



Server: Docker Engine - Community

 Engine:

  Version:          19.03.6

  API version:      1.40 (minimum version 1.12)

  Go version:       go1.12.16

  Git commit:       369ce74a3c

  Built:            Thu Feb 13 01:26:32 2020

  OS/Arch:          linux/amd64

  Experimental:     false

 containerd:

  Version:          1.2.12

  GitCommit:        35bd7a5f69c13e1563af8a93431411cd9ecf5021

 runc:

  Version:          1.0.0-rc10

  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd

 docker-init:

  Version:          0.18.0

  GitCommit:        fec3683

Шаг 5: Установите Docker Compose в Kali Linux

Используйте руководство по сслыке ниже для установки последней версии Docker Compose на Kali Linux.

 

 

Подтвердите успешную установку, проверив версию.

$  docker-compose version

docker-compose version 1.25.4, build 8d51620a

docker-py version: 4.1.0

CPython version: 3.7.5

OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

Шаг 6: Тестовая установка 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.

$ vim docker-compose.yml

Добавьте данные в файл.

version: '3'  

services:

  web:

    image: nginx:latest

    ports:

     - "8080:80"

    links:

     - php

  php:

    image: php:7-fpm

 

Запустите сервис контейнеров.

$ docker-compose up -d

Creating network "jkmutai_default" with the default driver

Pulling php (php:7-fpm)...

7-fpm: Pulling from library/php

bc51dd8edc1b: Pull complete

a3224e2c3a89: Pull complete

be7a066df88f: Pull complete

bfdf741d72a9: Pull complete

0096578ff21c: Pull complete

52b9a3846c51: Pull complete

91c8df69c5cf: Pull complete

ba16a1822680: Pull complete

c137b651214d: Pull complete

a2738b6c9bea: Pull complete

Digest: sha256:022dcc4f1a054584660ce3d77bb0dc1f5084d25f117d4814726518b7f66af47f

Status: Downloaded newer image for php:7-fpm

Pulling web (nginx:latest)...

latest: Pulling from library/nginx

bc51dd8edc1b: Already exists

66ba67045f57: Pull complete

bf317aa10aa5: Pull complete

Digest: sha256:ad5552c786f128e389a0263104ae39f3d3c7895579d45ae716f528185b36bc6f

Status: Downloaded newer image for nginx:latest

Creating jkmutai_php_1 ... done

Creating jkmutai_web_1 ... done

Показать запущенные контейнеры:

$ 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

Stopping jkmutai_web_1 ... done

Stopping jkmutai_php_1 ... done



$ docker-compose rm

Going to remove jkmutai_web_1, jkmutai_php_1

Are you sure? [yN] y

Removing jkmutai_web_1 ... done

Removing jkmutai_php_1 ... done
Наслаждайтесь разработкой контейнерных приложений и запускайте их с помощью Docker и Docker Compose в Kali Linux.