Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [docker] Przypisanie różnych IP dla kontenerów
lukasz91
post
Post #1





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

Ostrzeżenie: (0%)
-----


Zapoznaję się z dockerem i mam jeden problem. Dla każdego kontenera chcę mieć inne IP. Różne IP potrzebne mi do przypisania domeny w pliku hosts (win 10). Da się to jakoś rozwiązać? W sieci nic nie znalazłem. Docker zainstalowany na win10.
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




czemu nie przypiszesz hosta do localhost?
127.0.0.1 twojhost

Przeciez doker wystawia kontenery dostepne na localhost
Go to the top of the page
+Quote Post
lukasz91
post
Post #3





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

Ostrzeżenie: (0%)
-----


Chodzi o to, że mam dodane 3 przykładowe kontenery. Adres w przeglądarce wygląda tak:
http://192.168.99.100:12/

Problem w tym, ze każdy kontener ma takie samo IP. Różne są tylko porty.

Chcę podpiąć różne domeny pod kontenery, np. projekt1.dev, projekt2.dev itd. Żeby zrobić to w pliku hosts kontenery nie mogą mieć takiego samego IP.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Jesli twoje projekty sie w zaden sposob nie komunikuja ze soba to zrob jak mowilem. Startujac kontener mowisz ze ma sie mapowac na port 80 localhost i po sprawie. Pracujac nad jednym projektem startujesz jeden stopujesz drugie . Przerzucasz sie na drugi to stopujesz pierwszy i startujesz drugi.

Jesli zas projekty maja sie widziec nawzajem to polecam docker-compose. Choc nawet i bez tego mozesz przeciez odpalac jeden kontener na dwa rozne projekty. Przeciez konter sluzy tylko i wylacznie do odpalenia nginx/apache. Kod moze miec z roznych zrodel.

