Inceptor est scriptor Libri Docker Componere

Auctor articuli, translationis de qua hodie agimus, dicit destinatum esse iis tincidunt qui discere volunt Docker Componere et movere ad primum applicationem clientis sui Docker utendi. Ponitur lector huius materiae nota cum fundamentis Docker. Si hoc non fit, vide potes haec serie materiae on haec post tegumentum Docker basics cum fundamentis Kubernetes et haec articulus pro incipientibus.

Inceptor est scriptor Libri Docker Componere

Quid est Docker Componere?

Docker Componere instrumentum cum Docker inclusum est. Designatur quaestiones solvendas relatas instruere instruere.

Dum fundamenta Docker discit, creari licuit simplicium applicationum quae autonome operantur et non pendent, exempli gratia, in fontibus extraneis data vel in aliquibus officiis. In usu tales applicationes rarae sunt. Incepta realia plerumque implicant totam summam applicationum operantium.

Unde scis si opus est utere Docker Componere cum explicando consilium? Est valde simplex. Si pluribus officiis uteris ad hoc opus explendum, tunc Docker Componere in promptu potest venire. Exempli gratia, in situ ubi website creare debet coniungere database ut users authenticitatis. Tale consilium in duobus officiis consistere potest, unum quod situs operationem praestat, et alterum quod ad datorum conservationem pertinet.

Docker Componere technologiam, eam modo simpliciori describere, permittit te multa officia uno mandato mittere.

Differentia inter Docker et Docker compone

Docker adhibetur ad singula vasa (officia) disponere quae applicationem faciunt.

Docker Componere adhibetur ut multa vasa simul curet quae applicationem faciunt. Hoc instrumentum easdem facultates ac Docker praebet, sed te permittit ut pluribus applicationibus implicatis laborare.

Inceptor est scriptor Libri Docker Componere
Docker (uno vase) et Docker compone (multa vasa)

Typical usus causa pro Docker compone

Docker Componere est in manibus dextrarum instrumentum validissimum quod permittit ut celerrime applicationes cum architecturae complexis explicandis. Nunc vide exemplum practici usus Docker Componere, cuius analysis permittet vos aestimare beneficia quae vobis utens Docker Componere dabit.

Finge te elit telae project. Hoc consilium duo websites includit. Primum negotium populo concedit ut cum paucis clicks de thesauris online creandis. Secundum est, ministros intendebat. Hi duo sites penitus cum eadem database.

Propositum tuum magis ac magis populare fit, et evenit ut potestas servientis in qua currit, satis non sit. Quam ob rem placuit tibi totum consilium ad aliam machinam movere.

Infeliciter, simili Docker Componere non es usus. Ergo operas singulatim transferre et reconfigure habebis, sperans te nihil in processu oblivisci posse.

Si Docker Componere uteris, deinde consilium tuum ad novum servo movens est res quae per pauca imperia currit solvi potest. Ut translationem propositi ad novum locum perficias, tantum opus est ut aliquas unctiones facere et in tergum exemplar datorum novo servo imponere.

Developing a client-server application using Docker Componere

Nunc ut scias quid nos utamur Docker Compone pro, tempus est ut primum clienti-distorem applicationem hoc instrumento utatur. Nempe loquimur de parva pagina in Pythone explicando quae tabellam cum fragmento textus praeponere potest. Haec fasciculus rogatur a servo programmatis (clientis), etiam Pythone scriptus. Recepta tabella a servo, programma ostendit textum repositum in velo.

Quaeso note nos ponimus te Docker fundamentalem intellectum habere et te iam Docker suggestum inauguratum habere.

Sit scriptor satus opus in project.

▍1. Creando Project

Ad primum clientis-servientem applicationem aedifices, moneo te incipe creando consilium folder. Continere debet tabulas sequentes et folder:

  • lima docker-compose.yml. Hoc est Docker Componere fasciculum, quod continebit instructiones quae opus sunt ad officia incipere et configurare.
  • folder server. Documenta continebit necesse est ut servo currens contineat.
  • folder client. Cliens applicationis fasciculi hic collocabuntur.

Quam ob rem, contenta in tabulario tuo principale folder ut hoc spectare debent:

.
├── client/
├── docker-compose.yml
└── server/
2 directories, 1 file

▍2. Creando servo

Hic, in processu de servo creandi, quaedam praecipua quae de Docker attingemus.

2a. partum files

Ad folder server et sequentes ordines in ea crea;

  • lima server.py. Is codicem servo continebit.
  • lima index.html. Haec fasciculus particulam textus continebit ut applicationis clientis outputare debeat.
  • lima Dockerfile. Haec fasciculus Docker est qui instructiones continebit quae opus ad ambitum servientem efficiunt.

Hoc est quod illa quae in tuo folder ut tamquam server/:

.
├── Dockerfile
├── index.html
└── server.py
0 directories, 3 files

2b. Pythonem limam emendo.

Add to file server.py sequenti codice:

#!/usr/bin/env python3

