Jak zainstalować komponowanie i konfigurację Dockera?

Zastanawiasz się, co to jest Docker Compose?

Docker to najpopularniejsze narzędzie do konteneryzacji w świecie DevOps. Ale, co to jest Docker Compose?

Docker Compose służy do uruchamiania aplikacji, które mają wiele kontenerów przy użyciu pliku YAML.

Może istnieć kilka przypadków, w których aplikacja dokująca musi uruchamiać wiele kontenerów dla różnych stosów technologii. Teraz budowanie, uruchamianie i łączenie osobnych plików dokerów dla każdego kontenera może być trudnym zadaniem; w tym miejscu dokowanie-komponowanie pomaga.

Za pomocą jednego i prostego pliku docker-compose.yml możesz budować, łączyć i uruchamiać wszystkie kontenery, uruchamiając jedno polecenie. Jest to bardzo przydatne w aplikacjach korporacyjnych w środowisku produkcyjnym, w których kilka aplikacji działa w kontenerach. Oszczędza dużo czasu, uruchamiając z łatwością setki aplikacji w kontenerach dokerów.

Instalowanie Docker Compose

Docker powinien być już zainstalowany w systemie przed instalacją komponowania.

Uruchom poniższe polecenie, aby zainstalować okno dokowane.

[chroniony e-mailem]: / home / geekflare $ sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s) – $ (uname -m)" -o / usr / local / bin / docker-compose

[sudo] hasło do geekflare:

% Razem% otrzymanych% Xferd Średnia prędkość Czas Czas Czas Prąd

Dload Upload Całkowita wydana prędkość lewa

100 617 0 617 0 0 1209 0 -: -: – -: -: – -: -: – 1209

100 11,1 M 100 11,1 M 0 0 348k 0 0:00:32 0:00:32 -: -: – 476k

Uruchom poniższe polecenie, aby ustawić uprawnienia do plików.

[chroniony e-mailem]: / home / geekflare $ sudo chmod + x / usr / local / bin / docker-compose

Sprawdź, czy został poprawnie zainstalowany, powinien zwrócić wersję skomponowaną w oknie dokowanym.

[chroniony e-mailem]: / home / geekflare $ docker-compose –version

wersja dokowana-skomponuj 1.23.1, kompilacja b02f1306

Poniżej znajduje się lista poleceń, których możesz używać z dokerem-komponuj.

[chroniony e-mailem]: / home / geekflare $ docker-compose

Definiuj i uruchamiaj aplikacje wielokontenerowe za pomocą Dockera.

Stosowanie:

docker-compose [-f…] [opcje] [COMMAND] [ARGS…]

docker-compose -h | –help

Opcje:

-f, –file PLIK Określ alternatywny plik tworzenia

(domyślnie: docker-compose.yml)

-p, –project-name NAZWA Podaj alternatywną nazwę projektu

(domyślnie: nazwa katalogu)

–pełne Pokaż więcej wyników

–poziom logu POZIOM Ustaw poziom logu (DEBUG, INFORMACJA, OSTRZEŻENIE, BŁĄD, KRYTYCZNY)

–no-ansi Nie drukuj znaków kontrolnych ANSI

-v, –version Wydrukuj wersję i zakończ

-H, –host HOST Gniazdo demona do połączenia

–tls Użyj TLS; sugerowane przez –tlsverify

–tlscacert CA_PATH Certyfikaty zaufania podpisane tylko przez ten urząd certyfikacji

–tlscert CLIENT_CERT_PATH Ścieżka do pliku certyfikatu TLS

–tlskey TLS_KEY_PATH Ścieżka do pliku kluczy TLS

–tlsverify Użyj TLS i zweryfikuj pilota

–skip-hostname-check Nie sprawdzaj nazwy hosta demona względem

nazwa określona w certyfikacie klienta

–ŚCIEŻKA katalogu projektu Podaj alternatywny katalog roboczy

(domyślnie: ścieżka do pliku tworzenia)

–kompatybilność Jeśli ustawione, Compose będzie próbował przekonwertować wdrożenie

klucze w plikach v3 do ich odpowiedników innych niż Swarm

Polecenia:

kompilacja Kompilacja lub przebudowa usług

pakiet Wygeneruj pakiet Docker z pliku Utwórz

