ααΎααααΎααΌα ααααα ααΎααααΈαααααΆα’αααααααΌαααΆα Docker α αΎααα·ααααααΆ VM? α’αααβααααΌαβαααααβααΌαβα’αααΈβαααβα’αααβα ααβαα βααΆα αβαααβα‘ααα ααααα·αααΎα’αααα ααααααΆα ααααααααααααααΆαααααΆαααΆααΆ αα·ααααααααΉααα·αααα·α ααααααααΎααα½ααααααα·ααα ααΎ VM α ααααα·αααΎα’αααααααΌαααΆαααααΆα ααααααα·ααΈααααααα»αααααΎαααΆαααΆααααΎαααΆαααααααααααΆα ααααα‘αα α’αααααΉαααααΌαααΆα Docker α
ααΌα ααααααΎα’αααΈααΆααΆααα»αααααΆαααΆα Docker containers αα·α VMs?
αααΆαααΈααα·αααα·α (VM) ααΊααΆαα»αααααΌααααα·αααα·ααααααΆαα§ααααααα·αααα·αααΆααα’αα αα·αααΆαααΉααα·αααα·α αααααααααααααααα·ααααα·ααΆαα―αααΆαααααααΈααααΌαααΆαααα‘αΎα αα½αααΆαα½αααΉααααααα·ααΈαααααΆα§ααααααα·αααα·α ααΆααααααααααα’αααα
αα
αΆα αα·ααααΆαααΆαααααααααα αααααΊααΎαααα½αααΆαα’ααΌααΈαααααααααΉαααΌααααααααα’αα»ααααΆαα±ααα’αααααααΎαααΆααα»αααααΌααααα·αααα·αααΆα
αααΎααα
ααΎαα»αααααΌααααααα½αα
VM αααααΆαααα‘αΎαα’αΆα
ααααα αααΆαααΆααα·ααΈααααααααααΆα
- ααα αααΆαααΉαααα αααα’αα»ααααΆαα±ααα αΌαααααΎααΆαααΉααα·αααα·αααΏαααΆααα»α αα·ααααααΆαααΆααααααα―αααΆαα
- ααΆααααα ααα’αααα αα αΆαααΆαααααα αα αααααα‘αΎααααααα·ααΈαααααα α’αααα αα αΆαααΉαααααΌαααΆααααα ααααΆααΆααααααααααΆαααα½αααΆ αα αΌααααααΆααΆααααα ααα½αα’αα·ααααΆαααααΆαααααα»ααα»ααααααΆααααΆα
αααΆαααΈααα·αααα·αααΆααααα αααΎααα ααΎαααΆαααΈααα αααααααααααααΆααααα αααΎα α αΎαααααΌαααΆαααΆαααΆααααααΆαααα αΆαααααα·ααααΆααααααααΌαααΆααααααΆαααααααα·ααΈααααα’αααααΎααααΈααααΎαααΆαα
Dockers ααΊααΆαααααα·ααΈαααααΆαααααααΎααααααα·ααΈαααααα’ααααΎαα»αααΊαααα αα»αααΊααα αα·ααααΆαααΈααα·αααα·αααΆαα’αααααααααααααααααααααΆ ααα»ααααααααΎαααΆααα»αααααΆα αα»αααΊαααααααΎααααΆααααααααααααααα·α ααΈααααα ααααΎααααΆααααααΆααααααΆαα αααααααα αααΎαααΆααααααααααααΆαααΈαααΆα VM ααΈααααα αα·αααΌα VM αα αααααααΌααα·αααα·ααα ααααα·α OS αα·αααα hardware ααα αα·ααΈααΆαααααααααααααααΌαααΆαα αα αΆααα·α ααΆαααΆαααααααΆαααΆααααααΏα αα·αααΆαααααΎααΆαααααααΆαααΆααααααΆααααα½αα
αα»αααΊααααααααααΌαααααααΆαααααΆαααααα·αααααΆαααΆααα»ααααααΆααααΆαααα
ααα
αααααααα·ααΈααααααααααΌαα
ααα»α
αααααΆααα
αΆαααΆα
αααααααααααααααΆαααΈαα αααααααα·ααααααα’αα»ααααΆαα±αααα»αααΊαααα
αααααααααααΌααααααααααα ααααα»αααΊαααααΈαα½ααααααΎαααΆαααΆααααΎαααΆαααΆα
ααααα‘ααααααααααααααααα·ααααα·ααΆαα
αααα αααααΆααααα»ααααααααααα·ααααΆαααααα½α (ααα αα’αΆααααααΆααα·αααα·αααααααΆααααΆαα)α αααααΆαααα αα’αΆααααααΆααα·αααα·ααααααα»αααΊαααααΈαα½ααααΊααΆααααααΆ αα·αααααααααααΆαααααα·αααα·αααααααααα’αααα
αα
αΆαααααααααααΆαα·αα’αΆα
ααααΆααααααΌαααΆαααα
ααααααααααααα·ααααα·ααΆαααΎααααααΆαα Docker ααΊααΈαα»α
(Docker ααα’αΆα
ααααΎαα
ααΎ Windows αα·α MacOS) ααΆααααΎαα»ααααααααα·α
ααααααααααΆ αααα’αα»ααααΆαα±ααααΆαααα
αααΊααααααααα ααΆαααΎαααααΎαααΆα Docker containers αα
ααΎ Windows ααΉαααααΎα‘αΎααα
αααα»ααααΆαααΈααα·αααα·α Linux ααΈααααα containers α
ααααααα OS αααααααααα host α αΎα OS ααααΆαααααααΆαααα½αααααΊ Linux α
αα»αααΊααα - ααΎααΆααααΎαααΆααααΆαααΌα ααααα ?
αα»αααΊααα ααΊααΆα’ααΌααΈαα ααααα·ααααααα·ααΈααααα½ααααα αΌαααααΆααΌαααΌα αα·αααΆαα’αΆαααααα αα»αααΊααααααααααααΌαααΆααααααΎαα ααααΈααΌαααΆα ααααααααααααααΆααααΆαααΎαααα’αΆα αααααααΆα αα·αα αΆααααααΎααααΆαααΆααααααααααααα αααααΆααα»αααΊαααααΆααααααΆαααααααααααΆαααααα½α α αΎαααΆαααααΆααααααΌαααΆααα’ααααααΌαααΆααααααΆαα»ααααα»ααααααΆααααα αα»αα αααΎαα’αΆα α αααααααααΆαα αΌαααααΎααΌαααΆαααααΌα ααααΆα
αα»αααΊαααααΈαα½ααα’αΆα ααααΌαααΆαααααααα ααΆααααααααααΆααααα―αααΆααα αααα»ααααααα docker-compose ααααα½ααααα αΌααα αααα»ααααααααααΆαα αααα docker-compose.yml α αα ααΈαααα’αααα’αΆα ααααααααΆαααΆααααααααααααααΌα ααΆααααααα»αααΊααα α ααα ααΆααααααα’ααααααααΆα ααααααααααααΆα ααΆαα’αΆααααααααΆααα»αααΊαααααααααααα ααααα·αααΎα’ααααα·ααααααΆααααααααα»αααΊααααααα»αααΆαααααααα ααα Docker ααΉααααααΎααα»αααΊαααααααΈααΆααααα αααααααααααααα±ααααΆαααα αααααα
αα αααααααα»αααΊαααααααΌαααΆαα αΆααααααΎαααΈααΌαααΆα Docker ααα‘αΎαααααααααα―αααΆαα’αΆα/ααααααα ααΎααααΌααααααααΆααααΆααααααα αααααΊααΆαααααααααααααΎαααΆαααΆααα’αααααααΎαα ααα±αα Docker container ααααααΎαααααΎαααΆαααΉαααααΎαααΆαα
αα
αααααα Docker α
αΆααααααΎααα»αααΊαααααααΌα αααααΆααα’αΆα/αααααααααΌαααΊαααα αα
ααααααααΆαααααΆααααααΌαααΎαα‘αΎααα½αααΆααααΌαααΆαα’αα»αααααα
αααααΆααααα; α§ααΆα ααα ααααα·αααΎα’αααα
ααααααααα―αααΆα α―αααΆααααααΉαααααΌαααΆαα
ααααααΈαααααΆααααΆαααα’αΆαααΆαααααααα
αααααΆααα’αΆα-αααααα
αααααααααΆαααα’αΆαααα―αααΆαααΉααα
ααααΆα ααα»ααααα₯α‘αΌααααααααΌαααΆαααΆαααα
αααααα
αααΆααα
ααααα ααα·ααΆαααααΌαααΆαααααΎααΎααααΈαααααΆαα»ααα·αααααα ααααα·ααα·αααΈααααααΈαα·ααααααα»αααΊαααα ααα·ααΆαααααΌαααΆαα
αΆααααααΎααα
αααααααα»αααΊαααααααΌαααΆααααααΎαα
ααΎααΌαααΆαααααΆααααΆαα½ααα»αααΊααααααΆαααΌα ααααα ?
ααΌαααΆαα - ααΆαα»ααααΆαααααααΆαααα»αααΈαα½ααα ααΌαααΆαααααΌαααΆααααααΎαα‘αΎαααΈ Dockerfile αααααααΌαααΆααααααααα αααα»ααααααα α αΎαααΆαααα»αααααααααααα―αααΆα (αααααΆαα) αααααΆαααα ααΈααΎααααΆ αα·αααΆααααΆαααα»αααΆαα½αααααΆ α’αΆα ααααΎααΆααααααΆααααααΆαα’αΆαααα»αααααα α ααα½ααααααΆααα’αα·ααααΆααΊ 127 α
αααααΌαααααΌαααΆαααΈαα½ααααΊααΆααΌαααΆαααΌαααααΆα αααααααΌαααΆααααααΆαααααααΆααααααααΆ FROM - α
ααα»α
α
αΌααα
ααααααααΎαααΌαααΆα Dockerfile α αααααΆααααΈαα½ααααΊααΆαααααΆαααααααΆαα’αΆαααααα»ααααα α αΎαααααΌαααΆαααααΆααααααΆααααααααΆαααα½ααααααααααααααααααα―αααΆα αααααααααααα»α Dockerfile α
ααΎααααΈαααα
αΌαααααΆααΌααααααΆααααΆααααααα
ααΆααΌαααΆααααα½α Docker ααααΎααααααααα―αααΆα Union αα α»αααααΆααααααα·αααααα (AuFS ααααΌαααΆααααααΎαα‘αΎααα
ααΎααααΌααα UnionFS) αααα’αα»ααααΆαα±ααα―αααΆα αα·αααααααααααααΆααΈαααααΆααα―αααΆαααααααααααΆααΎααααΈαααα½αααΎααααΆααααααααΆααΆα αααααΎαααααααααα―αααΆααααααΆαααααααα
αααααΆααααΆααααα»ααα·ααααααααααΆαααα’αα»ααααΆαα±ααα’ααααααααΆαα»αααααααΆαααΆαααααααα’αααΈαααααΆααααΈαα½αααα αααααααΎαααΆα αα·αααααααααΎαα αααααΆααααΈαα½ααααΆααααααααΆαααα αααααΆαααααααΆαα ααααα·αααΎαααααΆαααα·αααΆααααααααΆαααα αααααΊααΆαααααΆααααΆαααΎαααα»ααααα»αααΌαααΆαα
Dockerfile α’αΆα ααΆαααΆααααααααΆααΌα ααΆα
- ααΈ - α ααα»α α αΌααααα»αααΆααααααΎαααΌαααΆα;
- α’αααααααΆα - αααααααααααα αΆααααΌαααΆα;
- ααα - ααααα·ααααα·ααΆααααααααΆααα‘α»ααααααα‘αΎαααΌαααΆα;
- αααααα - ααΆαα ααααα―αααΆααααΆαααΈααα ααΌαααΆαααααΈ ααααα·αααΎα’ααααααααΆααα―αααΆα URL ααα Docker ααΉαααΆαααααΆαα αααααααΆααααααΆααα
- ENV - α’αααααα·ααααΆα;
- CMD - α αΆααααααΎαααΆααααααΎααα»αααααΈαααααα’ααααΎααΌαααΆα;
- ENTRYPOINT - ααΆααααααααΆααααΌαααΆαααααα·ααααα·αα αααααααα»αααΊαααααααΌαααΆαα αΆααααααΎαα
- WORKDIR ααΊααΆααααΆαααΆααααααΆααααααα·ααααα·ααΆααααααααΆ CMD α
- USER - ααααα UID αααααΆαααα»αααΊααααααααΆααααααΎαααΈααΌαααΆαα
- ααααα·αααα‘αα - ααα‘αΎααααααΆαααΈααα αα»αααΊαααα
- EXPOSE ααΊααΆαααα»αααα ααααααααΆαααααΆαααα αααα»ααα»αααΊαααα
ααΎ UnionFS ααααΎαααΆααααΆαααΌα ααααα ?
UnionFS - ααααααααα―αααΆααααααααΆαααα (FS) αααααΆααααΈαα»α αα·α FreeBSD α FS αααα’αα»ααααααααααΆαα ααααααΎααΆαααααα (Copy-On-Write, COW) α α―αααΆααΆαααΆααααα UnionFS ααΊααΆαααααΆαααα½α αααααΆααααΈαα½αααα½αααααααΌαααΆαα αΆαααα»αααΆααΆααααααααα―αααΆαααααααααΆα ααααα‘αααααααΆαααΆααΆαα»ααααααααΈα«ααααα½αααΆα UnionFS αααααΎα union mount αααααΆααααααααααα―αααΆααααααααα α αΎαα’αα»ααααΆαα±ααα’ααααααα αΌαα―αααΆα αα·ααααααααΆααααααΆααΆαααΈααααααααα―αααΆαααααααααααΆ (α α ααΆααΆααΆ) αα αααα»αααααααααα―αααΆαααααΆαααααα½α αααααααααααααΆααΆαα ααααα’αααααααΎααααΆααα
ααΆαα·ααΆαααααααααΆαααααΌαααΌα ααααΆααΉαααααΌαααΆααααα αΆααα½αααααΆαα αααα»ααααα½ααααα αΌαααααΆαα½α (αααα»αα ααααααααααααΌα ααααΆ) ααααααααααα―αααΆαααααααα
UnionFS αα½ααααα αΌαααααΆααΌααααααΆαααααααα’ααααΎαααααΆαααααΌα ααΆααααααα
- αααααΆαααα½αααααΆαααΆαααααΆααααααΌα αααααΆααααΈααΈα αα·ααααααααααΆααααααΆαααΆαααααΆααααΆαα
- ααααα»αααααΆααα’αΆα α αΌαααααΎααΆααααα’αααααααΎααααΆαα "ααΈααααΌααα ααΆα" αααααΊα§α ααααα·αααΎααααα»αααααΆαααααΎαα»ααααα·ααα αααα»ααααααΆαα "ααΆαααΎ" ααΆααααΌαααΆααααααΌααααα·αααααα·ααα·αααΈααααααΆαααααααααα»αααααΆααααααααΌα ααααΆαα αααα»ααααααΆαα "ααΆα" α ααΎαα·αααΌα αααααα ααααα»αααααΆαα "ααΆα" ααααΌαααΆααααα‘αααααα·αα ααααα·αααΎααααα»αααααΆαααααΎαα»ααα·ααα ααΈααα α¬αα ααΈααα ααα α»α "ααααΆαα―αααΆα α¬ααα―αααΆααααααα" ααααΌαααΆααααα‘αααααα·αα
- αααααΆααααααΎααΆαααΊααΆ "ααααΌα" αααααΊααΆαααααααααΆαααααα’αααααααΎααΎααααΈααααΆααααααΌααα·ααααααααααΌαααΆααααα»ααααα αΆαααααα ααΎαααααΆααααΆαααΎααα»ααααα ααααα·ααααααΆαααααααααΉαααΆααααααααΆααααααα·αααΆααααααα
Docker ααΊααΆαα αα αααα·ααααΆααΌαα αααα»ααααααΆααααΆαααααΎααααΆαααα»αααΊααααααα»αααΆαααΆααααααα·ααΈα ααΆααΆαααααΆαααΆαααααααΆααα αααα»ααααααααα ααααααααΎααα ααΎ cgroups αα·α namespaces αααααααααααααΊαααααΈαα»α α
Docker α’αα»ααααΆαα±ααααΎαααΆαααααααΆααααααα·ααΈαααΆαααΆαααα αα αα·αααααΎα±ααααΆαααααΎααααΆααααααααααα―αααΆαααα’αααα»ααααααΆαα αααααααααΊααα OS αααΆααα»αααΊαααααΆααα’αα αααααααΎαααΆαααΆααααΎαααΆαααααααααααααα·ααααα·ααΆαααΆα ααααα‘ααα
ααααα: www.habr.com