Как настроить Docker + Docker compose Windows 10 используя WSL 2 Ubunutu 20 кратко

Практика



Electron in the transistor-resistor kingdom

Game: Perform tasks and rest cool.8 people play!

Play game

Привет, Вы узнаете о том , что такое Как настроить Docker + Docker compose Windows 10 используя WSL 2 Ubunutu 20, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое Как настроить Docker + Docker compose Windows 10 используя WSL 2 Ubunutu 20 , настоятельно рекомендую прочитать все из категории Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend) .

Если у вас есть Windows 10, то есть возможность работы в линукс без сторонних виртуализаторов и без перезапуска системы, для этого нужно включить компоненты установить кое что.

1) Сборка должна быть не меньше чем показана на картинке

Как настроить Docker + Docker compose Windows 10   используя WSL 2  Ubunutu 20

  • Для систем x64: версия 1903 или выше, со сборкой 18362 или выше.
  • Для систем ARM64: версия 2004 или выше, со сборкой 19041 или выше.
  • Сборки ниже 18362 не поддерживают WSL 2.

2 ) зайдите в раздел компоненты видовсе и установите те что выделены на рисунке ниже

Панель управления\Все элементы панели управления\Программы и компоненты

Как настроить Docker + Docker compose Windows 10   используя WSL 2  Ubunutu 20

Как настроить Docker + Docker compose Windows 10   используя WSL 2  Ubunutu 20

3) теперь перед установкой линукс в виндовс вам нужно включить поддержку WSL 2

она подразумевает полную поддержку линукса но с виртуализацией, слегка медленно, но не критично

(при этом немного усложняется настройка сети, но становится полная доступность возможностей другой операционной системы)

для этого вам нужно запустить PowerSherll или просто CMD

Как настроить Docker + Docker compose Windows 10   используя WSL 2  Ubunutu 20

3.1 проверяем текущую версию wsl --list --verbose (это сделайте после установки образа)

Как настроить Docker + Docker compose Windows 10   используя WSL 2  Ubunutu 20

3.2 Включите функцию виртуальной машины

Перед установкой WSL 2 необходимо включить дополнительную функцию платформы виртуальных машин . Для использования этой функции вашей машине потребуются возможности виртуализации .

Откройте PowerShell от имени администратора и запустите:

Electron in the transistor-resistor kingdom

Game: Perform tasks and rest cool.8 people play!

Play game
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Как настроить Docker + Docker compose Windows 10   используя WSL 2  Ubunutu 20

Как настроить Docker + Docker compose Windows 10   используя WSL 2  Ubunutu 20

так же ваша материснская плата должна поддерживать виртуализацию, и она должна быть включена

3.3 Загрузите пакет обновления ядра Linux

    Electron in the transistor-resistor kingdom

    Game: Perform tasks and rest cool.8 people play!

    Play game
  1. Загрузите последний пакет:

    • Пакет обновления ядра Linux WSL2 для компьютеров x64

    https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

    Примечание

    Если вы используете компьютер ARM64, загрузите вместо него пакет ARM64 . Если вы не уверены , какой тип машины вы имеете, откройте командную строку или PowerShell и введите следующую команду : systeminfo | find "System Type".

    3.4 Установите WSL 2 в качестве версии по умолчанию

    Откройте PowerShell и выполните эту команду, чтобы установить WSL 2 в качестве версии по умолчанию при установке нового дистрибутива Linux:

    PowerShellКопировать
    wsl --set-default-version 2

4.1 установите нужный дистрибутив через мелкософтовский магазин

https://aka.ms/wslstore

Как настроить Docker + Docker compose Windows 10   используя WSL 2  Ubunutu 20

4.2 Затем вам нужно будет создать учетную запись пользователя и пароль для вашего нового дистрибутива Linux .

Как настроить Docker + Docker compose Windows 10   используя WSL 2  Ubunutu 20

ПОЗДРАВЛЯЕМ! Вы успешно установили и настроили дистрибутив Linux, полностью интегрированный с вашей операционной системой Windows!

5. теперь устанавливаем докер и докер компосер, если он был ранее установлен - удалите

 sudo apt-get remove docker docker-engine docker.io containerd runc

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Установить Docker Engine

 sudo apt-get update
 sudo apt-get install docker-ce docker-ce-cli containerd.io

Чтобы установить определенную версию Docker Engine, перечислите доступные версии в репозитории, затем выберите и установите:

а. Об этом говорит сайт https://intellect.icu . Перечислите версии, доступные в вашем репо:

$ apt-cache madison docker-ce
Electron in the transistor-resistor kingdom

Game: Perform tasks and rest cool.8 people play!

Play game
sudo apt-get install docker-ce= docker-ce-cli= containerd.io

вместо 5:18.09.1~3-0~ubuntu-xenial одну из версий полученной прошлой коммандой

установите docker-compose


sudo apt install docker-compose
docker-compose --version

5) дополнительные настройки докера