Chyba poprostu przekombinowales (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
lukasz91
post
Post #5





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

Ostrzeżenie: (0%)
-----


Jeżeli nie ma żadnego prostego rozwiązania, zrobię jak piszesz. W sumie komunikacja będzie tylko pomiędzy 2 kontenerami (mysql + konkretny projekt). W takim wypadku dla kontenera z mysql ustawię inny port (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Ciesze sie, ze choc troche udalo mi sie ciebie przekonac (IMG:style_emoticons/default/smile.gif)

Nadal jednak wydaje sie, ze cos nie do konca robisz jak trzeba.
Z twojego opisu wynika, ze masz jeden mysql na dwa projekty - ok. moze tak byc. Po co w takim razie masz zmieniac port dla mysql?

Opisz moze dokladnie jak wyglada twoja sytuacja kontenerowo-projektowa bo odnosze wrazenie ze mozna by to poprawic (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
lukasz91
post
Post #7





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

Ostrzeżenie: (0%)
-----


Bardzo możliwe, że da się zrobić lepiej. Docker dopiero poznaję (IMG:style_emoticons/default/tongue.gif) Wcześniej używałem xamp.

Na co dzień będę mieć kilka projektów. Dwie aplikacje napisane w PHP + aktualnie wdrażane strony pod WP. Wydaje mi się, że najbardziej sensownie będzie stworzyć jeden kontener z mysql/phpmyadmin. A dla każdego projektu osobny kontener z apache/php.
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Nie.

Idea docker jest prosta: jeden proces - jeden kontener.
mysql - jeden kontener
php - jeden kontener
apache(proponuje przesiasc sie na nginx) - jeden kontener.

By moc tym wszystkim ladnie zarzadzac polecam
docker-compose
to naprawde zajebiscie ulatwia wszystko.

Dla kazdego projektu tworzysz konfiguracje z 3 kontenerow (wersja podstawowa rzecz jasna. Jak dojda inne rzeczy to kontenerow bedzie wiecej)
Pracujac nad danym projektem poprostu piszesz
docker-compose up
i wstaja ci wszystkie niezbedne kontenery dla tego projektu.

Tutaj opisalem wstepnie jak sie pracuje z docker-compose
http://nospor.pl/docker-zaprzegamy-kontenery-do-pracy.html
pisalem to gdy sam zaczynalem, teraz juz stosuje troche inna konfiguracje, nie mniej jednak artykul w miare dobrze wyjasnia podstawy docker-compose.

Dzieki temu masz porzadek w konfiguracji i w systemie i wszystko lezy gdzie ma lezec i latwo mozesz podmieniac klocki.
Go to the top of the page
+Quote Post
lukasz91
post
Post #9





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

Ostrzeżenie: (0%)
-----


Czyli powinienem stworzyć:
* 1 kontener z serwerem apache - jedna aplikacja stoi na apache i na ten moment nie mam możliwości zmiany tego. Nginx sobie postawię osobno do nauki/testowania
* 1 kontener z mysql
* 1 kontener z phpmyadmin
* 1 obraz dla każdej wersji PHP

I teraz dla każdego projektu odpalam kontener z obrazu odpowiedniej wersji PHP. Kontener łączę z 3 kontenerami wymienionymi wyżej. Jeżeli w przyszłości będę czegoś potrzebował dodatkowo, stawiam osobny kontener.

Dobrze teraz rozumiem? (IMG:style_emoticons/default/smile.gif) Mając obrazy jestem w stanie szybko postawić sobie środowisko pracy na dowolnym systemie.
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




phpmyadmin - po co sie uzerac z tym badziedziem, skoro masz cala mase darmowych GUI?

Cytat
I teraz dla każdego projektu odpalam kontener z obrazu odpowiedniej wersji PHP. Kontener łączę z 3 kontenerami wymienionymi wyżej. Jeżeli w przyszłości będę czegoś potrzebował dodatkowo, stawiam osobny kontener.
Mozesz, ale to nadal nie to (IMG:style_emoticons/default/wink.gif)
Kazdy projekt powinien miec swoj wlasny zestaw kontenerow. Ty zas probujesz stworzyc uniwersalne kontenery ktore beda wykorzystywane przez kazdy z projektow. No mozna i tak, ale czyz nie lepiej od razu zaczac pisac porzadnie skoro jestes wlasnie na etapie nauki? (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
by_ikar
post
Post #11





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Docker działa w taki sposób że każdy kontener ma swoje osobne IP i jest to fundamentalna zasada działania dockera. Jeżeli każde ma takie samo IP tylko różne porty, to albo:

- masz jeden kontener a w nim wszystko (aka naleciałość vagranta)
- windows ma taki sam problem jak maki z dockerem (jedyny dostęp do kontenera to bindowanie go do localhosta, bo nie ma dostępu do sieci docker0)
- używasz virtualboxa w którym masz tylko jedną maszynę i tylko jeden IP
- połączenie kilku/wszystkich powyższych

Jeżeli którykolwiek z powyższych ciebie dotyczy, to zrób tak jak pisze @nospor. Może początkowo ciężko zrozumieć dlaczego tak się robi a nie inaczej, tak później bardzo wiele rzeczy się klaruje i każde inne sposoby są zwyczajnie złe.
Go to the top of the page
+Quote Post
lukasz91
post
Post #12





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

Ostrzeżenie: (0%)
-----


@nospor
Utworzę sobie obrazy odpowiednie i na ich bazie będę tworzyć kontenery dla projektu

@by_ikar
Mam testowo 3 kontenery, więc to odpada. Punkty 2 i 3 prawdopodobne (IMG:style_emoticons/default/smile.gif)

Zrobię tak jak mospor radził. Dzięki za pomoc.

Mam taki DockerFile:
Kod
# A basic apache server. To use either add or bind mount content under /var/www
FROM phusion/baseimage

MAINTAINER Lukasz <kontakt@lukasz-socha.pl> version: 0.1

RUN apt-get update && \
    apt-get install -y apache2 && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2
ENV APACHE_PID_FILE /var/run/apache2.pid
ENV APACHE_RUN_DIR /var/run/apache2
ENV APACHE_LOCK_DIR /var/lock/apache2
ENV APACHE_LOG_DIR /var/log/apache2

RUN mkdir -p /var/run /var/lock/apache2 /var/log

EXPOSE 80

CMD ["apache2","-D","FOREGROUND"]


W PowerSHell ciągle mam:

Kod
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.

PS C:\Program Files\Docker Toolbox> cd Z:\Projekty\dev
PS Z:\Projekty\dev> docker build -t apache2 images/apache2
Sending build context to Docker daemon  2.56 kB
Step 1 : FROM phusion/baseimage
latest: Pulling from phusion/baseimage

f069f1d21059: Already exists
ecbeec5633cf: Already exists
ea6f18256d63: Already exists
54bde7b02897: Already exists
a3ed95caeb02: Already exists
ce9e695a6234: Waiting


Ile taki obraz powinien się tworzyć?
Go to the top of the page
+Quote Post
nospor
post
Post #13





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Na linux calkiem szybko (IMG:style_emoticons/default/wink.gif) Ale tobie teraz poki co to wisi na sciaganiu obrazow a nie na ich budowaniu
Go to the top of the page
+Quote Post
lukasz91
post
Post #14





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

Ostrzeżenie: (0%)
-----


W podglądzie sieci nie widzę by coś się pobierało. Już grubo ponad godzinę czekam, a internetu nie mam najwolniejszego... ~8 Mb/s
Go to the top of the page
+Quote Post
nospor
post
Post #15





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Moze cos u nich na linii. Poprostu przerwij i spobuj ponownie. Nie ma sensu czekac godzine (IMG:style_emoticons/default/smile.gif) Pobieranie obrazow to moment (no, w zaleznosci od neta, ale zawsze jest procent pokazany, przynajmniej na linux (IMG:style_emoticons/default/wink.gif) )


A wlasnie, wywal tego windowsa i zainstaluj linux. Ze tez sie tak chlopie meczysz na swieta (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
lukasz91
post
Post #16





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

Ostrzeżenie: (0%)
-----


Obraz już się ładnie pobiera. Kolejnym problemem jest brak możliwości montowania folderów spoza c:\Users... Docker nie lubi się zbytnio z Windowsem (IMG:style_emoticons/default/tongue.gif)

@nospor
Tylko na linuksie znowu nie odpalę Photoshopa i często miałem problemy np. z Skype. Mam Mint jako 2 system, ale nie uśmiecha mi się skakanie z systemu na system podczas pracy.
Go to the top of the page
+Quote Post
nospor
post
Post #17





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Moj "szef" tez uzywa windy. Ale gdy pracuje z naszymi projektami odpala linux na virtualbox i tam uzywa docker dla naszych projektow. Jakos zyje (IMG:style_emoticons/default/wink.gif)

ps: nie mam problemow ze skype. Ale ja jade na kubuntu. Co do photoshop: a co ty, grafik?
Go to the top of the page
+Quote Post
kapslokk
post
Post #18





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat
Tylko na linuksie znowu nie odpalę Photoshopa

Zależy którego, u mnie CS6 działa bez problemu ;]
Go to the top of the page
+Quote Post
vokiel
post
Post #19





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Jeśli działasz na Windows i natywny Docker nie działa za dobrze to możesz skorzystać z docker-machine. W skrócie jest to Docker w obrazie maszyny wirtualnej (domyślnie VirtualBox). Czyli odpalasz VM, na niej Dockera, nazwy hostów mapujesz do IP VMki zamiast do swojego lokalnego IP jak w przypadku natywnego Dockera.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #20





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


@vokiel Docker natywnie działa tylko na linuksie (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
vokiel
post
Post #21





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


@Pyton_000 nie jesteś na bieżąco

Cytat
Docker for Windows is our newest offering for PCs. It runs as a native Windows application and uses Hyper-V to virtualize the Docker Engine environment and Linux kernel-specific features for the Docker daemon.

https://docs.docker.com/engine/installation/windows/

Cytat
Docker for Mac is our newest offering for the Mac. It runs as a native Mac application and uses xhyve to virtualize the Docker Engine environment and Linux kernel-specific features for the Docker daemon.

https://docs.docker.com/engine/installation/mac/
Go to the top of the page
+Quote Post
Pyton_000
post
Post #22





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Taaa... Faktycznie ale co z tego:
Cytat
Requirements

64bit Windows 10 Pro, Enterprise and Education (1511 November update, Build 10586 or later). In the future we will support more versions of Windows 10.
The Hyper-V package must be enabled. The Docker for Windows installer will enable it for you, if needed. (This requires a reboot).
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 16:34