config Sprawdź poprawność i wyświetl plik tworzenia

utwórz Utwórz usługi

w dół Zatrzymaj i usuń pojemniki, sieci, obrazy i woluminy

zdarzenia Otrzymuj zdarzenia w czasie rzeczywistym z kontenerów

exec Wykonaj polecenie w działającym kontenerze

help Uzyskaj pomoc dotyczącą polecenia

obrazy Lista zdjęć

zabij Zabij pojemniki

logi Wyświetl dane wyjściowe z kontenerów

pauza Wstrzymaj usługi

port Wydrukuj port publiczny dla powiązania portu

ps Lista kontenerów

pull Obrazy serwisowe Pull

obrazy usługi Push Push

uruchom ponownie Uruchom usługi

rm Usuń zatrzymane pojemniki

uruchom Uruchom polecenie jednorazowe

skala Ustaw liczbę kontenerów dla usługi

uruchom Uruchom usługi

stop Zatrzymaj usługi

do góry Wyświetl uruchomione procesy

anuluj Wstrzymaj usługi

w górę Twórz i uruchamiaj kontenery

wersja Pokaż informacje o wersji Docker-Compose

Docker Compose File

Oto przykładowy plik skomponowania dokera, który wykonuje całą magię.

wersja: „3”

usługi:

sieć:

budować: .

porty:

– "5000: 5000"

redis:

wizerunek: "redis: alpejski"

Pierwszy wiersz w tym pliku określa używaną wersję. Liczba ta zależy od silnika Docker zainstalowanego w systemie. Mam zainstalowany Docker 18.09.6, który należy do wersji 3 docker-compose. Sprawdź więcej szczegółów na temat wersji tutaj – https://docs.docker.com/compose/compose-file/compose-versioning/

W tym pliku dokera działają dwie usługi / aplikacje, internetowa i Redis. Usługa sieci Web jest budowana za pomocą pliku dokowania i działa w domyślnym porcie serwera kolby – 5000. Usługa Redis jest uruchamiana poprzez pobieranie obrazu Redis z rejestru centrum dokowania.

Aby wykonać plik docker-compose.yml, musisz uruchomić bardzo proste polecenie: docker-compose up

Docker Compose Workflow

Poniżej znajdują się trzy kroki, aby użyć komponowania dokera.

  1. Utwórz plik docker dla każdej usługi
  2. Utwórz plik docker-compose.yml, aby połączyć wszystkie pliki docker
  3. Uruchom polecenie docker-compose up, aby uruchomić system

Pozwólcie, że podam przykładowy plik skomponowanego dokera, który widzieliśmy wcześniej, i pokażę wam, jak powstanie struktura projektu.

moja aplikacja

| —– web

| ——— Plik Docker

| —– redis

| docker-compose.yml

moja aplikacja to mój główny katalog projektów. Ten katalog zawiera katalogi sieciowe i usługi Redis oraz plik YAML skomponowany przez dokera. Plik Docker usługi internetowej znajduje się w katalogu internetowym. Ponieważ usługa Redis jest pobierana bezpośrednio z centrum dokowania, w katalogu Redis nie jest wymagany plik dokera. Tak wygląda przepływ pracy w oknie dokowanym.

Konteneryzacja aplikacji stosu MEAN przy użyciu narzędzia Docker Compose

Teraz, gdy zrozumiałeś podstawowe pojęcia. Pokażę demo, jak konteneryzować aplikację stosu MEAN przy użyciu docker-compose.

MEAN oznacza MongoDB, Express, Angular i Node.js. Aplikacje korzystające jednocześnie z tych usług są również nazywane aplikacjami MEAN / Full-stack.

W tym pokazie uruchomimy trzy kontenery dokerów:

  • Pojemnik 1 – kątowy
  • Kontener 2 – NodeJS i ExpressJS
  • Kontener 3 – MongoDB

Pobierz pełną aplikację tutaj: http://bit.ly/2St7r3A (nie testowano pod kątem produkcji)

Tak będzie wyglądał mój plik docker-compose.yml do uruchomienia tych trzech kontenerów:

wersja: „3”

usługi:

kątowy:

build: klient kątowy

porty:

– "4200: 4200"

wolumeny:

– ./ angular-client /: / var / www / app

wyrazić:

build: express-server

porty:

– "3000: 3000"

