266 lines
11 KiB
Markdown
266 lines
11 KiB
Markdown
+++
|
||
title = "Установите Docker и Docker Compose в Kali Linux"
|
||
date = "2020-02-14T11:46:59+05:00"
|
||
draft = false
|
||
tags = ["Containers", "Docker", "Kali Linux", "Tutorials"]
|
||
categories = [
|
||
"Hack"
|
||
]
|
||
description = ""
|
||
+++
|
||
|
||
Добро пожаловать в наше руководство по установке 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 с приложением и его зависимостями. Каждый контейнер имеет уникальный идентификатор процесса и изолирован от других контейнеров. Единственное, что разделяют контейнеры - это Ядро.
|
||
* **Docker registry**: Это приложение отвечает за управление хранением и доставкой образов контейнеров Docker. Это может быть частным или публичным.
|
||
|
||
Итак, начнем с установки Docker на Kali Linux.
|
||
|
||
## Шаг 1: Установите пакеты Dependency
|
||
|
||
Запустите установку, убедившись, что установлены все пакеты, используемые docker в качестве зависимостей.
|
||
```
|
||
$ sudo apt update
|
||
$ sudo apt -y install curl gnupg2 apt-transport-https software-properties-common ca-certificates
|
||
```
|
||
|
||
## Шаг 2: Импорт ключа Docker GPG:
|
||
|
||
Импортировать ключ Docker GPG, используемый для подписи пакетов Docker:
|
||
```
|
||
$ 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.
|
||
|
||
```
|
||
$ curl -s https://api.github.com/repos/docker/compose/releases/latest \
|
||
| grep browser_download_url \
|
||
| grep docker-compose-Linux-x86_64 \
|
||
| cut -d '"' -f 4 \
|
||
| wget -qi -
|
||
```
|
||
|
||
Сделайте двоичный файл исполняемым.
|
||
|
||
```
|
||
$ chmod +x docker-compose-Linux-x86_64
|
||
```
|
||
|
||
Переместите файл в ваш путь.
|
||
|
||
```
|
||
$ sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
|
||
```
|
||
|
||
После установки подтвердите успешную установку, проверив версию.
|
||
```
|
||
$ 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 контейнер:
|
||
|
||
```
|
||
$ 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/
|
||
```
|
||
|
||
Создайте тестовый файл 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.
|