Практика
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) Сборка должна быть не меньше чем показана на картинке
2 ) зайдите в раздел компоненты видовсе и установите те что выделены на рисунке ниже
Панель управления\Все элементы панели управления\Программы и компоненты
3) теперь перед установкой линукс в виндовс вам нужно включить поддержку WSL 2
она подразумевает полную поддержку линукса но с виртуализацией, слегка медленно, но не критично
(при этом немного усложняется настройка сети, но становится полная доступность возможностей другой операционной системы)
для этого вам нужно запустить PowerSherll или просто CMD
3.1 проверяем текущую версию wsl --list --verbose (это сделайте после установки образа)
3.2 Включите функцию виртуальной машины
Перед установкой WSL 2 необходимо включить дополнительную функцию платформы виртуальных машин . Для использования этой функции вашей машине потребуются возможности виртуализации .
Откройте PowerShell от имени администратора и запустите:
Game: Perform tasks and rest cool.8 people play!
Play gameтак же ваша материснская плата должна поддерживать виртуализацию, и она должна быть включена
Game: Perform tasks and rest cool.8 people play!
Play gameЗагрузите последний пакет:
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
Примечание
Если вы используете компьютер ARM64, загрузите вместо него пакет ARM64 . Если вы не уверены , какой тип машины вы имеете, откройте командную строку или PowerShell и введите следующую команду : systeminfo | find "System Type".
Откройте PowerShell и выполните эту команду, чтобы установить WSL 2 в качестве версии по умолчанию при установке нового дистрибутива Linux:
wsl --set-default-version 2
4.1 установите нужный дистрибутив через мелкософтовский магазин
https://aka.ms/wslstore
4.2 Затем вам нужно будет создать учетную запись пользователя и пароль для вашего нового дистрибутива Linux .
ПОЗДРАВЛЯЕМ! Вы успешно установили и настроили дистрибутив 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
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 gamesudo 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
группу и добавить своего пользователя:
Game: Perform tasks and rest cool.8 people play!
Play gameСоздайте docker
группу.
$ sudo groupadd docker
Добавьте своего пользователя в docker
группу.
$ sudo usermod -aG docker $USER
Выйдите из системы и войдите снова, чтобы повторно оценить ваше членство в группе.
При тестировании на виртуальной машине может потребоваться перезапустить виртуальную машину, чтобы изменения вступили в силу.
В настольной среде Linux, такой как X Windows, полностью выйдите из сеанса, а затем снова войдите в систему.
В Linux вы также можете запустить следующую команду, чтобы активировать изменения в группах:
$ newgrp docker
Убедитесь, что вы можете запускать 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
Большинство текущих дистрибутивов 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
вместо него.
Game: Perform tasks and rest cool.8 people play!
Play game$ sudo systemctl disable docker.service
$ sudo systemctl disable containerd.service
Если при выполнении команды docker начнет выдавать ошибки, проверьте статус сервиса и запустите
sudo service docker start
.6) настройте сеть
Если вы хотите получить доступ к сетевому приложению, работающему в Windows (например, приложению, работающему на сервере NodeJS или SQL) из вашего дистрибутива Linux (например, Ubuntu), вам необходимо использовать IP-адрес вашего хост-компьютера. Хотя это не распространенный сценарий, вы можете выполнить следующие действия, чтобы заставить его работать.
cat /etc/resolv.conf
nameserver
.На рисунке ниже показан пример этого при подключении к серверу Node.js, или PHP работающему в Windows, через curl.
При использовании удаленных IP-адресов для подключения к вашим приложениям они будут рассматриваться как подключения из локальной сети (LAN).
Это означает, что вам нужно будет убедиться, что ваше приложение может принимать подключения к локальной сети.
Например, вам может понадобиться связать ваше приложение 0.0.0.0
вместо 127.0.0.1
.
В примере приложения Python с использованием Flask, это можно сделать с помощью команды: app.run(host='0.0.0.0')
.
Пожалуйста, помните о безопасности при внесении этих изменений, так как это разрешит подключения из вашей локальной сети.
При использовании распространения WSL 1, если ваш компьютер был настроен для доступа через вашу локальную сеть, то приложения, работающие в WSL, могут быть доступны и в вашей локальной сети.
Это не случай по умолчанию в WSL 2. WSL 2 имеет виртуализированный адаптер Ethernet со своим собственным уникальным IP-адресом. В настоящее время, чтобы включить этот рабочий процесс, вам нужно будет выполнить те же действия, что и для обычной виртуальной машины. (Мы ищем способы улучшить этот опыт.)
Вот пример команды PowerShell для добавления прокси-сервера порта, который прослушивает порт 4001 на хосте и подключает его к порту 4001 к виртуальной машине WSL 2 с IP-адресом 192.168.101.101.
netsh interface portproxy add v4tov4 listenport=4001 listenaddress=0.0.0.0 connectport=4001 connectaddress=192.168.101.101
Дистрибутивы WSL 2 в настоящее время не могут достигать адресов только IPv6.
Убедитесь, что Docker Engine установлен правильно, запустив hello-world
образ.
$ sudo docker run hello-world
wsl2 + nginx ERR_CONNECTION_REFUSED
создайте файл .wslconfig в папке c:\Users\{You_User}\
перезагрузите компьютер
так же после перезапуска еще отдельно перезапустите
через виндовс
wsl --shutdown
Если вам нужно получить доступ к сайту генерируемом на виртуальной машине wsl2
c:\Windows\System32\drivers\etc\hosts
добавьте
Так же не забываем перезапускать систему после каждого этапа
Вот и все, если что то не получается или есть дельные советы пишите в комментариях ниже
я на настройки и поиски нужной информации потратил неделю
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)
Комментарии
Оставить комментарий
Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)
Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)