wolumeny:

– ./ express-server /: / var / www / app

spinki do mankietów:

– Baza danych

Baza danych:

obraz: mongo

porty:

– "27017: 27017"

  • Pierwszy wiersz określa używaną wersję komponowania dokera
  • Prowadzimy trzy usługi – kątowe, ekspresowe i bazy danych
  • Usługa kątowa zostanie zbudowana przy użyciu pliku dokującego. Będzie działał na porcie 4200, a wolumin aplikacji to / var / www / app
  • Usługa ekspresowa zostanie zbudowana przy użyciu pliku dokującego. Serwer ekspresowy będzie działał na porcie 3000, a wolumin to / var / www / app
  • Usługa bazy danych pobierze obraz MongoDB z dockerhub i uruchomi go pod postem 27017

Wypakuj projekt do katalogu domowego i przejdź do katalogu angular-client.

[chroniony e-mailem]: ~ $ cd znaczy

[chroniony e-mailem]: ~ / mean $ cd angular-client

Uruchom poniższe polecenie, jeśli nie masz zainstalowanego menedżera pakietów węzłów (npm) w systemie (zignoruj, jeśli jest zainstalowany).

[chroniony e-mailem]: ~ / mean / angular-client $ sudo apt install npm

[sudo] hasło do geekflare:

Czytanie list pakietów … Gotowe

Budowanie drzewa zależności

Odczytywanie informacji o stanie … Gotowe

Zostaną zainstalowane następujące dodatkowe pakiety:

gyp javascript-common libc-ares2 libhttp-parser2.8 libjs-async libjs-inherits libjs-is-typedarray

libjs-jquery libjs-node-uuid libjs-underscore libssl1.0-dev libuv1 libuv1-dev node-abbrev node-ajv

node-ansi node-ansi-color-table node-ansi-regex node-ansi-styles node-ansistyles node-aproba node-archy

node-are-we-there-there-node-async node-aws-sign2 node-balance-match-node-block-stream node-bluebird

node-boom węzeł-klamra-ekspansja wbudowane moduły węzła-camelcase węzeł-bez obudowy węzeł-kreda node-cliui

node-clone node-co-node-color-convert nazwa-koloru-węzła-połączony-strumień-węzła-mapa-węzła

node-config-chain node-console-control-strings node-cookie-jar jar-copy-concurrently node-core-util-is

node-yallist node-yargs node-yargs-parser nodejs nodejs-dev nodejs-doc

Sugerowane pakiety:

apache2 | lighttpd | httpd node-aws-sign node-oauth-sign węzeł-http-podpis debhelper

Zostaną zainstalowane następujące NOWE pakiety:

gyp javascript-common libc-ares2 libhttp-parser2.8 libjs-async libjs-inherits libjs-is-typedarray

libjs-jquery libjs-node-uuid libjs-underscore libssl1.0-dev libuv1 libuv1-dev node-abbrev node-ajv

node-ansi node-ansi-color-table node-ansi-regex node-ansi-styles node-ansistyles node-aproba node-archy

node-are-we-there-there-node-async node-aws-sign2 node-balance-match-node-block-stream node-bluebird

0 zaktualizowanych, 212 nowo zainstalowanych, 0 do usunięcia i 233 niezaktualizowanych.

Potrzebujesz uzyskać 10,5 MB archiwów.

Po tej operacji zostanie wykorzystane 53,6 MB dodatkowego miejsca na dysku.

Czy chcesz kontynuować? [T / n] T

Uzyskaj: 1 http://us.archive.ubuntu.com/ubuntu kosmiczny / wszechświat amd64 gyp wszystkie 0,1 + 20180428git4d467626-1 [237 kB]

Uzyskaj: 2 http://us.archive.ubuntu.com/ubuntu cosmic / main amd64 javascript-common wszystkie 11 [6 066 B]

Uzyskaj: 3 http://us.archive.ubuntu.com/ubuntu cosmic / main amd64 libhttp-parser2.8 amd64 2.8.1-1 [20,8 kB]

Uzyskaj: 4 http://us.archive.ubuntu.com/ubuntu cosmic / universe amd64 libjs-async all 0.8.0-3 [25,4 kB]

Uzyskaj: 5 http://us.archive.ubuntu.com/ubuntu cosmic / universe amd64 libjs-is-typedarray all 1.0.0-2 [2934 B]