# Импорт системных библиотек python.
# Эти библиотеки будут использоваться для создания веб-сервера.
# Вам не нужно устанавливать что-то особенное, эти библиотеки устанавливаются вместе с Python.

import http.server
import socketserver

# Эта переменная нужна для обработки запросов клиента к серверу.

handler = http.server.SimpleHTTPRequestHandler

# Тут мы указываем, что сервер мы хотим запустить на порте 1234. 
# Постарайтесь запомнить эти сведения, так как они нам очень пригодятся в дальнейшем, при работе с docker-compose.

with socketserver.TCPServer(("", 1234), handler) as httpd:

    # Благодаря этой команде сервер будет выполняться постоянно, ожидая запросов от клиента.

   httpd.serve_forever()

Hoc signum tibi permittit ut servitorem simplicem interretialem efficias. Dabit tabella clients index.htmlquorum contenta in pagina postea ostendentur.

2c. Emendo HTML File

Ad file index.html sequenti adde:

Docker-Compose is magic!

Hic locus clienti tibi mittendus est.

2d. Emendo Dockerfile

Nunc simplex file creare erimus Dockerfilequi auctor erit pro servo pythonis ordinandi runtime decori. Fundamenta imaginis creatae utemur per officialem modout curreret libellos in Pythone. Hic est materia Dockerfile:

# На всякий случай напоминаю, что Dockerfile всегда должен начинаться с импорта базового образа.
# Для этого используется ключевое слово 'FROM'.
# Здесь нам нужно импортировать образ python (с DockerHub).
# В результате мы, в качестве имени образа, указываем 'python', а в качестве версии - 'latest'.

FROM python:latest

# Для того чтобы запустить в контейнере код, написанный на Python, нам нужно импортировать файлы 'server.py' и 'index.html'.
# Для того чтобы это сделать, мы используем ключевое слово 'ADD'.
# Первый параметр, 'server.py', представляет собой имя файла, хранящегося на компьютере.
# Второй параметр, '/server/', это путь, по которому нужно разместить указанный файл в образе.
# Здесь мы помещаем файл в папку образа '/server/'.

ADD server.py /server/
ADD index.html /server/

# Здесь мы воспользуемся командой 'WORKDIR', возможно, новой для вас.
# Она позволяет изменить рабочую директорию образа.
# В качестве такой директории, в которой будут выполняться все команды, мы устанавливаем '/server/'.

WORKDIR /server/

Nunc in clientelam committitur.

▍3. Creando clientis

Dum partem clientis nostri instituti creant, nonnulla fundamenta Docker in via memorabimus.

3a. partum files

Ad tuum project folder client et sequentes ordines in ea crea;

  • lima client.py. Hic locus in codice clientis erit.
  • lima Dockerfile. Haec fasciculus eandem personam gerit quam simile fasciculus in folder servo. Nempe mandatum continet qui describere quomodo ambitum creandi ad clientem codicem exsequendum.

Quam ob rem tuum folder client/ in hac operis stadio sic debet videri:

.
├── client.py
└── Dockerfile
0 directories, 2 files

3b. Python File

Add to file client.py sequenti codice:

#!/usr/bin/env python3

# Импортируем системную библиотеку Python.
# Она используется для загрузки файла 'index.html' с сервера.
# Ничего особенного устанавливать не нужно, эта библиотека устанавливается вместе с Python.

import urllib.request

# Эта переменная содержит запрос к 'http://localhost:1234/'.
# Возможно, сейчас вы задаётесь вопросом о том, что такое 'http://localhost:1234'.
# localhost указывает на то, что программа работает с локальным сервером.
# 1234 - это номер порта, который вам предлагалось запомнить при настройке серверного кода.

fp = urllib.request.urlopen("http://localhost:1234/")

# 'encodedContent' соответствует закодированному ответу сервера ('index.html').
# 'decodedContent' соответствует раскодированному ответу сервера (тут будет то, что мы хотим вывести на экран).

encodedContent = fp.read()
decodedContent = encodedContent.decode("utf8")

# Выводим содержимое файла, полученного с сервера ('index.html').

print(decodedContent)

# Закрываем соединение с сервером.

fp.close()

Cum hoc codice, client applicatio notitias de servo extrahere potest et in screen ostendere.

3c. Emendo Dockerfile

Sicut in servo, simplicem creamus Dockerfile, auctor creandi ambitum in quo clientis Python applicationes currat. Hic est clientis codice Dockerfile:

# То же самое, что и в серверном Dockerfile.

FROM python:latest

# Импортируем 'client.py' в папку '/client/'.

ADD client.py /client/

# Устанавливаем в качестве рабочей директории '/client/'.

WORKDIR /client/

▍4. Docker Componere

Ut animadvertere licet, duo diversa incepta creavimus: servitorem et clientem. Uterque eorum file suum habet Dockerfile. Hactenus omnia, quae acciderunt, fundamenta operandi cum Docker non excesserunt. Nunc cum Docker Componere incipiamus. Hoc ut facias, ad tabellam eamus docker-compose.yml, positam in exstent radicem folder.

