Docker 소개. 자신의 서버에 대한 간단한 Docker 이미지를 개발합니다.
작업의 러시아어 버전은 저장소에서 찾을 수 있습니다.

오늘날 바다 한가운데 어딘가에 행성 지구.
당신은 움직이는 것을 좋아하지 않았습니다. 많은 소란, 작은 행동. 그러나 당신은 다른 도시에서 Devops 세계에 몰입하기 위해 훌륭한 직업을 찾았습니다. 그리고 당신은 약간의 문제가 당신의 계획을 망치게하는 사람이 아닙니다.
당신의 오두막 창에서, 당신은 파도의 소리, 배가 평화롭게 흔들리는 소리를 듣고, 바다에 대한 가장 좋아하는 소설 인 "Moby Dick"을 기억합니다. 줄거리는 간단하지는 않지만 많은 서정적 인 다이 파리와 철학적 머물과 함께, 당신은 다른 모든 사람들과 마찬가지로이 책을 주로 Moby Dick 자신 - White Whale과 연관시킵니다.
"흠 ... 흰 고래 ..."이것은 긴 항해 중에 당신이 부두에서 일하고 싶었다는 것을 기억합니다.
Nginx ( "Engine-X"로 발음)는 HTTP, HTTPS 등을위한 오픈 소스 리버스 프록시 서버입니다. Nginx는 로드 밸런서, 웹 서버 및 HTTP 캐싱에도 사용됩니다. NGINX 프로젝트는 높은 병렬성, 고성능 및 메모리 사용량이 낮은 데 중점을 둡니다.
Nginx 에는 하나의 주요 프로세스와 여러 작업자 프로세스가 있습니다. 주요 프로세스의 주요 작업은 구성을 읽고 확인하고 작업자 프로세스를 관리하는 것입니다. 작업자 프로세스는 요청의 실제 처리를 수행합니다.
nginx 및 모듈 작동 방식이 구성 파일에 정의됩니다. 기본적으로 구성 파일을 nginx.conf 라고합니다
컨테이너는 제품에 필요한 모든 종속성을 포함하는 새로운 "실행 파일"입니다.
컨테이너화의 주요 장점은 종속성의 분리와 단일의 간단한 소프트웨어 시작 지점입니다.
기본 용어 :
Docker 는 컨테이너에서 응용 프로그램을 개발, 배포 및 실행하도록 설계된 플랫폼입니다. Docker 는 업계의 'Facto'표준 컨테이너화 도구이지만 컨테이너화 기술 중 첫 번째 또는 마지막은 아닙니다.
Docker 컨테이너의 선구자는 가상 기계였습니다. 컨테이너와 같은 가상 머신은 응용 프로그램과 그 종속성을 외부 환경에서 분리합니다. 그러나 Docker 컨테이너는 가상 머신에 비해 장점이 있습니다. 예를 들어, 포트가 매우 쉽고, 더 적은 리소스를 소비하며, 시작 및 더 빨리 실행됩니다.
도커 이미지는 레이어로 구성됩니다. 각 층은 실행중인 컨테이너의 데이터에 대해 수행 할 약간의 변경 사항을 설명합니다. 레이어 간 링크 구조는 계층 적입니다. 다른 층이 "오버레이드"되는 기본 층이 있습니다. dockerfile 은 이미지를 만드는 데 사용됩니다. 그것의 각 명령어는 새로운 레이어를 만듭니다.
Dockle은 취약점을 찾는 데 사용할 수있는 컨테이너 이미지 보안 검사 도구입니다.
Dockle 의 주요 기능과 이점 :
Docker Compose는 프로젝트 배포와 관련된 작업을 처리하기위한 도구입니다. Docker Compose는 여러 서비스가 프로젝트를 계속 실행하는 데 사용되는 경우 도움이 될 수 있습니다.
Docker Compose는 응용 프로그램의 일부인 여러 컨테이너를 동시에 관리하는 데 사용됩니다. 이 도구는 Docker와 동일한 기능을 제공하지만보다 복잡한 분산 응용 프로그램과 예를 들어 마이크로 서비스를 제공 할 수 있습니다.
작업의 결과로 처음 두 작업에 대한 보고서를 제공해야합니다. 작업의 각 부분은 보고서가 완료되면 보고서에 추가해야 할 사항을 설명합니다. 이것은 질문, 스크린 샷 등에 대한 답이 될 수 있습니다.
세 번째 작업의 결과로 웹 서버를 실행하기위한 소스 파일을 제공해야합니다.
네 번째와 다섯 번째 작업의 결과로 Dockerfiles를 제공해야합니다.
여섯 번째 작업의 결과로 Docker-Compose.yml 파일과 Dockerfiles를 실행하는 데 필요한 Dockerfiles를 제공해야합니다 (이전에 제공되지 않은 경우).
작은 연습의 최종 목표는 즉시 자신의 웹 서버에 Docker 이미지를 작성하기로 선택 했으므로 먼저 서버의 기성품 Docker 이미지를 처리해야합니다. 당신은 매우 간단한 nginx를 선택했습니다.
== 작업 ==
docker pull 사용하여 다운로드하십시오. docker images 이미지를 확인하십시오. docker run -d [image_id|repository] 로 docker image를 실행하십시오. docker ps 로 이미지가 실행 중인지 확인하십시오. docker inspect [container_id|container_name] . docker stop [container_id|container_name] 으로 Docker Image를 중지하십시오. docker ps 로 이미지가 중지되었는지 확인하십시오. docker restart [container_id|container_name] . 참고 : 무거운 파일 (> 10MB)을 git에 업로드하지 마십시오.
도커 이미지와 컨테이너가 준비되었습니다. 이제 Nginx 구성 및 디스플레이 페이지 상태를 살펴볼 수 있습니다.
== 작업 ==
docker cp 명령을 사용하여 Docker 이미지 내부의 생성 된 nginx.conf 파일을 복사하십시오. docker rmi [image_id|repository] 로 이미지를 삭제하십시오. 마지막 단계를 준비하기 위해 Docker에서 약간의 휴식을 취해야합니다. 이제 자신의 서버를 작성할 시간입니다.
== 작업 ==
Hello World! . 이제 모든 것이 준비되었습니다. 생성 된 서버의 Docker 이미지를 작성하기 시작할 수 있습니다.
== 작업 ==
Docker 이미지를 작성할 때 런 지침의 여러 통화를 피하십시오.
Nginx는 Docker 자체 내부에 설치하거나 Nginx가 있는 기성품 이미지를 기본으로 사용할 수 있습니다.
docker build 로 서면 Docker 이미지를 작성하십시오. docker images 가 모든 것이 올바르게 제작되었는지 확인하십시오. *모든 것이 올바르게 수행되면 파일을 저장하고 컨테이너를 다시 시작한 후 Docker 이미지 내부의 구성 파일은 추가 단계없이 자체적으로 업데이트해야합니다.
이미지를 작성하면 이미지를 확인하는 것은 결코 나쁜 생각이 아닙니다.
== 작업 ==
dockle [image_id|repository] 로 이전 작업에서 이미지를 확인하십시오. 거기서, 당신은 예열을 마쳤습니다. 잠깐만 기다려주세요 ... 한 번에 여러 도커 이미지로 구성된 프로젝트를 배포하면서 실험 해 보지 않겠습니까?
== 작업 ==
docker-compose build 및 docker-compose up 명령으로 프로젝트를 빌드하고 실행하십시오. 프로젝트에 대한 피드백을 남기려면 여기를 탭하십시오. 제품 팀은 실제로 교육 경험을 개선하려고합니다.