Uzyskaj: 6 http://us.archive.ubuntu.com/ubuntu cosmic / main amd64 libjs-jquery all 3.2.1-1 [152 kB]

Uzyskaj: 7 http://us.archive.ubuntu.com/ubuntu kosmiczny / wszechświat amd64 libjs-node-uuid wszystkie 1.4.7-5 [11,5 kB]

Uzyskaj: 8 http://us.archive.ubuntu.com/ubuntu cosmic / main amd64 libjs-podkreślenie wszystkich 1.8.3 ~ dfsg-1 [59,9 kB]

Uzyskaj: 9 http://us.archive.ubuntu.com/ubuntu cosmic-updates / main amd64 libssl1.0-dev amd64 1.0.2n-1ubuntu6.2 [1 366 kB]

Pobrano 10,5 MB w 1min 34s (112 kB / s)

Wydobywanie szablonów z paczek: 100%

Wybór poprzednio niezaznaczonego pakietu gyp.

(Czytanie bazy danych … 180130 plików i katalogów aktualnie zainstalowanych.)

Przygotowanie do rozpakowania … / 000-gyp_0.1 + 20180428git4d467626-1_all.deb …

Rozpakowywanie gyp (0,1 + 20180428git4d467626-1) …

Wybór poprzednio niezaznaczonego pakietu javascript-common.

Przygotowywanie do rozpakowania … / 001-javascript-common_11_all.deb …

Rozpakowywanie javascript-common (11) …

Zaznaczanie wcześniej niezaznaczonego pakietu libhttp-parser2.8: amd64.

Przygotowanie do rozpakowania … / 002-libhttp-parser2.8_2.8.1-1_amd64.deb …

Konfigurowanie węzła fstream-ignore (0.0.6-2) …

Konfiguracja węzła gyp (3.6.2-2) …

Konfigurowanie węzłów (10.0.3-2) …

Konfigurowanie npm (5.8.0 + ds-2) …

Przetwarzanie wyzwalaczy dla libc-bin (2.28-0ubuntu1) …

W katalogu angular-client i uruchom npm install.

[chroniony e-mailem]: ~ / mean / angular-client $ npm install

> [chroniony e-mailem] install / home / geekflare / mean / angular-client / node_modules / uws

> przebudowa węzła-gyp > build_log.txt 2>&1 || wyjście 0

> [chroniony e-mailem] install / home / geekflare / mean / angular-client / node_modules / node-sass

> skrypty węzłów / install.js

Pobieranie pliku binarnego z https://github.com/sass/node-sass/releases/download/v4.7.2/linux-x64-57_binding.node

Pobieranie zakończone ] – :

Plik binarny zapisany w /home/geekflare/mean/angular-client/node_modules/node-sass/vendor/linux-x64-57/binding.node

Buforowanie pliku binarnego do /home/geekflare/.npm/node-sass/4.7.2/linux-x64-57_binding.node

> [chroniony e-mailem] postinstall / home / geekflare / mean / angular-client / node_modules / webpack / node_modules / uglifyjs-webpack-plugin

> node lib / post_install.js

> [chroniony e-mailem] postinstall / home / geekflare / mean / angular-client / node_modules / node-sass

> skrypty węzłów / build.js

Plik binarny znajduje się w /home/geekflare/mean/angular-client/node_modules/node-sass/vendor/linux-x64-57/binding.node

Testowanie binarne

Binarny jest w porządku

dodano 1457 pakietów od 1250 autorów w 80.009s

Teraz przejdź do katalogu express i uruchom npm install.

[chroniony e-mailem]: ~ / mean / angular-client $ cd ..

[chroniony e-mailem]: ~ / mean $ cd express-server /

[chroniony e-mailem]: ~ / mean / express-server $ npm install

Teraz, gdy wszystko jest ustawione, nadszedł czas na uruchomienie pliku docker-compose.yml, który uruchomi wszystkie kontenery dokujące i uruchomi aplikację stosu MEAN.

[chroniony e-mailem]: ~ / mean / express-server $ cd ..

[chroniony e-mailem]: ~ / mean $ doker-skomponuj

Tworzenie sieci "mean_default" z domyślnym sterownikiem

Budowa kątowa

