áááşáááąáŹááťááşááťáŹá¸á áá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻ/ááąá¸áááŻáˇááźááşá¸ááŻááşáááşá¸á
ááşááᯠáááşááąáŹááşáááş ááᯠDocker ááᯠáááąáŤááşá¸ááťáŹá¸á
á˝áŹ áĄááŻáśá¸ááźáŻááąááŤáááşá Habrakhabr á
áŹáááşáá°ááťáŹá¸ááᯠDocker áĄááźáąáŹááşá¸ ááááŤááşá¸ááąáŹááşá¸ááŤá¸á ááŹááŹááźááşááťááşááᯠááťá˝ááşáŻááş áááşá¸áážááşá¸ááŤáááşá
Docker áááŻááŹááŹáá˛á
Docker áááş áĄáááŽááąá¸áážááşá¸ááťáŹá¸ áááşááŽá¸ááźááşá¸á ááąá¸áááŻáˇááźááşá¸áážááˇáş áááşáááşááźááşá¸áĄáá˝ááş áá˝ááˇáşáááşá¸ááąáŹ ááááşááąáŹááşá¸áá
áşááŻááźá
áşáááşá Docker áááş áááˇáşáĄáááŽááąá¸áážááşá¸ááťáŹá¸ááᯠáááŻáááŻááźááşáááşá
á˝áŹááąá¸áááŻáˇáááŻááşáááş ááŽáááŻááşá¸ááŻááşááŹá¸áááşá docker ááźááˇáşá áááşáááş áááşááĄáááŽááąá¸áážááşá¸ááᯠáááşááĄááźáąááśáĄááąáŹááşáĄáĄáŻáśááž áááŻááşá¸ááźááşáááŻááşááźáŽá¸ áĄááźáąááśáĄááąáŹááşáĄáĄáŻáśááᯠá
áŽááśáááˇáşáá˝á˛áááˇáşáĄááşááşááŽááąá¸áážááşá¸áĄááźá
áş áááşááśáááŻááşáááşá Docker áááş áááˇáşááŻááşááᯠáááŻáááŻááźááşáááşá
á˝áŹ áááŻáˇááąáŹááşááąá¸áááşá áááŻáááŻááźááşáááşá
á˝áŹ á
ááşá¸áááşáááşá áĄáááŽááąá¸áážááşá¸ááťáŹá¸ááᯠáááŻáááŻááźááşáááşá
á˝áŹ áááŻáˇááąáŹááşááąá¸ááŹá ááŻááşááąá¸ááŹá¸ááźááşá¸áážááˇáş ááŻááşááąáŹááşááąááąáŹ ááŻááşáĄááźáŹá¸ áĄááťáááşááᯠááťážáąáŹáˇááťááąá¸ááŤáááşá Docker áááş áááˇáşáĄáááŽááąá¸áážááşá¸ááťáŹá¸ááᯠá
áŽááśáááˇáşáá˝á˛áááşáážááˇáş áááşááśááąáŹááşáá˝ááşááąá¸áááş áá°ááŽááąá¸áááˇáş ááŻááşáááşá¸á
ááşááťáŹá¸áážááˇáş áĄááŻáśá¸áááşáážáŻááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻáᏠááąáŤáˇááŤá¸ááąáŹ container virtualization platform áážááááˇáş áááşá¸ááᯠááŻááşááąáŹááşááŤáááşá
áááşá¸ááĄááááá˝ááşá docker áááş áááˇáşáĄáŹá¸ áá˝ááşááááşááŹáá
áşááŻáĄáá˝ááşá¸ ááŻáśááźáŻáśá
á˝áŹ ááŽá¸ááźáŹá¸áá˝á˛ááŹá¸áááˇáş áááşáááˇáşáĄááşááşááááŻááŽá¸ááŤá¸ááᯠááŻááşááąáŹááşáááŻááşá
áąááŤáááşá ááŻáśááźáŻáśááąáŹ ááŽá¸ááźáŹá¸áá˝á˛ááŹá¸ááźááşá¸ááźááˇáş áááˇáşáĄáŹá¸ áá°ááŽááąáŹáĄáááşáážááşáá˝ááş áá˝ááşááááşááŹááťáŹá¸á
á˝áŹááᯠáá
áşááťáááşáááşá¸áá˝ááş ááŻááşááąáŹááşáááŻááşá
áąááŤáááşá hypervisor áááąáŹááşáááşáááşááŻááşáááşáááŻá¸áááŤáá˛áááşáááşáááˇáşáá˝ááşááááşááŹáááąáŤáˇááŤá¸ááąáŹáááąáŹáááŹááááşáááˇáşáĄáŹá¸áááşá hardware áážáááŻáááŻááŻááşáá°áááŻááşá
áąáááşá
container virtualization platform áážááˇáş tools ááťáŹá¸áááş áĄáąáŹááşááŤááá ášá ááťáŹá¸áá˝ááş áĄááŻáśá¸áááşáááŻááşáááş-
- áááşááĄáááŽááąá¸áážááşá¸ (áážááˇáş áááşáĄááŻáśá¸ááźáŻáááˇáşáĄá áááşáĄáááŻááşá¸ááťáŹá¸) ááᯠdocker áá˝ááşááááşááŹááťáŹá¸áá˝ááş ááŻááşáááŻá¸ááźááşá¸á
- áá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻáážááˇáş á ááşá¸áááşáááşáĄáá˝ááş á¤áá˝ááşááááşááŹááťáŹá¸ááᯠáááˇáşáĄáá˝á˛áˇááťáŹá¸áááŻáˇ ááźááˇáşááźá°á¸ááźááşá¸áážááˇáş ááąá¸áááŻáˇááźááşá¸á
- ááąááŹá ááşááŹááťáŹá¸ áážááˇáş ááááşáááŻááşááťáŹá¸áá˝ááş áážá áşááťááŻá¸ááŻáśá¸ áááˇáşááŻááşááŻááşááąá¸áááŻááşááťáŹá¸ááąáŤáşáá˝ááş á¤áá˝ááşááááşááŹááťáŹá¸ááᯠáááşá¸ááťááşá¸ááŤá
Docker ááᯠááŹáĄáá˝ááş ááŻáśá¸áááŻááşááá˛á
áááˇáşáĄáááŽááąá¸áážááşá¸ááťáŹá¸ááᯠáĄááźááşááŻááşááąááŤá
Docker áááş áá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻá ááşáááşá¸ááᯠá áŻá ááşá¸áááşáĄáá˝ááş ááąáŹááşá¸áá˝ááşáááşá Docker áááş developer ááťáŹá¸áĄáŹá¸ ááąááááŻááşáᏠáá˝ááşááááşááŹááťáŹá¸ááᯠáĄáááŽááąá¸áážááşá¸ááťáŹá¸áážááˇáş áááşááąáŹááşáážáŻááťáŹá¸ááźááˇáş ááŻááşááąáŹááşáááŻááşá áąááŤáááşá áááşá¸áááş ááąáŹááşáááŻááşá¸áá˝ááş áááˇáşáĄáŹá¸ á ááşáááşáááźááş ááąáŤááşá¸á ááşá¸áážáŻáážááˇáş ááźááˇáşááťááşááŻááşááąáŹááşáážáŻááŻááşáááşá¸á ááşááťáŹá¸áážááˇáş ááąáŤááşá¸á ááşáááŻááşá áąááŤáááşá
áĽáááŹáĄáŹá¸ááźááˇáşá áááşá developer ááťáŹá¸áááş á ááşáá˝ááşá¸ááŻááşááᯠááąá¸ááŹá¸ááźáŽá¸ áááşá¸áááŻáˇá áá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻáĄá áŻá ᯠ(Docker ááŻáśááťáŹá¸) ááᯠááŻááşááąáŹáşáááŻááşáááşááťáŹá¸áážááˇáş ááťážááąááŤá áĄáááşáááˇáşááźá áşááąáŹáĄááŤá ááŻááşáážááˇáş áá˝ááşááááşááŹááťáŹá¸ááᯠá ááşá¸áááşáááŻááşáááŻáˇ áá˝ááşá¸áááŻáˇááźáŽá¸ áááŻáĄááşáááˇáş á ááşá¸áááşáážáŻááťáŹá¸ááᯠááŻááşááąáŹááşáááşá á ááşá¸áááşáááŻááşááž ááŻááşáážááˇáş ááŻáśááťáŹá¸ááᯠááŻááşááŻááşááąá¸áááŻáˇ ááąá¸áááŻáˇáááŻááşáááşá
ááźááˇáşááťááşááźáŽá¸ ááźááˇáşááᏠáááŻáá˝ááşáááşá
docker container-based platform áááş áááşá payload ááᯠáá˝ááşáá°á á˝áŹ port ááŻááşá áąáááşá Docker áá˝ááşááááşááŹááťáŹá¸áááş ááąááŹá ááşááŹáážá áĄá á áşáĄáážááş áááŻáˇáááŻááş ááąááŹá ááşááŹáážá áááŻáˇáááŻááş cloud áá˝ááş áĄá á áşáĄáážááş áááŻáˇáááŻááş virtual machine ááąáŤáşáá˝ááş áááşáááşáááŻááşáááşá
Docker á áááşááąáŹááşááá˝ááşáá°áážáŻáážááˇáş ááąáŤáˇááŤá¸ááąáŹáááąáŹáááŹááááş áááˇáşááŻááşáááşá¸ááŹáááşááᯠáážáŻááşáážáŹá¸á áŽááśáááˇáşáá˝á˛áááş áá˝ááşáá°á áąáááşá áááˇáşáĄáááŽááąá¸áážááşá¸ áááŻáˇáááŻááş áááşááąáŹááşáážáŻááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻáááş áááŻáˇáááŻááş ááááşáááş docker ááᯠáĄááŻáśá¸ááźáŻáááŻááşáááşá docker ááĄááźááşáážáŻááşá¸áááş áááşá¸ááᯠáĄááťáááşáážááˇáşáááźáąá¸áᎠááŻááşááąáŹááşáááŻááşá áąááŤáááşá
áááŻááźááˇáşááąáŹáááşáážááˇáş áááşáááŻááťáŹá¸
Docker áááş ááąáŤáˇááŤá¸ááźáŽá¸ ááźááşáááşáááşá áááşá¸áááş hypervisor-based virtual machines ááťáŹá¸áĄáá˝ááş ááśáááŻááşáááşáážáááźáŽá¸ ááŻááşááťá ááááşáááşááŹááąáŹ áĄááźáŹá¸áá˝áąá¸ááťááşá ááŹááᯠááąá¸ááŤáááşá áĽáááŹáĄáŹá¸ááźááˇáşá áááşááááŻááşáááŻááş cloud áááŻáˇáááŻááş platform-as-service ááᯠáááşááŽá¸ááąáŹáĄááŤáá˝ááş áááşá¸áááş ááźááˇáşááŹá¸ááąáŹáááşáááşá¸ááťááşááťáŹá¸áá˝ááş áĄáá°á¸áĄááŻáśá¸áááşáááşá áááŻáˇááąáŹáş áááˇáşáá˝ááşáážáááąáŹ áĄáááşá¸áĄááźá áşááťáŹá¸ááž áááŻáááŻááá°áááŻáááˇáşáĄá፠áĄááąá¸á áŹá¸áážááˇáş áĄáááşá áŹá¸ áĄáááŽááąá¸áážááşá¸ááťáŹá¸áĄáá˝ááşáááşá¸ áĄááŻáśá¸áááşááŤáááşá
áĄááá Docker áĄá áááşáĄáááŻááşá¸ááťáŹá¸
Docker áá˝ááş áĄááá áĄá áááşáĄáááŻááşá¸ áážá áşáᯠááŤáááşáááşá
- Docker- áá˝ááˇáşáááşá¸áĄáááşá¸áĄááźá áş virtualization ááááşááąáŹááşá¸á
- Docker Hub- Docker áá˝ááşááááşááŹááťáŹá¸ááᯠááźááˇáşááźá°á¸ááźááşá¸áážááˇáş á áŽááśáááˇáşáá˝á˛ááźááşá¸áĄáá˝ááş ááťá˝ááşáŻááşáááŻáˇá platform-as-a-serviceá
áážááşááťááş! Docker ááᯠApache 2.0 áááŻááşá ááşáĄáąáŹááşáá˝ááş ááźááˇáşááąááŹá¸áááşá
Docker ááááŻááŹ
Docker áááş client-ááŹááŹááááŻááŹáááŻáĄááŻáśá¸ááźáŻáááşá Docker ááąáŹááşáááşáááş áááˇáşáá˝ááşááááşááŹááťáŹá¸ááᯠáááşááŽá¸ááźááşá¸á ááŻááşááąáŹááşááźááşá¸áážááˇáş ááźááˇáşááąááźááşá¸áááŻááşáᏠáááşááŻááşáááşáááŻá¸ááᯠááŹáááşáá°ááąá¸áááˇáş Docker daemon áážááˇáş áááşáá˝ááşáááşá client áážááˇáş server áážá áşááŻááŻáśá¸áááş áá°ááŽááąáŹ system áá˝ááş run áááŻááşááźáŽá¸ client ááᯠremote docker daemon áážááˇáş ááťáááşáááşáááŻááşáááşá client áážááˇáş server áááş socket áááŻáˇáááŻááş RESTful API áážááááˇáş áááşáá˝ááşáááşá
Docker daemon
ááŻáśáá˝ááşááźááŹá¸áááˇáşáĄáááŻááşá¸ daemon áááş host machine ááąáŤáşáá˝ááşáĄááŻááşááŻááşáááşá áĄááŻáśá¸ááźáŻáá°áááş ááŹááŹáážááˇáş áááŻááşáááŻááşááááşááśááąáŹáşáááşá¸ áááşá¸áĄáá˝ááş client ááᯠáĄááŻáśá¸ááźáŻáááşá
Docker client
Docker clientá docker ááááŻááááşáááş Docker áĄáá˝ááş áááşááĄááşááŹááąáˇá áşááźá áşáááşá áááşá¸áááş áĄááŻáśá¸ááźáŻáá°ááśááž áá˝ážááşááźáŹá¸ááťááşááťáŹá¸ááᯠáááşááśááážáááźáŽá¸ docker daemon áážááˇáş áĄááźááşáĄáážááşááŻáśáˇááźááşáááşá
Docker áĄáá˝ááşá¸áááŻááşá¸
Docker áá˝ááş ááŤáááşááąáŹ áĄá áááşáĄáááŻááşá¸ ááŻáśá¸ááŻááᯠáááážááááş áááŻáĄááşáááş-
- ááŻáśááťáŹá¸
- áážááşááŻáśáááş
- áá˝ááşááááşááŹ
ááŻáśááááş
Docker ááŻáśáááş áááşáááşáᏠááá°ááŹááŻáśá áśáá áşááŻááźá áşáááşá áĽáááŹáĄáŹá¸ááźááˇáşá ááŻáśáá˝ááş Apache ááŤáážáááąáŹ Ubuntu áááşáááşáážáŻá áá áşáážááˇáş áááşá¸áá˝ááş áĄááşááşáá áşáᯠááŤáááşáááŻááşáááşá ááŻáśááťáŹá¸ááᯠáá˝ááşááááşááŹááťáŹá¸ áááşááŽá¸áááş áĄááŻáśá¸ááźáŻáááşá Docker áááş ááŻáśáĄáá áşááťáŹá¸ááᯠáááşááŽá¸áááşá áážáááźáŽá¸ááŹá¸ááŻáśááťáŹá¸ááᯠáĄááşááááşááŻááşáááş áááŻáˇáááŻááş áĄááźáŹá¸áá°ááťáŹá¸ áááşááŽá¸ááŹá¸ááąáŹ ááŻáśááťáŹá¸ááᯠááąáŤááşá¸ááŻááşááŻááşáááş áá˝ááşáá°á áąáááşá ááŻáśááťáŹá¸áááş docker build áá áşááŻá áĄá áááşáĄáááŻááşá¸ááťáŹá¸ááźá áşáááşá
registry áááŻ
Docker registry áááş ááŻáśááťáŹá¸ááᯠááááşá¸áááşá¸áááşá ááŻáśááťáŹá¸ááᯠááąáŤááşá¸ááŻááşááŻááşáááş áááŻáˇáááŻááş áĄááşááŻááşááŻááşáááŻááşáááˇáş áĄááťáŹá¸áááŻááşáážááˇáş ááŻáášáááá áážááşááŻáśáááşááťáŹá¸ áážáááŤáááşá áĄááťáŹá¸áá°áážáŹ Docker áážááşááŻáśáááşááźááşá¸ááźá
áşááŤáááşá
кОнŃоКноŃŃ
áá˝ááşááááşááŹááťáŹá¸áááş áááşá¸áá˝ážááşááťáŹá¸áážááˇáş áááşáá°áááşá áá˝ááşááááşááŹááťáŹá¸áá˝ááş áĄáááŽááąá¸áážááşá¸áááşáááşáááş áááŻáĄááşáááˇáşáĄááŹáĄáŹá¸ááŻáśá¸ ááŤáááşááŤáááşá áá˝ááşááááşááŹáá áşááŻá áŽááᯠááŻáśáá áşááŻááž áááşááŽá¸ááŹá¸áááşá áá˝ááşááááşááŹááťáŹá¸ááᯠáááşááŽá¸ááźááşá¸á á áááşááźááşá¸á áááşáááˇáşááźááşá¸á áá˝ážáąáˇááźáąáŹááşá¸ááźááşá¸ áááŻáˇáááŻááş ááťááşáááŻááşáááşá áá˝ááşááááşááŹáá áşááŻá áŽááᯠááŽá¸ááźáŹá¸áá˝á˛ááŹá¸ááźáŽá¸ áĄáááŽááąá¸áážááşá¸áĄáá˝ááş ááŻáśááźáŻáśááąáŹááááşááąáŹááşá¸áá áşáᯠááśáˇáááŻá¸ááąá¸áááşá áá˝ááşááááşááŹááťáŹá¸áááş ááŻááşáááşá¸á áĄá áááşáĄáááŻááşá¸ááťáŹá¸ááźá áşáááşá
ááŤááᯠDocker áááşáááŻáĄááŻááşááŻááşááá˛á
áááŻáĄááťáááşáĄáá ááťá˝ááşáŻááşáááŻáˇáááááşáážáŹ-
- ááťá˝ááşáŻááşáááŻáˇá áĄáááŽááąá¸áážááşá¸ááťáŹá¸áááşáážááᏠááŻáśááťáŹá¸ááᯠáááşááŽá¸áááŻááşáááşá
- ááťá˝ááşáŻááşáááŻáˇáááş áĄáááŽááąá¸áážááşá¸ááťáŹá¸áááşáááşáááşáĄáá˝ááş ááŻáśááťáŹá¸ááž áá˝ááşááááşááŹááťáŹá¸ááᯠáááşááŽá¸áááŻááşáááşá
- Docker Hub áááŻáˇáááŻááş áĄááźáŹá¸ááŻááşááŻáśáážááşááŻáśáááşááźááşá¸áážááááˇáş ááŻáśááťáŹá¸ááᯠááźááˇáşááąáááŻááşááŤáááşá
ááŽáĄá áááşáĄáááŻááşá¸áá˝áąá áááşáááŻáááŻááşáááşáá˛áááŻáᏠááźááˇáşááĄáąáŹááşá
ááŻááşááŻáśáááşáááŻáĄááŻááşááŻááşááá˛á
ááŻáśáá
áşááŻáśáááş áá˝ááşááááşááŹáá
áşáᯠáááşááŽá¸ááŹá¸áááˇáş áááşáááşáᏠááá°ááŹááŻáśá
áśáá
áşááŻááźá
áşááźáąáŹááşá¸ ááťá˝ááşáŻááşáááŻáˇ ááááŹá¸ááźáŽá¸ááźá
áşáááşá ááŻáśáá
áşááŻáśááťááşá¸á
áŽáá˝ááş áĄáááˇáşááťáŹá¸á
á˝áŹ ááŤáááşááŤáááşá Docker áĄááŻáśá¸ááźáŻáááşá
Docker áááş ááąáŤáˇááŤá¸ááááˇáşáĄááźáąáŹááşá¸áááşá¸ááťáŹá¸áá˛áážáá áşááŻáážáŹ áááşá¸áááş á¤áá˛áˇáááŻáˇááąáŹáĄáá˝ážáŹááťáŹá¸áááŻáĄááŻáśá¸ááźáŻááąáŹááźáąáŹááˇáşááźá áşáááşá áĄááşáááŽááąá¸áážááşá¸ááᯠáĄááşááááşááŻááşááźááşá¸áá˛áˇáááŻáˇááąáŹ ááŻáśááᯠááźáąáŹááşá¸áá˛ááąáŹáĄááŤáá˝ááş áĄáá˝ážáŹáĄáá áşáá áşáᯠáááşááŽá¸áááşá áááŻáˇááźáąáŹááˇáşá ááŻáśáá áşááŻááŻáśá¸ááᯠáĄá áŹá¸áááŻá¸ááźááşá¸ áááŻáˇáááŻááş áááşá¸ááᯠááźááşáááşáááşááąáŹááşááźááşá¸áááźáŻáá˛á áááşáááş virtual machine áá áşááŻááźááˇáş ááŻááşááąáŹááşááááŻááşááá˛áˇáááŻáˇá áĄáá˝ážáŹáááŻáᏠáááˇáşáá˝ááşá¸ááźááşá¸ áááŻáˇáááŻááş áĄááşááááşááŻááşááŹá¸áááşá ááŻáśáĄáá áşáá áşááŻááŻáśá¸ááᯠááźááˇáşááąáááşááááŻááŤá áĄááşááááşáááŻáᏠááźááˇáşááąááźááşá¸ááźááˇáş ááŻáśááťáŹá¸ááᯠááźááˇáşááąáááş áááŻáááŻáá˝ááşáá°ááźááşáááşá áąáááşá
ááŻááşááŻáśáááŻááşá¸á áážááŻáśá¸ááŹá¸áá˝ááş áĄááźáąááśááŻáśááźá áşáááşá áĽáááŹáĄáŹá¸ááźááˇáşá ubuntuá Ubuntu á áĄááźáąááśááŻáś áááŻáˇáááŻááş fedoraá Fedora ááźááˇáşááźá°á¸áážáŻá áĄááźáąááśááŻáśá ááŻáśáĄáá áşááťáŹá¸ááᯠáááşááŽá¸áááşáĄáá˝ááş ááŻáśááťáŹá¸ááᯠáĄááźáąááśáĄááźá áşáááşá¸ áĄááŻáśá¸ááźáŻáááŻááşáááşá áĽáááŹáĄáŹá¸ááźááˇáşá áááˇáşáá˝ááş apache ááŻáśáá áşááŻáśáážáááťážááş áááşá¸ááᯠáááˇáşáááşáĄááşááşááŽááąá¸áážááşá¸áĄáá˝ááş áĄááźáąááśááŻáśáĄááźá áş áĄááŻáśá¸ááźáŻáááŻááşáááşá
áážááşááťááş! Docker áááş ááŻáśáážááşáĄáŹá¸ááźááˇáş Docker Hub áážááşááŻáśáááşááźááşá¸ááž ááŻáśááťáŹá¸ááᯠáá˝á˛ááŻááşáááşá
Docker ááŻáśááťáŹá¸ááᯠá¤áĄááźáąááśááŻáśááťáŹá¸ááž áááşááŽá¸áááŻááşáááşá á¤ááŻáśááťáŹá¸ááᯠáááşááŽá¸áááşáĄáá˝ááş áĄáááˇáşááťáŹá¸ááᯠááąáŤáşááŤáááşá áá˝ážááşááźáŹá¸ááťááşáá áşááŻá áŽáááş ááŻáśáĄáá áş áááŻáˇáááŻááş áĄáááˇáşáá áşááŻááᯠáááşááŽá¸áááşá áá˝ážááşááźáŹá¸ááťááşááťáŹá¸áááş áĄáąáŹááşááŤáĄáááŻááşá¸ááźá áşááááˇáşáááş-
- command ááᯠrun ááŤá
- áááŻááş áááŻáˇáááŻááş áááşá¸áá˝ážááşááᯠáááˇáşááźááşá¸á
- áááşáááşá¸ááťááşááźáąáŹááşá¸áá˛áážáŻáá áşááŻáááşááŽá¸ááźááşá¸á
- á¤ááŻáśá áá˝ááşááááşááŹááᯠá áááşááąáŹáĄááŤáá˝ááş áááşáááˇáşáĄáᏠááŻááşááąáŹááşááááşááᯠáááşá¸áá˝ážááşááťááş
á¤áá˝ážááşááźáŹá¸ááťááşááťáŹá¸ááᯠáááŻááşáá
áşááŻáá˝ááş ááááşá¸áááşá¸ááŹá¸áááşá Dockerfile
. Docker á ááŤáááŻáááşáááşá Dockerfile
ááŻááşááŻáśáááŻáááşááąáŹááşááąáŹáĄááŤá á¤áá˝ážááşááźáŹá¸ááťááşááťáŹá¸áááŻááŻááşááąáŹááşááźáŽá¸ ááąáŹááşááŻáśá¸ááŻáśáĄáŹá¸ ááźááşáááŻáˇááąá¸áááşá
docker áážááşááŻáśáááşááźááşá¸áááşáááŻáˇáĄááŻááşááŻááşááááşá¸á
áážááşááŻáśáááşááźááşá¸áááş docker ááŻáśááťáŹá¸áĄáá˝ááş áááŻáážáąáŹááşáážáŻáá áşááŻááźá áşáááşá ááŻáśáááşááŽá¸ááźáŽá¸áááşáážááˇáşá áááşá¸ááᯠáĄááťáŹá¸áá°áážáŹ Docker Hub áážááşááŻáśáááşááźááşá¸ áááŻáˇáááŻááş áááşááááŻááşááąá¸áááŻááşááŹáážááşááŻáśáááşááźááşá¸áááŻáˇ ááŻááşááąáááŻááşáááşá
docker client ááźááˇáşá áááşáááş ááŻááşááąááźáŽá¸ááŹá¸ ááŻáśááťáŹá¸ááᯠáážáŹáá˝áąáááŻááşááźáŽá¸ áá˝ááşááááşááŹááťáŹá¸áááşááŽá¸áááşáĄáá˝ááş áááşá¸áááŻáˇááᯠáááşá docker á ááşáá˝ááş ááąáŤááşá¸ááŻááşááŻááşáááŻááşááŤáááşá
Docker Hub áááş áĄááťáŹá¸áá°áážáŹáážááˇáş ááŻáášáááá ááŻááşááŻáśáááŻáážáąáŹááşáážáŻááťáŹá¸ááᯠááśáˇáááŻá¸ááąá¸áááşá áĄááťáŹá¸áá°áážáŹ áááŻáážáąáŹááşááŻáśááťáŹá¸ááž ááŻáśááťáŹá¸ááᯠáážáŹáá˝áąááźááşá¸áážááˇáş ááąáŤááşá¸ááŻááşááŻááşááźááşá¸ááᯠáá°áááŻááşá¸ááááŻááşááŤáááşá ááŽá¸áááˇáşáááŻáážáąáŹááşáážáŻá áĄááźáąáŹááşá¸áĄááŹááťáŹá¸ááᯠáážáŹáá˝áąáážáŻááááşááťáŹá¸áá˝ááş áááŤáááşááŤá áááşáážááˇáş áááˇáşáĄááŻáśá¸ááźáŻáá°ááťáŹá¸áᏠá¤ááŻáśááťáŹá¸ááᯠáááşááśáááŻááşááźáŽá¸ áááşá¸áááŻáˇááśááž áá˝ááşááááşááŹááťáŹá¸ááᯠáááşááŽá¸áááŻááşáááşá
áá˝ááşááááşááŹáááşáááŻáĄááŻááşááŻááşááá˛á
áá˝ááşááááşááŹáá áşááŻáá˝ááş áááşáááşáážáŻá áá áşá áĄááŻáśá¸ááźáŻáá°áááŻááşááťáŹá¸áážááˇáş áááşááŹááąááŹááťáŹá¸ ááŤáááşááŤáááşá ááťá˝ááşáŻááşáááŻáˇáááááˇáşáĄáááŻááşá¸ áá˝ááşááááşááŹáá áşááŻá áŽááᯠááŻáśáá áşááŻááž áááşááŽá¸ááŹá¸áááşá á¤ááŻáśáááş docker áááş áá˝ááşááááşááŹáá˝ááşáážáááąáŹáĄááŹá áááşáááˇáşááŻááşáááşá¸á ááşáááŻá áááşáááşá áá˝ááşááááşááŹá áááşáááˇáşáĄááŤáážááˇáş áĄááźáŹá¸áá˝á˛áˇá ááşá¸ááŻáśááąááŹááťáŹá¸ááᯠááźáąáŹááźáááşá Docker ááŻáśáááş áááşáááşááŹááźá áşáááşá docker áááş áá˝ááşááááşááŹáá áşááŻááᯠá áááşááąáŹáĄááŤá áááşá¸áááş áĄáááŽááąá¸áážááşá¸ááᯠrun áááŻááşáááˇáş (ááááşááąáŹáşááźááŹá¸áááˇáşáĄáááŻááşá¸ union áááŻááşá áá áşáĄáŹá¸ áĄááŻáśá¸ááźáŻá) ááŻáśááĄááąáŤáşáážá read/write layer ááᯠáááşááŽá¸ááąá¸ááŤáááşá
áá˝ááşááááşááŹá áááşááąáŹáĄá፠ááŹááźá áşáá˝áŹá¸ááááşá¸á
áááŻáˇáááŻááş ááááŻááááşááᯠáĄááŻáśá¸ááźáŻááŤá docker
áááŻáˇáááŻááş RESTful API áááŻáĄááŻáśá¸ááźáŻá docker client ááž docker daemon áĄáŹá¸ áá˝ááşááááşááŹáááŻá
áááşáááşááźáąáŹááŤáááşá
$ sudo docker run -i -t ubuntu /bin/bash
áᎠcommand áááŻááźááˇáşááĄáąáŹááşá ááááŻááşá¸áááˇáşáááş command ááᯠáĄááŻáśá¸ááźáŻá á
áááşáááşá docker
áá˝áąá¸ááťááşáážáŻáážááˇáşáĄáá° run
áá˝ááşááááşááŹáĄáá
áşáá
áşáᯠáá˝ážááˇáşáááşáááşááŻáááŻáááşá áá˝ááşááááşááŹáá
áşááŻáááşáááşáááş áĄáááşá¸ááŻáśá¸áááŻáĄááşááťááşááťáŹá¸áážáŹ áĄáąáŹááşááŤáĄáááşáĄááťááşá¸ááťáŹá¸ááźá
áşáááş-
- áá˝ááşááááşááŹáááşááŽá¸áááş áááşáááˇáşááŻáśááᯠáĄááŻáśá¸ááźáŻááááşáááşá¸á ááŤáááŻáˇááá
ášá
ubuntu
- áá˝ááşááááşááŹááᯠá
áááşááąáŹáĄááŤáá˝ááş áááşááŻááşááąáŹááşáááŻááąáŹ command áááŻá ááŤáááŻáˇááá
ášá
/bin/bash
áᎠcommand ááᯠrun áá˛áˇáĄá፠hood áĄáąáŹááşáážáŹ ááŹááźá áşáá˝áŹá¸ááá˛á
Docker áááş áĄáąáŹááşááŤáĄáááŻááşá¸ ááŻááşááąáŹááşáááşá
- ubuntu ááŻáśááᯠááąáŤááşá¸ááŻááşááŻááşáááş- Docker áááş ááŻááşááŻáśááážááááŻááşáážáŻááᯠá
á
áşááąá¸áááşá
ubuntu
local machine áážáŹááážááááş ááąáŤááşá¸ááŻááşááŻááşááŤáDocker áĄááťááşáĄááťáŹ . ááŻáśáá áşááŻáážáááťážááş áá˝ááşááááşááŹáá áşááŻáááşááŽá¸áááş áááşá¸áááŻáĄááŻáśá¸ááźáŻáááşá - áá˝ááşááááşááŹáá áşáᯠáááşááŽá¸áááş- ááŻáśáĄáŹá¸ áááşááśááážáááąáŹáĄááŤáá˝ááş docker áááş áááşá¸ááᯠcontainer áá áşááŻáááşááŽá¸áááş áĄááŻáśá¸ááźáŻáááşá
- áááŻááşá áá áşááᯠáĄá ááźáŻááźáŽá¸ áááşáááşáᏠáĄáááˇáşááᯠáááşáááşáááş- áá˝ááşááááşááŹááᯠáááŻááşá áá áşáá˝ááş áááşááŽá¸ááŹá¸ááźáŽá¸ ááŻááşááŻáśáĄáŹá¸ áááşáááşááŽá¸áááˇáşáĄáááˇáşáááŻáˇ áááˇáşáá˝ááşá¸ááŹá¸áááşá
- áá˝ááşáááş/ááśááŹá¸ááᯠáĄá ááźáŻáááş- docker áááş host machine áážááˇáş áááşáá˝ááşáááŻááşá áąáááˇáş network interface ááᯠáááşááŽá¸ááąá¸áááş á
- IP ááááşá áŹááᯠáááşáážááşááźááşá¸- ááááşá áŹááᯠáážáŹáá˝áąááźáŽá¸ áááşáážááşááąá¸áááşá
- áááşáážááşááŹá¸ááąáŹ ááŻááşáááşá¸á ááşááᯠá áááşáááş- áááşáááťážáąáŹááşáá˝ážáŹáááŻáá˝ááˇáşááŤá
- áááˇáşáĄáááŽááąá¸áážááşá¸ááž áĄáá˝ááşááᯠá áŽááśááąáŹááşáá˝ááşááąá¸áááş- áááˇáşáĄáááŽááąá¸áážááşá¸á á áśáááˇáşáá˝ááşá¸áážáŻá áĄáá˝ááşáážááˇáş áĄáážáŹá¸áĄáá˝ááşá¸ááťáŹá¸ááᯠááťáááşáááşááźáŽá¸ áážááşáááşá¸áááşááźááşá¸ááźááˇáş áááˇáşáĄáááŽááąá¸áážááşá¸á á˝ááşá¸ááąáŹááşáááşááᯠááźáąááŹááśáááŻááşáááşááźá áşáááşá
ááᯠáááˇáşáá˝ááş áĄááŻááşááŻááşáááˇáş áá˝ááşááááşááŹáá áşáᯠáážááááşá áááˇáşáá˝ááşááááşááŹááᯠá áŽááśáááˇáşáá˝á˛áááŻááşááźáŽá¸ áááˇáşáĄááşááşááŽááąá¸áážááşá¸áážááˇáş áĄááźááşáĄáážááşáááşáá˝ááşáááŻááşáááşá áĄáááŽááąá¸áážááşá¸ááᯠáááşáááş ááŻáśá¸ááźááşááąáŹáĄááŤá áá˝ááşááááşááŹááᯠááťááşááŤá
áĄááŻáśá¸ááźáŻáá˛áˇáááşá¸áááŹááťáŹá¸
Docker áááş Go ááźááˇáşááąá¸ááŹá¸ááŹá¸ááźáŽá¸ áĄáááşááąáŹáşááźááŤááŻááşááąáŹááşááťááşááťáŹá¸áááŻáĄááąáŹááşáĄáááşááąáŹáşáááş Linux kernel áĄááťááŻáˇáááŻáĄááŻáśá¸ááźáŻáááşá
áĄáááşááąááŹááťáŹá¸
Docker áááş áááşá¸áááŹááᯠáĄááŻáśá¸ááźáŻáááşá namespaces
áá˝ááşááááşááŹááťáŹá¸ááŻááąáŤáşááąáŹ ááŽá¸ááźáŹá¸áĄááŻááşááąááŹááťáŹá¸ááᯠá
áŻá
ááşá¸áááşá ááťá˝ááşáŻááşáááŻáˇáááş áá˝ááşááááşááŹáá
áşááŻááᯠá
áááşááąáŹáĄááŤá docker áááş áááŻáá˝ááşááááşááŹáĄáá˝ááş namespaces áĄá
áŻáśááᯠáááşááŽá¸áááşá
áááşá¸áááş áá˝ááşááááşááŹá áážáŻááąáŹááˇáşáá áşááŻá áŽááᯠáááşá¸ááááŻááşáááŻááşáĄáááşááąááŹá ááŻááşááąáŹááşááąááźáŽá¸ ááźááşáá áá áşáááŻáˇáááşááąáŹááşáá˝ááˇáşááážááááźááˇáş ááŽá¸ááźáŹá¸áĄáá˝ážáŹáá áşááŻááᯠáááşááŽá¸ááąá¸áááşá
docker áĄááŻáśá¸ááźáŻááąáŹ namespace áĄááťááŻáˇáá áŹáááşá¸-
- pid- ááŻááşáááşá¸á ááşáááŻáá˝á˛ááŻááşáááş;
- áĄááŹá¸áááş: áá˝ááşáááş áĄááşááŹááąáˇá áşááťáŹá¸ááᯠá áŽááśáááˇáşáá˝á˛áááşá
- ipc- IPC áĄáááşá¸áĄááźá áşááťáŹá¸ááᯠá áŽááśáááˇáşáá˝á˛áááşá (ICP: InterProccess Communication);
- mnt- ááąáŹááşáĄááťááşááťáŹá¸ááᯠá áŽááśáááˇáşáá˝á˛áááşá
- ááášááŹáá áşáá˝ážáŹá¸áááŻááźááááááşáĄááťáááş: kernel ááᯠáá˝á˛ááŻááşáááşáážááˇáş ááááşá¸ááťáŻááşááŹá¸áážááşá¸ ááťááŻá¸áááş (UTC: Unix áĄááźáááşáá˝á˛ááąááźááşá¸á áá áş)á
ááááşá¸ááťáŻááşááąá¸áĄáá˝á˛áˇááťáŹá¸
Docker áááşáááşá¸ áááşá¸áááŹááᯠáĄááŻáśá¸ááźáŻáááşá cgroups
áááŻáˇáááŻááş ááááşá¸ááťáŻááşááąá¸áĄáá˝á˛áˇááťáŹá¸á áĄááşáááŽááąá¸áážááşá¸áá
áşááŻáĄáŹá¸ ááŽá¸ááźáŹá¸ááŻááşááąáŹááşááźááşá¸áááąáŹáˇááťááşáážáŹ áĄáááŽááąá¸áážááşá¸áĄáŹá¸ áááşááśáˇáááŻá¸ááąá¸áááŻááąáŹáĄáááşá¸áĄááźá
áşááťáŹá¸áᏠááąá¸ááąáŹááşáááşááźá
áşáááşá ááŤááž áá˝ááşááááşááŹáá˝áąáᏠáĄáááşááŽá¸ááťááşá¸ááąáŹááşá¸áá˝áą ááźá
áşááŹáážáŹ ááąááťáŹááŤáááşá ááááşá¸ááťáŻááşááąá¸áĄáá˝á˛áˇááťáŹá¸á áááˇáşáĄáŹá¸ ááážááááŻááşááąáŹ ááŹáˇááşáá˛áĄáááşá¸áĄááźá
áşááťáŹá¸ááᯠááťážááąáá˝ááˇáşááźáŻááźáŽá¸ áááŻáĄááşááŤá áááˇáşáááşááťááşááťáŹá¸áážááˇáş áááˇáşáááşááťááşááťáŹá¸ááᯠáááşáážááşááŤá áĽáááŹá áá˝ááşááááşááŹáĄáá˝ááş ááźá
áşáááŻááşááťáąáážáááąáŹ memory áááŹáááᯠáááˇáşáááşááŤá
ááźááşááąáŹááşá áŻáááŻááşá áá áş
Union File Sysem áááŻáˇáááŻááş UnionFS áááş áĄáá˝ááşááąáŤáˇááŤá¸ááźáŽá¸ ááźááşáááşá áąáááş áĄáá˝ážáŹááťáŹá¸áááşááŽá¸ááźááşá¸ááźááˇáş áĄááŻááşááŻááşááąáŹ áááŻááşá áá áşáá áşááŻááźá áşáááşá Docker áááş áá˝ááşááááşááŹáááşááąáŹááşááŹá¸áááˇáş áááąáŹááşááťáŹá¸ááᯠáááşááŽá¸áááş UnionFS ááᯠáĄááŻáśá¸ááźáŻáááşá Docker áááş AUFSá btrfsá vfs áážááˇáş DeviceMapper áĄááŤáĄáááş UnionFS á áá°áá˝á˛ááťáŹá¸á á˝áŹááᯠáĄááŻáśá¸ááźáŻáááŻááşáááşá
áá˝ááşááááşááŹááŻáśá áśááťáŹá¸
Docker áááş á¤áĄá
áááşáĄáááŻááşá¸ááťáŹá¸ááᯠcontainer format ááŻááąáŤáşááąáŹ wrapper áá
áşááŻáĄááźá
áş ááąáŤááşá¸á
ááşááŹá¸áááşá áá°áááşá¸ááŻáśá
áśááᯠááąáŤáşáááşá libcontainer
. Docker áááş Linux ááąáŤáşáážá áááŻá¸ááŹáá˝ááşááááşááŹááąáŹáşáááşáááŻáááşá¸ áĄááŻáśá¸ááźáŻááŹá¸áááşá
source: www.habr.com