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 22.12.2016, 14:50:44
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 22.12.2016, 14:53:52
Post #2





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




czemu nie przypiszesz hosta do localhost?
127.0.0.1 twojhost

Przeciez doker wystawia kontenery dostepne na localhost


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
lukasz91
post 22.12.2016, 15:00:01
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 22.12.2016, 15:03:07
Post #4





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
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 wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
lukasz91
post 22.12.2016, 15:17:15
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 smile.gif


--------------------
Go to the top of the page
+Quote Post
nospor
post 22.12.2016, 15:21:10
Post #6





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




Ciesze sie, ze choc troche udalo mi sie ciebie przekonac 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 smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
lukasz91
post 22.12.2016, 15:29:13
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ę 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 22.12.2016, 15:40:33
Post #8





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
lukasz91
post 22.12.2016, 15:57:46
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? 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 22.12.2016, 16:08:55
Post #10





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
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 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? smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
by_ikar
post 22.12.2016, 17:46:13
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 24.12.2016, 15:52:11
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 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 24.12.2016, 16:06:48
Post #13





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




Na linux calkiem szybko wink.gif Ale tobie teraz poki co to wisi na sciaganiu obrazow a nie na ich budowaniu


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
lukasz91
post 24.12.2016, 16:20:18
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 24.12.2016, 16:24:36
Post #15





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




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


A wlasnie, wywal tego windowsa i zainstaluj linux. Ze tez sie tak chlopie meczysz na swieta wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
lukasz91
post 28.12.2016, 16:57:59
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 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 28.12.2016, 21:32:03
Post #17





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
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 wink.gif

ps: nie mam problemow ze skype. Ale ja jade na kubuntu. Co do photoshop: a co ty, grafik?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kapslokk
post 28.12.2016, 22:32:23
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 30.12.2016, 10:10:01
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 30.12.2016, 10:46:40
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 wink.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.04.2024 - 18:09