Krok 1/8: Z węzła: 8

8: Pobieranie z biblioteki / węzła

a4d8138d0f6b: Pull complete

dbdc36973392: Zakończono pobieranie

f59d6d019dd5: Pull complete

aaef3e026258: Pull complete

6e454d3b6c28: Pociągnięcie zakończone

c717a7c205aa: Pull complete

37add8e5ac11: Pull complete

0314ab675d31: Pull complete

012886364728: Pull complete

Podsumowanie: sha256: 310db2abcff097ef44af205d81833282a6d5471002a1b59d7b7459a74152c856

Status: Pobrano nowszy obraz dla węzła: 8

—> 8e45c884a32e

Krok 2/8: URUCHOM mkdir -p / var / www / app

—> Działa w c70a0cab7994

Usuwanie pojemnika pośredniego c70a0cab7994

—> 001c5e840b24

Krok 3/8: WORKDIR / var / www / app

—> Działa w 622ebdc41b2f

Usuwanie pojemnika pośredniego 622ebdc41b2f

—> baa2e2347259

Krok 4/8: KOPIUJ pakiet.json / var / www / app

—> 5b97543befab

Krok 5/8: URUCHOM instalację npm

—> Działa w 73e3d8b7a701

> [chroniony e-mailem] install / var / www / app / node_modules / uws

> przebudowa węzła-gyp > build_log.txt 2>&1 || wyjście 0

> [chroniony e-mailem] install / var / www / app / node_modules / node-sass

> skrypty węzłów / install.js

Pobieranie pliku binarnego z https://github.com/sass/node-sass/releases/download/v4.12.0/linux-x64-57_binding.node

Pobieranie zakończone

Plik binarny zapisany w /var/www/app/node_modules/node-sass/vendor/linux-x64-57/binding.node

Buforowanie pliku binarnego do /root/.npm/node-sass/4.12.0/linux-x64-57_binding.node

> [chroniony e-mailem] postinstall / var / www / app / node_modules / core-js

> skrypty węzłów / postinstall || Echo "ignorować"

Projekt potrzebuje twojej pomocy! Proszę rozważyć wsparcie core-js na Open Collective lub Patreon:

> https://opencollective.com/core-js

> https://www.patreon.com/zloirock

> [chroniony e-mailem] postinstall / var / www / app / node_modules / webpack / node_modules / uglifyjs-webpack-plugin

> node lib / post_install.js

> [chroniony e-mailem] postinstall / var / www / app / node_modules / node-sass

> skrypty węzłów / build.js

Plik binarny znajduje się w /var/www/app/node_modules/node-sass/vendor/linux-x64-57/binding.node

Testowanie binarne

Binarny jest w porządku

dodał 1606 pakietów od 1329 autorów i skontrolował 15092 pakietów w 112.427

Usuwanie pojemnika pośredniego 73e3d8b7a701

—> 55790d2fae93

Krok 6/8: KOPIUJ. / var / www / app

—> 61537aa487f4

Krok 7/8: NARAŻENIE 4200

—> Działa w 632eedc35a45

Usuwanie pojemnika pośredniego 632eedc35a45

—> 51e75b0e2ebe

Krok 8/8: CMD ["npm", "początek"]

—> Działa w 36bbb12a0d38

Usuwanie pojemnika pośredniego 36bbb12a0d38

—> 9f8d61db600c

Pomyślnie zbudowano 9f8d61db600c

Pomyślnie otagowano mean_angular: najnowszy

Ciągnięcie bazy danych (mongo :)…

najnowsze: Pobieranie z biblioteki / mongo

35b42117c431: Pociągnięcie zakończone

ad9c569a8d98: Pull complete

293b44f45162: Pull complete

0c175077525d: Pull complete

4e73525b52ba: Pull complete

a22695a3f5e9: Pull complete

c5175bcf2977: Pull complete

3e320da07793: Pull complete

01c6db6b2b5a: Pull complete

3bd6e9d03e78: Pull complete

e03dcf51513f: Pull complete

c1956a9e136a: Pull complete

4c35cf22b1d5: Pull complete

Budynek ekspresowy

Krok 1/9: Z węzła: 8

—> 8e45c884a32e

Krok 2/9: URUCHOM mkdir -p / var / www / app

—> Korzystanie z pamięci podręcznej