Чтобы создать dockerгруппу и добавить своего пользователя:

    Electron in the transistor-resistor kingdom

    Game: Perform tasks and rest cool.8 people play!

    Play game
  1. Создайте dockerгруппу.

    $ sudo groupadd docker
    
  2. Добавьте своего пользователя в dockerгруппу.

    $ sudo usermod -aG docker $USER
    
  3. Выйдите из системы и войдите снова, чтобы повторно оценить ваше членство в группе.

    При тестировании на виртуальной машине может потребоваться перезапустить виртуальную машину, чтобы изменения вступили в силу.

    В настольной среде Linux, такой как X Windows, полностью выйдите из сеанса, а затем снова войдите в систему.

    В Linux вы также можете запустить следующую команду, чтобы активировать изменения в группах:

    $ newgrp docker 
    
  4. Убедитесь, что вы можете запускать dockerкоманды без sudo.

    $ docker run hello-world
    

    Эта команда загружает тестовый образ и запускает его в контейнере. Когда контейнер запускается, он печатает сообщение и закрывается.

    Если вы изначально запускали команды Docker CLI, используя sudoперед добавлением пользователя в dockerгруппу, вы можете увидеть следующую ошибку, которая указывает на то, что ваш ~/.docker/каталог был создан с неправильными разрешениями из-за sudoкоманд.

    WARNING: Error loading config file: /home/user/.docker/config.json -
    stat /home/user/.docker/config.json: permission denied
    

    Чтобы решить эту проблему, либо удалите ~/.docker/каталог (он создается автоматически, но все пользовательские настройки теряются), либо измените его владельца и разрешения с помощью следующих команд:

    $ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
    $ sudo chmod g+rwx "$HOME/.docker" -R
    

Настройте Docker для запуска при загрузке

Большинство текущих дистрибутивов Linux (RHEL, CentOS, Fedora, Debian, Ubuntu 16.04 и выше) используют systemdдля управления запуском служб при загрузке системы. В Debian и Ubuntu служба Docker по умолчанию настроена на запуск при загрузке. Чтобы автоматически запускать Docker и Containerd при загрузке других дистрибутивов, используйте следующие команды:

$ sudo systemctl enable docker.service
$ sudo systemctl enable containerd.service

Чтобы отключить это поведение, используйте disable вместо него.

Electron in the transistor-resistor kingdom

Game: Perform tasks and rest cool.8 people play!

Play game
$ sudo systemctl disable docker.service
$ sudo systemctl disable containerd.service 

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

ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running
sudo service docker start.

6) настройте сеть

Доступ к сетевым приложениям Windows из Linux (IP-адрес хоста)

Если вы хотите получить доступ к сетевому приложению, работающему в Windows (например, приложению, работающему на сервере NodeJS или SQL) из вашего дистрибутива Linux (например, Ubuntu), вам необходимо использовать IP-адрес вашего хост-компьютера. Хотя это не распространенный сценарий, вы можете выполнить следующие действия, чтобы заставить его работать.

  1. Получите IP-адрес вашего хост-компьютера, выполнив эту команду из вашего дистрибутива Linux: cat /etc/resolv.conf
  2. Скопируйте IP - адрес после слова: nameserver.
  3. Подключитесь к любому серверу Windows, используя скопированный IP-адрес.

На рисунке ниже показан пример этого при подключении к серверу Node.js, или PHP работающему в Windows, через curl.

Как настроить Docker + Docker compose Windows 10   используя WSL 2  Ubunutu 20

Альтернативные возможности настройки сети

Подключение через удаленные IP-адреса

При использовании удаленных IP-адресов для подключения к вашим приложениям они будут рассматриваться как подключения из локальной сети (LAN).

Это означает, что вам нужно будет убедиться, что ваше приложение может принимать подключения к локальной сети.

Например, вам может понадобиться связать ваше приложение 0.0.0.0вместо 127.0.0.1.

В примере приложения Python с использованием Flask, это можно сделать с помощью команды: app.run(host='0.0.0.0').

Пожалуйста, помните о безопасности при внесении этих изменений, так как это разрешит подключения из вашей локальной сети.

Доступ к раздаче WSL 2 из вашей локальной сети (LAN)

При использовании распространения WSL 1, если ваш компьютер был настроен для доступа через вашу локальную сеть, то приложения, работающие в WSL, могут быть доступны и в вашей локальной сети.

Это не случай по умолчанию в WSL 2. WSL 2 имеет виртуализированный адаптер Ethernet со своим собственным уникальным IP-адресом. В настоящее время, чтобы включить этот рабочий процесс, вам нужно будет выполнить те же действия, что и для обычной виртуальной машины. (Мы ищем способы улучшить этот опыт.)

Вот пример команды PowerShell для добавления прокси-сервера порта, который прослушивает порт 4001 на хосте и подключает его к порту 4001 к виртуальной машине WSL 2 с IP-адресом 192.168.101.101.

PowerShell
netsh interface portproxy add v4tov4 listenport=4001 listenaddress=0.0.0.0 connectport=4001 connectaddress=192.168.101.101

Доступ IPv6

Дистрибутивы WSL 2 в настоящее время не могут достигать адресов только IPv6.

Убедитесь, что Docker Engine установлен правильно, запустив hello-world образ.

$ sudo docker run hello-world

Возможные проблемы

wsl2 + nginx ERR_CONNECTION_REFUSED

создайте файл .wslconfig в папке c:\Users\{You_User}\

[wsl2]
localhostForwarding=true

перезагрузите компьютер

так же после перезапуска еще отдельно перезапустите

через виндовс

wsl --shutdown

Если вам нужно получить доступ к сайту генерируемом на виртуальной машине wsl2

c:\Windows\System32\drivers\etc\hosts

добавьте

127.0.0.1 site.com

Как настроить Docker + Docker compose Windows 10   используя WSL 2  Ubunutu 20

Так же не забываем перезапускать систему после каждого этапа

Вот и все, если что то не получается или есть дельные советы пишите в комментариях ниже

я на настройки и поиски нужной информации потратил неделю

Вау!! 😲 Ты еще не читал? Это зря!

Electron in the transistor-resistor kingdom

Game: Perform tasks and rest cool.8 people play!

Play game

Исследование, описанное в статье про Как настроить Docker + Docker compose Windows 10 используя WSL 2 Ubunutu 20, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое Как настроить Docker + Docker compose Windows 10 используя WSL 2 Ubunutu 20 и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)

создано: 2021-09-19
обновлено: 2021-09-19
49



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)

Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)