Nota quaeso quod hic non conamur omnia mandata quae in usu esse possunt docker-compose.yml. Praecipuum propositum nostrum est per exemplum practicum, quod tibi praecipuam cognitionem Docker Componere dabit.

Hic est signum in tabella ingerere docker-compose.yml:

# Файл docker-compose должен начинаться с тега версии.
# Мы используем "3" так как это - самая свежая версия на момент написания этого кода.

version: "3"

# Следует учитывать, что docker-composes работает с сервисами.
# 1 сервис = 1 контейнер.
# Сервисом может быть клиент, сервер, сервер баз данных...
# Раздел, в котором будут описаны сервисы, начинается с 'services'.

services:

  # Как уже было сказано, мы собираемся создать клиентское и серверное приложения.
  # Это означает, что нам нужно два сервиса.
  # Первый сервис (контейнер): сервер.
  # Назвать его можно так, как нужно разработчику.
  # Понятное название сервиса помогает определить его роль.
  # Здесь мы, для именования соответствующего сервиса, используем ключевое слово 'server'.

  server:
 
    # Ключевое слово "build" позволяет задать
    # путь к файлу Dockerfile, который нужно использовать для создания образа,
    # который позволит запустить сервис.
    # Здесь 'server/' соответствует пути к папке сервера,
    # которая содержит соответствующий Dockerfile.

    build: server/

    # Команда, которую нужно запустить после создания образа.
    # Следующая команда означает запуск "python ./server.py".

    command: python ./server.py

    # Вспомните о том, что в качестве порта в 'server/server.py' указан порт 1234.
    # Если мы хотим обратиться к серверу с нашего компьютера (находясь за пределами контейнера),
    # мы должны организовать перенаправление этого порта на порт компьютера.
    # Сделать это нам поможет ключевое слово 'ports'.
    # При его использовании применяется следующая конструкция: [порт компьютера]:[порт контейнера]
    # В нашем случае нужно использовать порт компьютера 1234 и организовать его связь с портом
    # 1234 контейнера (так как именно на этот порт сервер 
    # ожидает поступления запросов).

    ports:
      - 1234:1234

  # Второй сервис (контейнер): клиент.
  # Этот сервис назван 'client'.

  client:
    # Здесь 'client/ соответствует пути к папке, которая содержит
    # файл Dockerfile для клиентской части системы.

    build: client/

    # Команда, которую нужно запустить после создания образа.
    # Следующая команда означает запуск "python ./client.py".
 
    command: python ./client.py

    # Ключевое слово 'network_mode' используется для описания типа сети.
    # Тут мы указываем то, что контейнер может обращаться к 'localhost' компьютера.

    network_mode: host

    # Ключевое слово 'depends_on' позволяет указывать, должен ли сервис,
    # прежде чем запуститься, ждать, когда будут готовы к работе другие сервисы.
    # Нам нужно, чтобы сервис 'client' дождался бы готовности к работе сервиса 'server'.
 
    depends_on:
      - server

▍5. Aedificationem project

Post in docker-compose.yml Omnes instructiones necessariae initae sunt, consilium congregari debet. Hic gradus operis nostri similis est utendo imperio docker buildsed praeceptum debitum ad plura officia pertinet;

$ docker-compose build

▍6. Lorem project

Nunc voluptua convenire ut, tempus Lorem est. Hic gradus operis nostri respondet illi gradui, in quo, cum singulis vasis operando, mandatum fit docker run:

$ docker-compose up

Hoc mandato facto, textus a cliente receptae a servo in termino apparebit: Docker-Compose is magic!.

Ut iam dictum est, servo utitur ad portum computatrum 1234 ad clientelam petitiones servitutis. Si ergo ad electronicam adire in navigatro tuo http://localhost:1234/, pagina cum textu ostendet Docker-Compose is magic!.

Utile mandata

Intueamur aliqua mandata ut utiles invenias cum operando cum Docker Compone.

Hoc mandatum tibi permittit desinere ac delere continentia et ceterae facultates quae ab ipso mandato creatae sunt docker-compose up:

$ docker-compose down

Hoc mandatum vestigia omnia opera:

$ docker-compose logs -f [service name]

Exempli gratia in hac forma adhiberi potest: $ docker-compose logs -f [service name].

Hoc mandatum uti potes indicem vasorum ostendere:

$ docker-compose ps

Hoc mandatum tibi permittit ut in currens vase mandatum faciatis;

$ docker-compose exec [service name] [command]

Exempli gratia hoc videre licet; docker-compose exec server ls.

Hoc mandatum tibi permittit ut indicem imaginum exhibeas;

$ docker-compose images

results

Inspeximus fundamenta operandi cum Docker Componere technologiam, cuius cognitio permittet te hac technologia uti et, si placet, altius studere incipe. hic repositio cum codice rei hic inspeximus.

Carissimi legentibus! Uteris Docker Componere in inceptis tuis?

Inceptor est scriptor Libri Docker Componere

Source: www.habr.com

Add a comment