—> 001c5e840b24

Krok 3/9: WORKDIR / var / www / app

—> Korzystanie z pamięci podręcznej

—> baa2e2347259

Krok 4/9: SKOPIUJ pakiet.json / var / www / app

—> 0232ad53c679

Krok 5/9: URUCHOM instalację npm

—> Działa w c309bf6f218e

dodał 128 pakietów od 151 autorów i skontrolował 233 pakiety w 9555

Usuwanie pojemnika pośredniego c309bf6f218e

—> 49e652884562

Krok 6/9: URUCHOM npm zainstaluj -g nodemon

—> Działa w 0ed5d7f3642b

/ usr / local / bin / nodemon -> /usr/local/lib/node_modules/nodemon/bin/nodemon.js

> [chroniony e-mailem] postinstall / usr / local / lib / node_modules / nodemon

> węzeł bin / postinstall || wyjście 0

Uwielbiasz nodemona? Możesz teraz wspierać projekt poprzez otwarty kolektyw:

> https://opencollective.com/nodemon/donate

+ [chroniony e-mailem]

dodano 221 pakietów od 128 autorów w 18,856s

Usuwanie pojemnika pośredniego 0ed5d7f3642b

—> 32c55606f35e

Krok 7/9: KOPIUJ. / var / www / app

—> a618b38a2812

Krok 8/9: EKSPOZYCJA 3000

—> Działa w bea389ab3ef1

Usuwanie pojemnika pośredniego bea389ab3ef1

—> 684bbfb31371

Krok 9/9: CMD ["npm", "początek"]

—> Działa w 9aa1b72e4a4e

Usuwanie pojemnika pośredniego 9aa1b72e4a4e

—> 35dcb3df9806

Pomyślnie zbudowano 35dcb3df9806

Pomyślnie otagowano mean_express: najnowszy

Tworzenie mean_angular_1_de44b3f5b988 … gotowe

Tworzenie mean_database_1_708f8f9c3c33 … gotowe

Tworzenie mean_express_1_b57a483a72ee … gotowe

Dołączanie do mean_angular_1_f257e2233ef1, mean_database_1_ccc5c677e00b, mean_express_1_574f07b045fc

angular_1_f257e2233ef1 |

angular_1_f257e2233ef1 | > [chroniony e-mailem] start / var / www / app

angular_1_f257e2233ef1 | > ng służyć -H 0.0.0.0

angular_1_f257e2233ef1 |

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.933 + 0000 I CONTROL [main] Automatyczne wyłączanie TLS 1.0, aby wymusić włączenie TLS 1.0, określ –sslDisabledProtocols ‘none’

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.937 + 0000 I CONTROL [inicjandlisten] Uruchomienie MongoDB: pid = 1 port = 27017 dbpath = / data / db 64-bit host = f74b56905249

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.937 + 0000 I CONTROL [lista początkowa] db wersja v4.0.10

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.937 + 0000 I CONTROL [inicjandlisten] git version: c389e7f69f637f7a1ac3cc9fae843b635f20b766

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.937 + 0000 I CONTROL [inicjandlisten] Wersja OpenSSL: OpenSSL 1.0.2g 1 marca 2016

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.937 + 0000 I CONTROL [initandlisten] przydział: tcmalloc

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.937 + 0000 I KONTROLA modułów [initandlisten]: brak

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.937 + 0000 I CONTROL [initandlisten] środowisko kompilacji:

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.937 + 0000 I CONTROL [inicjandlisten] distmod: ubuntu1604

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.937 + 0000 I CONTROL [inicjandlisten] distarch: x86_64

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.937 + 0000 I CONTROL [lista początkowa] target_arch: x86_64

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.937 + 0000 I CONTROL [opcje listy początkowej]: {net: {bindIpAll: true}}

express_1_574f07b045fc |

express_1_574f07b045fc | > [chroniony e-mailem] start / var / www / app

express_1_574f07b045fc | > nodemon ./bin/www

express_1_574f07b045fc |

express_1_574f07b045fc | [nodemon] 1.19.1

express_1_574f07b045fc | [nodemon], aby w dowolnym momencie zrestartować, wpisz `rs`

express_1_574f07b045fc | [nodemon] ogląda: *. *

express_1_574f07b045fc | [nodemon] uruchamiając `node. / bin / www`

