Docker layots
Π Docker ΡΠ»ΠΎΠΈ β ΡΡΠΎ Π²Π°ΠΆΠ½Π°Ρ ΡΠ°ΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈ ΠΎΠ±ΡΠ°Π·ΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ Docker-ΠΎΠ±ΡΠ°Π· ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ»ΠΎΠ΅Π², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ Π½Π° Π΄ΡΡΠ³Π°. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»ΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ ΡΠ°ΡΡΡΡ ΠΎΠ±ΡΠ°Π·Π° ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ°ΠΊΠΎΠ΅ ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠ°, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΠΈ Ρ.Π΄.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ:
-
Π‘Π»ΠΎΠΈ ΠΎΠ±ΡΠ°Π·Π°: ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ Docker-ΠΎΠ±ΡΠ°Π· Ρ ΠΏΠΎΠΌΠΎΡΡΡ
Dockerfile
, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,RUN
,COPY
,ADD
) Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½ΠΎΠ²ΡΠΉ ΡΠ»ΠΎΠΉ Π² ΠΎΠ±ΡΠ°Π·. ΠΡΠΈ ΡΠ»ΠΎΠΈ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡΡΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ ΡΠΊΠ°Π·Π°Π½Ρ, ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ»Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. -
ΠΠ½ΠΎΠ³ΠΎΡΠ°Π·ΠΎΠ²ΠΎΡΡΡ ΡΠ»ΠΎΠ΅Π²: Docker ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ΅Π², ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΡΠ΅ΡΡΡΡΡ. ΠΡΠ»ΠΈ ΡΠ»ΠΎΠΉ ΡΠΆΠ΅ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ»ΡΡ, Docker ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΅Π³ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π°. ΠΡΠΎ ΡΡΠΊΠΎΡΡΠ΅Ρ ΡΠ±ΠΎΡΠΊΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ².
-
Π§ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ: ΠΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π·Π°ΠΏΡΡΠ΅Π½, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ»ΠΎΠΈ ΠΎΠ±ΡΠ°Π·Π° Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ "ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ". Π‘Π»ΠΎΠΉ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ²Π΅ΡΡ ΡΡΠΈΡ ΡΠ»ΠΎΠ΅Π², ΡΡΠΎΠ±Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΌΠΎΠ³ Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ²ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΡΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈ Π½Π΅ Π²Π»ΠΈΡΡΡ Π½Π° Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π·.
-
ΠΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ²: Π§ΡΠΎΠ±Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Docker-ΠΎΠ±ΡΠ°Π·Π°, Π²Π°ΠΆΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»ΠΎΠ΅Π² ΠΈ ΠΈΠ·Π±Π΅Π³Π°ΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ»ΠΎΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ
RUN
Π² ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»ΠΎΠ΅Π² ΠΈ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠ±ΡΠ°Π·Π°.
ΠΡΠΈΠΌΠ΅Ρ Dockerfile:
FROM ubuntu:latest
RUN apt-get update && apt-get install -y nginx
COPY . /app
CMD ["nginx", "-g", "daemon off;"]
ΠΠ΄Π΅ΡΡ:
- FROM
ΡΠΎΠ·Π΄Π°Π΅Ρ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠ»ΠΎΠΉ Ρ Ubuntu.
- RUN
Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½ΠΎΠ²ΡΠΉ ΡΠ»ΠΎΠΉ Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ nginx.
- COPY
ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ»ΠΎΠΉ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.
- CMD
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΡΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ»ΠΎΠΉ Π² ΠΎΠ±ΡΠ°Π·.