database_1_ccc5c677e00b | 2019-07-20T22: 33: 33.543 + 0000 I SIEĆ [słuchacz] połączenie zaakceptowane od 172.19.0.4:38958 # 1 (1 połączenie jest teraz otwarte)

database_1_ccc5c677e00b | 2019-07-20T22: 33: 33.560 + 0000 I SIEĆ [conn1] odebrała metadane klienta od 172.19.0.4:38958 conn1: {driver: {name: "nodejs", wersja: "3.0.1" }, os: {type: "Linux", imię: "linux", architektura: "x64", wersja: "4.18.0-25-ogólny" }, Platforma: "Node.js v8.16.0, LE, mongodb-core: 3.0.1" }

express_1_574f07b045fc | mongodb: podłączony

angular_1_f257e2233ef1 | ** Serwer NG Live Development Server nasłuchuje na 0.0.0.0:4200, otwórz przeglądarkę na http: // localhost: 4200 / **

angular_1_f257e2233ef1 | Data: 2019-07-21T11: 21: 03.868Z – Hash: 639d9a968476ed482b5c – Czas: 336ms

angular_1_f257e2233ef1 | 4 niezmienione kawałki

angular_1_f257e2233ef1 | chunk {main} main.bundle.js (main) 19,8 kB [initial] [renderowane]

angular_1_f257e2233ef1 |

angular_1_f257e2233ef1 | webpack: Kompilacja powiodła się.

angular_1_f257e2233ef1 | webpack: Kompilowanie…

angular_1_f257e2233ef1 | Data: 2019-07-21T11: 25: 15.661Z – Hash: e5a2b1c1afe0deb396c3 – Czas: 251ms

angular_1_f257e2233ef1 | 4 niezmienione kawałki

angular_1_f257e2233ef1 | chunk {main} main.bundle.js (main) 19,8 kB [initial] [renderowane]

angular_1_f257e2233ef1 |

angular_1_f257e2233ef1 | webpack: Kompilacja powiodła się.

Przejdź do przeglądarki i sprawdź https: // localhost: 4200, aplikacja będzie działać.

komponowanie kątowe - doker

Iść do https: // localhost: 3000 aby sprawdzić, czy działa serwer ekspresowy.

ekspresowe - komponowanie dokerów

Możesz także uruchomić polecenie obrazów dokowanych, aby zobaczyć, które wszystkie obrazy są obecne w oknie dokowanym.

[chroniony e-mailem]: ~ / mean $ obrazy dokerów

TAG REPOZYTORYJNY ID OBRAZU TWORZONY ROZMIAR

mean_express najnowsze 35dcb3df9806 14 godzin temu 923 MB

mean_angular najnowsze 9f8d61db600c 14 godzin temu 1.29GB

węzeł 8 8e45c884a32e 9 dni temu 895 MB

mongo najnowsze 785c65f61380 2 tygodnie temu 412 MB

Uruchom poniższe polecenie, aby zobaczyć kontenery działające w oknie dokowanym.

[chroniony e-mailem]: ~ / mean $ docker ps

ID KONTENERA OBRAZ KOMUNIKAT STWORZYŁ STAN NAZWY PORTÓW

681c9c34bee2 mean_express        "docker-entrypoint.s…"   14 godzin temu Do 14 godzin 0.0.0.0:3000->3000 / tcp mean_express_1_574f07b045fc

f74b56905249 mongo               "docker-entrypoint.s…"   14 godzin temu Do 14 godzin 0.0.0.0:27017->27017 / tcp mean_database_1_ccc5c677e00b

260ef1e52dab mean_angular        "docker-entrypoint.s…"   14 godzin temu Do 14 godzin 0.0.0.0:4200->4200 / tcp mean_angular_1_f257e2233ef1

Teraz wszystkie trzy kontenery dokujące są już uruchomione.

Docker-compose z łatwością zadbał o wszystkie kontenery. To był prosty przykład na uruchomienie trzech kontenerów; możesz sobie wyobrazić, jak przydatne będzie, jeśli aplikacje będą musiały zostać uruchomione na setkach kontenerów. Śmiało i wypróbuj, jak to działa.

TAGI:

  • Doker

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Комментариев нет, будьте первым кто его оставит

    Комментарии закрыты.