[음악 재생] 데이비드 마란 : 좋아. 와 주셔서 정말 감사합니다. 이 도커,에 CS50 세미나입니다 기술을 자신과 CS50을 우리가 지금 몇 시간 동안 사용하기 시작했습니다. 그래서 내 이름은 데이비드 마란 내가있다 하버드의 소개를 가르 칠 컴퓨터 과학에. 꽤 몇 년 동안, 우리는 학생들을 제공했습니다 다운로드 할 수있는 클라이언트 측 가상 머신 하는 그들은 자신의 문제 세트를 않습니다. 우리는 지금 전환했다고 클라우드 환경에 실제로이 기술을 사용하여 같은 도커라는 모든 CS50 그 학생들은 지금이 자신의 자신의 도커 컨테이너 당신은 곧에 대한 모든 것을들을 수있다. 또한, CS50의 서버에 몇 년 동안 측면 클러스터, 우리는 아마존의 클라우드 서버를 사용했다. 우리는 개인을 실행했다 가상 머신. 즉, 너무, 우리는로 전환하기 시작했습니다 도커 컨테이너라고 이런 일 그래서 우리의 모든 응용 프로그램은 이제 있음 완벽하게 서로 격리. 그것에 대해 더 많은 그래서,에 날 수 있습니다 , 우리의 친구, 니코와 마노를 소개합니다 도커 자체에서. 니콜라 KABAR : 감사합니다, 데이비드. 여러분, 안녕하세요. 내 이름은 니코이며,이 마노입니다. 우리는 도커에서입니다. 우리는 비슷해 얘기하는거야 도커에 사람 당신에게 소개를주고, 희망, 끝으로 이 이야기의 당신은 깨달을 수있다 당신은에 의사를 사용할 수있는 방법을 많은 응용 프로그램 개발을 옥살산 및 배포. 그래서, 우리는 진짜 시작하는거야 몇 가지 배경 정보를 신속. 도커이 모든​​ 것 설명. 그것은 어떻게 작동합니까? 그것은 어떻게 아키텍처는 무엇입니까? 나는 몇 가지 데모를하고있을 것입니다. 그리고 마노가 될 것입니다 설명 당신은 도커를 사용하는 방법 당신에게 특정 단계를주는 당신은 시작하는 방법. 너희들이 보유 할 수 있다면 감사하겠습니다 끝으로 귀하의 질문에 대한 끕니다. 그런 식으로, 나는 그를 해결 될 수 있습니다 프레젠테이션을 통해 질문. 그래서 우리는 약간의 시간을 떠날거야 질문에 대한 끝으로. 누가이 빠르고, 그래서 그냥 진짜 실제로 지금까지 도커에 근무, 그와 함께 연주처럼? 신난다. 시원한. 큰. 그래서, 나는 시작하는거야 일부 역사. 그래서 다시 90 년대와 기본적으로 2000 년대 초반, 웹 개발자, 응용 프로그램 개발자로서, 그들은 응용 프로그램을 배포 갔을 때 그것은 베어 메탈로 연결되었다. 그것은 하나의 서버이었다. 이것은 하나의 애플리케이션이다. 전통적으로, 예를 들어 LAMP 스택처럼 될 것이다, 실제로로했다 경우 자원의 풀을 가지고. CPU, 메모리, 디스크, 네트워크 설치 그 꼭대기에 운영 체제입니다. 당신이 뭔가를 제공하는 경우, 경우 실제로, 웹 서버가있어 당신이 뭔가를 필요 아파치는 서비스를 제공한다. 응용 프로그램의 경우 데이터베이스, 백핸드 필요 당신이 뭔가를 설치합니다 MySQL은 같은, 등등. 그리고 당신은 실행 시간을 필요로하는 경우, PHPs 그리고 PHP는 예언을하는 일이 있었다. 그래서 우리는 사실에 있었다 순서대로 그 조치를 취할 응용 프로그램 및 실행을 얻을 수 있습니다. 당신이 더 많은 컴퓨팅 파워를 필요로하는 경우를 기본적 옵스 사람에게 전화했다 또는 여자 가서 새를 올릴하기 하드웨어의 조각, 연결, 당신은 사람들을 반복해야 프로세스를 다시 다시. 따라서이 공정은, 상대적으로 비싼. 확실히 매우 느렸다. 그것은 비효율적이었다. 그리고 많은 경우에, 당신의 하드웨어는 충분히 활용했다. 그래서, 90 년대 후반과 2000 년대 초반, 하드웨어 가상화는 가로 질러왔다. 그리고 당신은 여기에서 볼 수 있듯이 사진, 그들은했다 기본적으로 무엇을 풀을 추출한다 무료 하드웨어 리소스 및 종류의 사람들을 봉사 상위층, 이 경우, 게스트 운영 시스템. 그리고 전체 아이디어 가상 머신을 가로 질러왔다 그것은 진정으로 클라우드 도움 오늘날 우리가 알고있는 컴퓨팅. 그래서 무엇을 의미하는지 당신은 여러 VM을 실행할 수있는 여러 스택을 의미, 여러 동일한 물리적 시스템에 응용 프로그램입니다. 이것은 확실히에 도움 응용 프로그램 배포의 속도. 확실히 경비와. 당신은 가서 지출 할 필요가 없습니다 에너지, 시간 및 자원 래크 더 많은 서버는 더 많은 컴퓨팅에 도착합니다. 그리고 속도는 실제로 가져 이러한 리소스의 최대 훨씬 빠릅니다. 큰. 그래서 우리는 바로, 세계 기아를 해결? 아니 정말. 그래서, 가상화는 많은 그건로 실제로 문제를 해결, 도움, 그것은 실제로 도입 많은 도전. 확실히 하이퍼 바이저 복잡성을 많이 도입 그 기본 처리 자원의 풀. 그것은 의미에서 무겁다 전에 그 단일 운영 체제 있던 디스크 셋, 넷 기가 같다. 지금, 당신은 (10) 기계가있는 경우 하나의 하드웨어에 당신은 곱해야 기계의 수에 의해. 그것은 확실히 더 어떤 의미에서 비싼 당신 여전히 에 대한 라이센스를 취득해야합니다 가상화 기술 그것은 오픈 소스가 아니라면. 그러나,의 모든을하지 말자 가상화에서 신용. 무슨 일하는 것이 있기 때문에 거기에 스택 및 소프트웨어의 많은 많은 활성화 된 기술 당신이 얻을 수 있었다 의해 얼마나 빨리 클라우드 붐 자원. 그래서, 오늘은 하나의 응용 프로그램이나 서비스를 수 다음의 임의의 런타임을 사용 또는 데이터베이스. PHP, 파이썬, MySQL은, 레디 스, 이것 저것. 그래서 많은 복잡성이에있다 스택의 수는 실제로 불러옵니다 하나의 서비스를 제공합니다. 그리고 그와 함께, 당신은 많이했다 기본 자원이나 인프라 유형 배포를 테스트하고 기본적하기 해당 응용 프로그램 제작에 소요 것을 개발하고 있습니다. 당신의 팀이 특히 이러한 응용 프로그램 작업을 져, 많은이있다 복잡성과 과제 그는 것을 보장하기 위해 주어졌다 cycle-- 기본적으로 응용 프로그램 개발주기이고, 실제로 성공. 그래서, 사실 그 응용 프로그램 해당 지역의 VM에 로컬로 작동 동료 보장하지 않습니다 동일한 결과를 기대하는 것입니다. 그리고 운영 팀은 때 당신이 무엇을 복용에 참여 및 생산을 배포 규모도 보장이 없다 이 실제로 일어날 것이다. 그래서 이것은 정말 우리를 잎 물음표를 많이 big-- 많은 도전 실제로 유사하게 다시 일에 직면했다. 그리고 그것은 우리에게 상기시켜 해운 업계. 해운 업계 그래서 제품을 많이했다, 대로 좌측에서 볼 수있다. 그리고 오른쪽에, , 많이, 기본적으로있다 방법은 그 제품을 배송합니다. 그리고 무슨 일이 부부 발생 여러분, 함께 와서 말했다 우리는 방법을 표준화 할 필요가 우리는 실제로 그 상품을 제공. 그리고 붐, 당신은이 복합 운송 컨테이너. 그래서 그들은 대부분에 합의 컨테이너에 대한 일반적인 크기. 어떻게 그들을 처리한다. 정확히 어떤 방법을 당신이 필요로하는 을로드하고 언로드합니다. 따라서, 그 진정한 해운 업계를 도왔다. 지금 90 % 이상의 포커스 반송 전 세계적으로 그 용기를 사용하고 있습니다. 그리고 확실히 감소 비용뿐만 아니라 운송으로 인한 손해. 그래서 우리는 같은 모델을 가지고 우리 두 응용 프로그램 개발 소프트웨어를 적용 의미의 구조, 그 컨테이너 수송 한 수준까지 가상화를했다. 그래서 그 대신 것을 일을 하드웨어 레벨에서, 이 동작의 이상이되었다 시스템 레벨 가상화. 그리고 우리는 각을 제공하여 그렇게 자신의 경량의 응용 프로그램, 고립 된, 실행 가능하고, 휴대용, 가장 중요한 것은, 방법은 실제로 패키지 그것을 실행하는 데 필요한 모든 것을. 어디서나 실행할 수 있습니다. 그래서 상관없이 당신은 그것을 실행하는 경우 지역 dev에 환경, 생산 환경, 스테이징 또는 테스트. 아무리 기본이 무엇인지 기반 시설이있다 당신은 기능 작동하는 응용 프로그램을 가지고 있었다. 그래서 기본적으로 정확히 무엇을의 용기는이 문제를 어떻게. 그들은하여 해결 이러한 방식으로 포장 그것은이 전개 있다고 보장 할 수 있음 성공적으로 살아 상관없이. 당신이려고하는 경우에 따라서 같은, 밥은 여전히​​ 괜찮다. 당신은 무슨 말인지과 혼동하는 경우, 그에 정성 들여 할거야. 어떻게 도커 자체가 않습니다 이 사진에 맞지? 그래서 고정 표시기 오픈 플랫폼이다 쉽게로 쉽게 강조, 선박을 구축 실행하려면 경량의 휴대용 자기 어디 충분한 응용 프로그램 컨테이너. 당신이 뭔가를 가지고 있다면 이야기, 다음을 확인하시기 바랍니다. 당신은 당신의 응용 프로그램 실행이있는 경우 로컬 및 당신은 그것을 개발 도커 플랫폼을 사용하여, 기대 그것은 성공적으로 배포 할 수 있습니다. 상관없이이 없습니다 기본 인프라. 당신은 도커 그래서 만약 그리고 그 후, 용기를 일하고 한 도커 거기로 다른 쪽 ...에 엔진 당신의 작업 인프라 경우 그것은하는지 여부에 관계없이 클라우드를 사용하고 있습니다 이다는 AWS, 또는 구글이나 마이크로 소프트, 또는 공용 클라우드의, 또는 자신의 클라우드, 또는 열려있는 스택 클라우드, 또는 해당 지역의 환경을 제공합니다. 당신은 엔진이있는 경우 실행, 즉, 그것은 될 것 성공적으로 거기에 배치했다. 이 실행 될 것 정확히 같은 행동 당신이 그것을 아키텍처로합니다. 우리가 at-- 보면 그래서 나는거야 무엇 실제로 통해 이동합니다 도커의 주요 구성 요소에 있습니다. 그래서 엔진은 도커의 핵심입니다. 그것은 뇌의입니다. 그것은, 건물, 배송 조율 과 배포 및 관리 용기 자체. 나는 엔진이 무엇을 파고 있습니다 두 번째의 자세한 내용입니다. 기본적으로, 의사 구축 되었기 때문에 클라이언트 서버 아키텍처 주위 그래서와 상호 작용하기 위해서 엔진 당신은 클라이언트의 일종이 필요합니다. 이미지 템플릿입니다 있는 내장되어 용기. 그래서 이미지는 기본적으로 있습니다 단지 정적 파일. 템플릿 및 용기 실제로 무슨 일이있어입니다 런타임에 실행하는 응용 프로그램을 제공하고있다 또는 데이터로 뭔가를하고. 레지스트리는의 문제로 다루어진다 어떻게 당신은 실제로 이미지를 배포 할 수 있습니다. 그래서 당신은 이미지를 공유 할 필요가있는 경우 당신은 당신의 동료로 일했다 또는 작전 팀, 당신 레지스트리를 사용 사용. 당신은 오픈 소스를 다운로드 할 수 있습니다 그것의 버전 고정 표시기에 일했다 및 공급 엽니 다. 아니면 도커 도움말을 사용할 수 있습니다, 이는 클라우드 버전입니다 밀어 거기 이미지를 당깁니다. 즉, 큰 일이다. 거대한이 있기 때문에 도커 주변 생태계 그것은이다 정말로 심하게 허브를 이용. 그래서 여기에 요약,이 얼마나 미니멀 도커 워크 플로우 클라이언트. 사용자는, 호스트와 상호 작용할 이 경우 IT는 도커 데몬입니다. 이 엔진과 같은 일이다. 당신은 할 명령 등 고정 표시기, 풀, 실행을 구축 할 수 있습니다. 및 엔진 자체 간다 그 일을한다. 그러니 그것과 상호 작용 레지스트리는 그 이미지를 당겨 및 화상 층. 배포 할 경우, 실행 여부 용기는, 그들을 던져 그들을 죽일 선반. 그래서이 워크 플로를 요약 이들 성분의. 당신은 모든 걸릴 그래서 경우 자체 구성 요소입니다. 그래서 엔진, 그냥 데몬입니다. 그것은 종류의 지원을 재생할 수 있습니다 리눅스에가 않기 때문에 특정 리눅스 커널 기능을 필요로합니다. 그러나 윈도우 작동 같은 일을합니다. 그것은 지원해야하는데 윈도우 서버 2016. 와 그래서, 다시, 책임 엔진에, 또는 이미지를 구축 할 수 있습니다. 도커에서 이미지를 당겨 허브 또는 자신의 레지스트리. 당신은 그 이미지를 수행하는 경우 또는 당신은 새로운 이미지를 만들 당신은 레지스트리에 그 뒤로 밀어 수 있습니다 다른 팀에게 배포합니다. 그리고 시도는 로컬을 포함하는 과 용기의 수명주기를 관리 장소 상에서. 그것은 HTTP REST API를 중심으로 구축된다. 그래서 기술적으로 수행 할 수 있습니다 자신의 클라이언트를 쓰기 것이면 매우 인 HTTP를 사용하므로 표준기구는 엔진에 얘기 및 기타 서비스의 많은. 그리고 당신은에서 볼 수 여기에 관계없이 무엇 인프라 모든 주는거만큼이다 당신은 운영이 필요 시스템, 리눅스 특히. 그리고 당신은 도커 엔진을 설치할 수 있습니다 그 꼭대기에 그것을 실행했다 그리고, 기본적으로 조율 모든 응용 한 개, 두 개, 세 실제 컨테이너입니다. 그래서 엔진입니다. 나는 이전 때문에 언급 한 바와 같이 당신은 엔진과 상호 작용해야 클라이언트가있다. 그러나 실제로는 설치할 때 그것으로 고정 표시기, 그것을 제공됩니다. 그래서이 설치됩니다 그래서 하나의 바이너리입니다. 그리고 당신은 시내 통화를 할 수 당신의 도커 엔진. 원격 엔진 또는 원격 호출. 그것은으로, HTTP를 사용합니까 나는 앞서 언급. 라는 GUI 클라이언트가있다 도커에서 Kitematic. 그리고 확실히있다 다른 사람들의 많은 누가 많이 구축 기본적으로 구현 GUI를 일부 HTTP는 엔진 얘기를 호출합니다. 그냥 몇 가지 샘플 명령. 만약 도커 버전을 할 경우 것 당신에게 클라이언트 버전을 보여뿐만 아니라 서버 버전. 당신이 도커 정보를한다면 그것은 것 당신에게 모든 정보를 알려 얼마나 많은 용기 실행에 대한 또는 생성, 당신이 얼마나 많은 이미지, 등등 등등. 나는 여기에 다음에,이 마지막 상자, 나는 의사 실행해야합니다. 그래서 나는 실제로 해요 방법 컨테이너를 생성. 그리고 나는 안녕하세요 반향을주는거야 그리고 두 번째와 이것 저것 잠. 그리고 당신은 볼 수 있습니다 결과. 그래서 진행합니다. 그리고 리눅스 PS와 유사한, 당신은 볼 수 있습니다 이 경우에는 모든 과정과, 실행중인 모든 컨테이너. 이 하나의 참조로 돌아 가기 컨테이너 그냥 만들었습니다. 그래서, 그 이유는 실제로 중요 같은, 그것은 조금 혼란 스러울 수 있습니다. 그래서 이미지는 읽기 전용 파일의 수집, 오른쪽? 그들은 우리의 용기의 기반이되는 무엇인가. 그러나 그들은 읽기 전용하고 있습니다. 그래서 당신은 기본 이미지로 시작. 이 때문에, OS와 같은 모방하는 경향이있다 우분투, CentOS에, 이것 저것 기본 이미지입니다. 그리고 당신은 위에 구축 시작 즉, 특정 계층, 즉 만들 것 최종 이미지는, 끝이 여기에 결과. 이들 각 층 부모의 이미지를 가지고 있어야 이 때를 참조하는 실제로 만들려고합니다. 이들은 의미에서 불변 , 그들이 있기 때문에 읽기 전용이 당신은 실제로 수 없습니다 그들을 변경합니다. 당신은을 만들 수 있습니다 이미지에서 용기있는 모든 후속를 호출합니다 그 아래에 필요한 이미지. 당신은 변경할 수 있습니다 다른 층에, 그것은 내가거야 재 작성 층의 두 번째에 대한 이야기​​. 그러나 이들 각 층 변경되지 않습니다. 기본적으로 이미지는 뭔가를 사용 연합 시스템, UFS 파일이라고합니다. 그리고 다른 저장있다 이 기술을 이용하여 백엔드. 그리고 무엇을 뜻하는 것은이다 별개의 파일 시스템을 함께 제공 그들이 하나처럼 보이게합니다. 그래서 당신은 실제로 수 응용 프로그램 관점, 당신은 쇼를보기의 상단이 모든 다른 파일 시스템은 필요한 해당 응용 프로그램을 실행하십시오. 그러나 그들은이에, 실제로있어, 그들은 별도의 장소에서 실제로있어 에 의해 이용되고 뿐만 아니라 다른 용기. 당신은 여기에서 볼 수 있도록로 그 우리는 데몬 이미지로 시작하는 경우 다음 기본 이미지와 같은 우리는 가서 [추가? 이맥스?] 그리고 그 다른 층입니다. 그리고 아파치를 추가합니다. 즉, 다른 층입니다. 그리고 우리는 지출 그에서 컨테이너. 이러한 이미지의 각각, 이들 층 각각, 구별된다 할 수 있습니다 다른 컨테이너에 의해 재사용. 당신이 스스로 용기를 보면, 그들은 어떻게 든 VM-같은 같은거야 그러나 동시에 처리하지. 그래서, 그들은 가지고 있지 않은, 기술적, 그 아래에 전체 운영 체제입니다. 그들은 하나의 커널을 사용 호스트 운영 시스템. 그리고 그들은 그 위에 구축 할 수 있습니다. 그들은 어떻게 보는가에 모방. 그들은 그들의 루트 파일을 모방 운영 체제의 시스템. 그러나 실제로 복제되지 않습니다. 그래서, 대신 불변의 층을 갖는, 컨테이너는 마지막 층 자체, 이는 판독 - 기록 층이다. 이는 또한 처리를 실행 응용 프로그램의. 그리고 그것은 기본 레이어에 따라 달라집니다. 모든 컨테이너는 이미지에서 만들었습니다. 그리고 그 이미지는 하나가 될 수 있습니다 층 또는 다층 이미지입니다. 그리고 여기서주의 할 , 도커이 많이 사용하는 또는 기록 중 복사 메커니즘을 기반으로합니다. 그래서 당신이하지 않은 경우, 실제로 그 컨테이너를 변경하기, 이 여분의 공간을 않을거야. 그래서 기본적으로 방법을이다 기록 중 복사를 요약한다. 확실히 속도 것 컨테이너의 부팅 시간. 당신이 결정하지 않는 경우 때문에 컨테이너에 대한 변경, 이미 거기에 무엇을 사용합니다. 그래서, 실제로 작동하는 방법. 그것의 일부는, 그것을 지금처럼 적어도 두 가지 핵심 커널을 사용한다 풍모. 그리고 기본적으로 무엇을이다 분리의 수준을 생성 용기 자체에 대한. 이러한 기능은 네임 스페이스와 cgroup을. 그래서 네임 스페이스에 대한 방법 격리 된 리소스를 생성 그래서 용기 자체에 그, 만 특정 자원을 볼 수 있습니다. 이러한 네트워크 인터페이스로 또는 특정 사용자 또는 이것 저것. 그리고 그 만 볼 만하다 컨테이너 내에서 액세스 할 수. 다른 측면 한계에 CGROUP 어떻게 당신이 그 자원을 사용합니다. CPU, 메모리, 디스크. 당신은, 나 나에 갈 수없는 경우 사람들은 실제로 의미 by-- 개발 된 기능 그들은 리눅스 커널의 일부입니다. 그래서 그들은 재발되지 않았습니다 하거나 도커에 의해 다시. 고정 표시기를 사용합니다. 어떤 의사 정말로 않았다 여기가 실제로 조율 만들기 각 컨테이너에 대한 네임 스페이스 과 cgroup을 만드는 것은이다 있도록 컨테이너를 만들 터무니없이 쉽게 이러한 기능을 사용하여. 물론, 내가 한 바와 같이 이전, 연합 시스템 파일과 진정으로 기록 중 복사 속도와 디스크를 도움 컨테이너의 활용. 그리고 일단 당신이 얻을 당신의 도커 주위에 손, 당신은에 얼마나 빨리 보게 될 것입니다 실제로 컨테이너와 눈물을 회전 그 아래로. 당신은 요청할 수 있습니다 경우에 따라서, 어떻게 수행 할 수 있습니다 당신은 실제로 이미지를 구축? 우리는 생성 프로세스에 의해 이미지를 구축 용기 제작의 변화, 변질 그들과이를 투입 이미지가되기에. 그래서 닭과 여기에 계란 참조 모든 컨테이너 와서 때문에 이미지와 이미지 온에서 최선을 다하고 용기에서, 대부분의 경우. 세 가지 옵션이 있습니다 이미지를 만들 수 있습니다. 내가 설명하는거야 첫 번째와 마지막. 당신은 수동으로 할 수 있습니다 가서 용기를 실행 그 변경 사항을, 같은 당신은 어떤 VM에 할 것 또는 운영 체제, 등 새로운 바이너리를 설치하는 것과, 파일 시스템 및 이것 저것을 추가. 그리고 당신은, 종료 당신은 거기까지 볼 수 있습니다. 내 컨테이너를 종료하고 있습니다. 그리고 나는 도커 커밋하고 있어요. 그리고 나는 그것을 커밋하고있다. 현재 그 수를 볼 수 있습니다 단지 UUID, 또는 제 1 12 UUID의 비트. UUID 또는 바이트. 그리고 나는 내 이미지를 호출하고 있습니다. 이제 고정 표시기 처리한다 모든 것을 기록 나는 그것을했다 새를 만드는 그 위에 이미지를 기반으로합니다. 나는 타르에 대해 얘기하지 않을거야 하지만 단일 얻을 수있는 방법은있다 하나를 만들거나 하나를 만들 타르볼을 사용하여 레이어 이미지입니다. 내가 얘기하는거야 주로 현재 사용되고 있는지, Dockerfile이다. 어떤 기술적 처음이다 도커 자체적으로 자동화 된 단계. 그래서 Dockerfiles 당신이있어 일이 있습니다 GitHub의의의 repos을 많이 보게 될 것 오늘. 그것은 기본적으로 그냥 기술하는 텍스트 파일 정확히 어떻게 이미지를 빌드합니다. 그리고, 라인마다, 실제로 작성 컨테이너는, 그 라인을 실행, 에 해당 컨테이너를 범 새로운 이미지, 그리고, 기본적으로, 이후의 모든 작업에 사용 당신은 마지막 이미지에 도달 할 때까지. 이는 기본적으로 여기에 끝을 목표를 끝낸다. 그리고 후에는 후 exec-- 쓰기 당신의 Dockerfile, 어떤 순수하게 텍스트에, 당신은 도커을 구축하고 이미지의 이름. 그리고 당신은 그 것을 가리 어디 Dockerfile은이다. 그리고 당신은 나의 이미지를 볼 것으로 예상 할 수있다 이미지가 같이 로컬 있습니다. 그래서 그냥 시각이다 어떤 일이 일어나는지의 예. 당신은 기본 이미지로 시작합니다. 당신은 용기에 그것을 실행하는 것이 기본 이미지 자체를 변경하지 않습니다. 하지만 그 대신 작성 그 위에 층을 다시 작성 위치를 변경합니다, 하는 당신은 커밋 당신은 과정까지를 반복 당신은 당신의 최종 이미지에 도착. 그리고 그렇게함으로써 다른 모든 빌드 프로세스는 동일한 층을 사용하여 그리고 same-- 기본적으로 고정 표시기 그 레이어를 캐시합니다. 나는 정확히 같은 일을 해요 경우 있도록 프로세스 대신 PHP를 설치, 파이썬을 설치하고있다. 그것은 아파치와 우분투를 사용하는 것입니다. 그런 식으로 그래서 당신은 당신의 디스크를 사용하고 있습니다. 이는 캐시를 이용하는 것 이 가능한 이미지. 마지막 조각은 레지스트리, 인 당신이 당신의 이미지를 배포하는 방법입니다. 그리고, 앞서 언급 한 바와 같이, 그것의 클라우드 버전이있다, 이는 도커 허브입니다. 당신은 이동 및 탐색 할 수 있습니다 기본적으로, 많은 그것은 공공의 SAS 제품의 그 당신은 여전히​​, 개인 이미지를 가질 수 있습니다 그러나 공공 이미지가 많이있다. 그것은 당신이 할 수있는, 실제로 무제한이다 이 무제한 공공 이미지를 밀어 넣습니다. 그리고 이것은 어떻게 당신이 할 수있다 팀과 공동 작업을 수행 할 수 있습니다. 당신이 REPO에서 당신은 단지 그들을 가리킬 수 있습니다 그리고 그들은 나 이미지를 다운로드 할 수 있습니다 그리고 그들은 그것을 다운로드 할 수 있습니다. 이야기와 그래서 충분히. 누가 진짜 빨리 몇 가지 데모를보고 싶어? 괜찮아. 그래서 나는 여기있다. 너희들은 나의 화면을 볼 수 ca를? 괜찮아. 그래서 도커 여기 실행, 그래서 이 그게 ... 확인할 수 있습니다하면 버전입니다 도커의 실행중인 그. 도커 정보를 수행 할 수 있습니다. 얼마나 많은에 대한 모든 정보를 확인 이미지들은 등등 등, 그리고. 고정 표시기 추신, 아무것도 실행이있다. 사람들을 연결된. 그래서 내가하고 싶은 첫번째 일은 쇼 당신은 당신이 쉽게 컨테이너를 실행할 수있는 방법에 대해 설명합니다. 그래서 아름다움에 대한 의사 실행, 그 경우 실제로 로컬 이미지를 찾을 수없는, 기본적으로는 닥터 허브 회담 거기를 찾으려고 당신을 위해 및 다운로드를. 그래서 도커를 포함 자연적으로, 명령을 당깁니다. 그래서 도커 실행, 안녕하세요 세계를한다면. 그래서, 먼저는거야 그것을 찾으려고합니다. 그렇지 않으면, 당신이 여기에서 볼 수 있듯이, 그것은 로컬로 찾을 수 없습니다. 지금은 두 층을 뽑아 즉, 해당 이미지를 만들어 그것을 실행. 안녕하세요 세계는 기본적으로 당신이 한 일을 출력. 그래서이 가장 쉬운 방법입니다, 하나 쉬운 예. 그래서 사실 난 그냥 달려 컨테이너가 진짜 빨리 종료되었습니다. 나는 경우, run-- 및 방법에 의해하려면 난, 당신이 알고있는 바로 그래서, 시간에 원하는 이는 데 걸리는 시간입니다 실제로 스핀 업하고이 포함되어 있습니다. 우리는 (밀리 초)을 측정하고 있습니다. 그래서 당신이 볼 수있는 얼마나 많은이 수 실제로뿐만 아니라 시험에 도움이, 뿐만 아니라 심지어 배포. 그래서 빠른 노트는에있다. 난 다음 일은 하기 위하여려고하는 것은 실제로 이미 준비했습니다 이미지를 실행합니다. 그래서 실행을 고정 표시기. -d 말할 단지 플래그입니다 그것은 백그라운드에서 실행합니다. 그리고 -p 특정 포트를 할당합니다. 때문에 기본적으로, 용기, 절연입니다 그래서 당신은 정확하게 지정해야 어떻게 액세스 할 수 있습니다. 이 경우, 나는 도커를 말하는거야 호스트에서 임의의 포트를 매핑 내부의 지정된 포트에 컨테이너 자체. 그리고 그 곳 image-- 기본적이다 희망이 오른쪽입니다. 그래서 병렬 다운로드 각을한다 그 층 당신은 여기에서 볼 수있다. 사람들은 층을 만드는 있습니다 내가 내장 된 최종 이미지입니다. 그것은 두 번째를 취할 것입니다. 그리고 짜잔. 나는 고정 표시기의 PS를 할 경우 그래서 지금, 내가해야 실행 뭔가를 참조하십시오. 나는 이미지를 ID를 볼 수 이 것을 그것은 기반으로 한 하고 명령을 실행하였습니다. 그리고이 액세스하는 방법 기본적으로 해당 포트로 이동합니다. 그래서 나는이 이러시면 갈거야 나는 AWS에 그것을 실행하는거야됩니다. 나는 32769에 갈거야. 죄송합니다. 그리고 여기 우리는 간다. 그래서 이것은 단지 실제로 표시하는 웹 서비스 어떤이에서 제공되는 컨테이너. 그래서 당신은 그것을 볼 수 있습니다 컨테이너 a9f에서입니다. 그리고 여기가 컨테이너의 이름입니다. 그래서 너희들은 얼마나 빨리 볼 수 있습니다 그것은 실제로뿐만 아니라 끌어이었다뿐만 아니라, 이 컨테이너를 배포합니다. 이제 다음 단계에있다 Dockerfiles 들여다 어떻게 우리가 실제로 할 수있는 새로운 이미지를 구축 할 수 있습니다. 난 그냥 클론을 얻을 갈거야, Dockerfile 이전에 기초 샘플 도, 아파치와 PHP의 하나. 바라건대 내 REPO를 기억한다. 그래서 지금은 내 저장소가 있습니다. 그리고 당신은 보게 될 것 이 많은 사실. 나는 나무를 설치하지 않았다. 그래서 기본적으로 당신은 어떻게 보게 될 것 소스 코드 문서의 주위에 그것은, 그리고에 다음 Dockerfile 방법 실제로 패키지. 그래서 그냥 샘플 PHP의 그 헬로 CS50 메아리. 나는 그것을 실행하고자한다면, 나는 고정 표시기 구축을 다하겠습니다. 나는 먼저 구축해야합니다. 나는 그것을 demo_cs50 이름을거야. 그리고 당신은 너무에 태그를해야합니다. 그럼이 점 v1에서는 호출 할 수 있습니다. 앞서 설명한 바와 같이 그래서, 오늘은 무엇을하고 있어요 내가 사용을 갈 도커을 말하고있다 that-- 실제로, 미안 해요, 내 나쁜. 우리는보고하지 않았다 Dockerfile 자체에서. 그래서 여기에있는 유일한 일이 있습니다 뿐만 아니라 추가 정보 파일의 index.php 및 Dockerfile. 그래서 당신은보기에 걸릴 경우 Dockerfile는, 그래서이다 매우 유사 무엇 나는 이전에 설명했다. 그것은 단지 무리입니다 도커 실행 단계 컨테이너를 생성하고 아래로 찢어으로 과 [? 계산?]를 이미지로. 그리고 기본적으로 당신은 할 수 see-- [들림]를 here-- 그러나이 지역에서 REPO이다. 그것은 가서 잡아 index.php를하는 것입니다. 그래서 유일한 소스 코드는 그 실제로 응용 프로그램의 일부입니다. 이 모든 것이 기본적이다 운영체제 배관 오른쪽 패키지를 얻고 아파치와 PHP 및 이것 저것. 그러나 이것은 실제로 index.php를 복용 용기로를 투입, 이미지에. 그래서 당신은 가서 실행하는 경우 다음을 수행하여 명령, 그것은, 실제로이 딴 것 이 조금 걸릴 수 있습니다. 희망이 너무 오래 걸릴하지 않습니다. 그래서 당신은 단계를 볼 수 있습니다. 그리고 이동하는 것이 좋습니다 집에 오늘 그것을 시도. 그리고 마노는 설명합니다 정확히 어떻게 당신이 할. 그러나 정확하게 볼 정말 좋아요 무슨 일이 뒤에서 무슨 일이 일어나고. 그러나 구축하는 터무니없이 쉽게 이미지가 고정 표시기를 사용하여 배포하고. 그것은 조금 복용 내가 기대했던 것보다 더. 의 너와이 식을 때 어떻게되는지 보자. 당신은 그 단계의 각을 볼 수 있도록 Dockerfile의 행을 나타냅니다. 그리고는 것을 여기에 표시 성공적으로이 이미지를 구축했다. 나는 고정 표시기 이미지를 수행한다면, 나는 갈거야 내가 로컬에있는 모든 이미지를 참조하십시오. 그 중 하나는 호출 내 자명 한 이미지의 이름, 및 태그 representing-- 주로이 버전 태그입니다. 그래서 지금은 실행하려면 그것은, 내가 고정 표시기 실행을한다. 그리고 난 그냥 -d -P을 수행 할 수 있습니다. (V1)를 수행합니다. 그래서 나는 두 가지를 가지고 지금 볼 수 있습니다 컨테이너는 하나를 실행하는 나는 단지 만들고 헬로 내가 지난있어 고정 표시기 하나. 그리고 당신은 여기에서 볼 그것은 그 수 그것은 다른 포트에 할당. 나는 동일한 IP로 이동하지만, 할당한다면 다른 port-- 희망 나는하지 않았다. 그래서 지금이 응용 프로그램입니다 난 그냥 배치있다. 내가 변경하려면, 내가 신속하게 소스 코드를 편집 할 그리고 다음을 수행하십시오. 의 안녕 하버드 해 보자. 그래서 지금 무슨 일이 일어나고 있는지 일이 난 것입니다 로 태그 것 version-- 오 다른, 아니 이것은 태그 guy-- 다른 버전. 그리고 당신은 거 야 see-- 너희들 기대 이것은 동일한 시간이 걸릴 그것을 두 번째 시간을 만들거나하지 않으려면? 좋아, 누군가는 왜 아는 사람? 발언. 청중 : [들리지] 니콜라 KABAR : 그것은 기본적으로의 우리 단지 나중에 단계 중 하나를 변경합니다. 그러므로 그것은을 사용하는 것 캐시는 그 각 층을 사용. 그리고 정말 일부의 도커의 킬러 기능 실제로 사용하는 방법이다 및 재이용은 인계 같은 용 디스크 정보의 정확한 조각. 우리는 같은 일을 할 수 있다면, 그것은 단지 몇 초 걸렸습니다. 우리는 지금 redeploy--하려면 나는 3 용기를 가져야한다. 하지만이 하나가되고 있습니다 짓이야 일곱 하나에 재직했습니다. 그래서 지금은 세 번째 컨테이너입니다. 모두가 이해 내가 그냥 여기나요? 그래서 지금 당신이 공유하고자하는 경우 친구들과 진짜 빨리 용기, 당신은 단지 고정 표시기가 밀어 할 수 희망, 용기의 이름입니다. 그래서 지금은 밀어 것 이러시면 여기에 서명하고 있지 않다. 미안합니다. 하지만 지금은이 문제를 해결하지 않을거야. 그러나 기본적으로 그 하나의 명령 그냥 밀어 올라가고있다. 그리고 당신은 할 수있을거야 당신이 도커 허브에 가면 볼 그리고 당신은, 당신이있어 로그인 그것을 볼 수있을 것. 그리고 당신은 할 수 있습니다 것입니다 누구를 가리 가서 당겨 해당 이미지를 사용할 수 있습니다. 그리고 그들은 그것을 사용할 수 있습니다. 그와 함께, 희망 나는 종류의 증명 얼마나 쉬운 그것은 도커와 함께 작동하는 것입니다. 그리고 난 그냥 갈거야 다시 마노에게 그것을 제공합니다. 그리고 그는 여기에서 받아 것입니다. MANO MARKS : 좋아 감사, 감사 니코. 그래서 뭐? 그래서 것들 중 하나 내가 하고 싶었던 함께 넣어 왜이 important--입니다 왜 도커 이유 용기 등이다 중요한 새로운 개발, 실제로 소프​​트웨어를 수행하는 새로운 방법. 내가 전에, 나는 갈거야 몇 가지 통계를 소개합니다. 나는이 모든 읽기 않을거야. 그러나 이것은 당신에게 방법을 많이 보여줍니다 인기있는이 지역 사회에있다. 핵심 도커 기술 오픈 소스입니다. 그래서 도커 엔진, 작성은이다, 스웜, 다른 물건의 무리 모든 오픈 소스입니다. 그리고 우리가 무엇을 내가했다 , 1,300 참여자를 말한다. 당신이 보면 당신이 지금보고있는 일자리의 수, 마지막으로 우리는 약 43,000 작업이었다 보았다 구멍은 구체적으로 언급 도커에 익숙. 이미지의 수백만의 수백이 도커 허브에서 다운로드. 그리고, 물론, 훨씬 더 큰 통계. 궁금해하는 사람들을 위해, 그것을 원래 파이썬으로 작성되었습니다 다음 이동에 다시. 그리고 그것은 단지되었습니다 그것은 단지의 source-- 열 약 2 년 반에 대한 릴리스되었습니다, 이는 그 2와 1/2 년을 의미합니다, 우리는 엄청난 양의 봤어요 성장과 중요성 지역 사회에서이의. 그래서 내가 얘기하고 싶지 이유에 대해 조금. 그래서 단지의 일부를 반복합니다 니코의 요점은, 고정 표시기 빠릅니다. 그것은 휴대용입니다. 그것은 재현. 그리고 그것은 표준 환경을 설정합니다. 그리고 이것은 나의 엉터리입니다 뭐 ... 근절 모노리스는 slide-- 무엇 그것은 사람들이 어떻게 돕고, 어떤 소프트웨어 산업의 많은 에 일을 시작 2000 년대 초반은, 이동 이 모 놀리에서 하나의 응용 프로그램 모든 의존성해야했다 경우 전체 응용 프로그램이 있었다 전에 테스트 , 배포 할 수있는 웹 사이트를 의미 할 수있다 한 번만 배치되었다 매 3 개월 이상, 훨씬 더 서비스 지향 아키텍처 또는 구성 요소 화 된 다른 유형 애플리케이션 아키텍처의. 그리고 이러한 허용 아키텍처 가지 그 활용 고정 표시기는이 세 가지에 실행 개발의 주요 분야, 어떤 개발은 실제 코드를 작성하고, 코드를 테스트하고 배포. 그래서 왜 중요한가? 당신이 할 수 뭐랄까 있다면 내게 예를 제공합니다. 당신은 웹 사이트 인 경우 장치 개발자, 당신이있어 을 기반으로 웹 사이트를 개발 다윗이 여기에 생성 된 데이터베이스. 죄송합니다 데이빗, 난 당신을 부르고 있어요. 당신은 배포하고 싶었다면 모든 것은, 당신은 좋겠 전통적인하에 기다려야 모 놀리 식 소프트웨어 개발 환경, 당신은 기다려야 할 것 그는 데이터베이스와 완료 될 때까지 당신은 실제로 만들 수 전에 당신의 웹 사이트에 변경 사항이 적용됩니다. 당신을 다시 전개해야 할 것이다 이렇게하는 전체 응용 프로그램. 그리고 무엇 도커 도움이 당신이 각이다 다른 구성 요소에 대한 사람의 작업 그들이 가서 그냥 만들고, 그들을 업데이트 인터페이스는 동일하게 유지 있는지 확인하십시오. 그래서 무슨 짓을했는지 그것은 사람들을 이동 것입니다 이러한 대규모 모 놀리 일부터 아키텍처 소프트웨어 그 연속으로 매달 배포 통합 및 지속적인 개발 환경. 지금 이것은, 도커에 고유하지 않습니다 하지만 고정 표시기, 그것은 훨씬 쉽게 이는 당신이 기본적으로있어 의미 지속적으로 배포. 우리는 기업 이야기 공공 직면 응용 프로그램을 배포 회 때문에 수천 그들은 단지 제작에 가치를 작은 변화, 그리고 긴 이 테스트를 통해 실행으로, 그것은 생산에 나가서시키는. 니코는 항상 나에게 이야기했다 일찍 많은 환경에서, 의 표준 수명주기 용기는 초 단위로 측정됩니다, 가상 머신 반면, 개월 단위로 측정 될 수 있습니다. 나는 약간을 가져 가고 싶어 난 때문에 여기십시오 교육 기관에서. 나는 방법의 예를주고 싶어 이 교육 연구에서 작동 상태. 그래서 조직이있다 라는 bioboxes. Bioboxes는 DNA를 수행 연구자에 대한 분석. 이제 그들이 발견하는 때 그 researcher-- 이것은 아니다 특정의 잘못 researcher--하지만 때 배포 연구원 알고리즘을 분석하고, 특정 방식으로, DNA 샘플, 그들은 소프트웨어를 작성합니다, 어쩌면하려면 해당 게시 다른 곳에서 GitHub의 또는, 그리고 그들은 수행 하였다. 그런데 문제가 있었다 그것은 그 반드시 재현하지 않았다. 순서에 있기 때문에 소프트웨어를 이해하고, 그들은을 위해 설정 될 것이다 정확한 개발 환경 이 연구는 일반적으로 사용되는 것을 자신의 노트북, 또는 서버 또는 데이터 그들이 사용하고 있음을 중심으로. 결과적으로, 매우 어려웠다 연구 결과 때를 재현하는 방법 DNA 샘플을 분석하는보고하기 incidence-- 같은 것들에 심장 발작의 발생률을 비교 존재하는 특정 유전자에 기초하여, 예, 또는 암 위험, 또는에 대한 사물의 다른 종류의. 그래서 그들은 무슨 짓을 대신했다 그들은 용기를 만들기 시작했다. 그리고 당신은 bioboxes.org로 이동 할 수 있습니다, 그것은 큰 조직이다. 그리고 그들이하는 일은 그들이 생산입니다 용기는 연구를 기반으로. 그리고 누군가가 전송 한 후 때마다 자신의 샘플에서, 그들은 그것을 실행할 수 있습니다. 그리고 그것은 모든 환경이 그 알고리즘을 실행하는 데 필요한 결과를 생성한다. 그리고 그들은 걸 찾고 있습니다 훨씬 더 가능성이 훨씬 더 빨리 할 수​​로 사람들에게 결과를 반환합니다. 그리고 사실, 어떤 사람들은 일을 DNA에 자신의 분석을 실행하고, bioboxes에 그를 전송하고, 다음 biobox 그냥 데이터를한다, 다양성에 대해 그것을 실행 다른 용기 다른 결과를 볼 수 있습니다 다른 연구를 기반으로. 그래서 그것은 매우 강력한이야 방법이있는 연구자에 수있는 하나의 인스턴스를 만들 수 있습니다 다른 사람들이 시도하고 재현 결과들. 그래서 당신은 어떻게 시작합니까? 우리가 잘 리눅스에서 지원됩니다. 설치하려는 경우에 따라서 리눅스에 아무것도, 당신은 당신의 표준을 사용 패키지 관리자는 설치합니다. 데비안을 사용하는 경우, 그것은 적절한 GET이다. CentOS에 냠입니다. 페도라 레드햇은 rpm-- 기억하지 않습니다. 어쨌든, 모든있다. 우리는 큰 다양성을 지원 리눅스 배포판. 당신은 사람들을 확인할 수 있습니다. 우리는 또한 옵션이 있습니다 당신 때문에 Mac 또는 Windows에서 실행할 수 있습니다. 지금 니코는 일찍 언급 그것은 단지 리눅스에서 지원되었다. 즉, 때문에 사실 리눅스 커널이 필요합니다. 그러나, 당신은 가상 머신에서 실행할 수 있습니다. 그리고 무엇 도커 도구 상자 당신이 다운로드 할 수있는,하지 그것은 당신에게 해당 가상 머신을 제공합니다. 그래서 그냥 빨리 (48) 두 번째, 내가 생각하는, 다운로드 할 수 있습니다. 당신은 도커 검색 도구 상자, 맥에 다운로드 이 부분은이다 물론 누구 때문에 가속화 다운로드 신호를보고 싶어? 표준 맥 설치, 그리고 당신은있어 제롬은 자신의 암호를 넣어 볼 것. 그것은 매우 흥미로운입니다. 그리고 그것은 설치 도구의 전체 무리. 특히 그것은 것 명령 줄을 설치합니다. 그리고 당신은 볼 수 있었다 제롬은 자신의 이미지를 테스트. 다음 이것을 기초 당신은 유튜브를 볼 수 있습니다 니코가 관심이라고 생각 스타 워즈, 지미 킴멜 쇼, 내가 엘렌을 생각합니다. 나는 마지막이라고 생각 엘렌 쇼에서 클립. 그래서 도커 도구 상자 비록 온다 다만 도커 기계보다 더와. 그래서 도커 기계입니다 도움이되는 것 당신은 가상 설정 윈도우에서 시스템 또는 윈도우 상자 또는 Mac을 Mac-- box-- 및 프로비저닝 작업을 수행하는 데 도움이, 그러나 그것은 또한 함께 제공 스웜 및 작성, 대형 할 수 있도록 설계되어있는 응용 프로그램의 규모 배포. 관리 할 경우에 따라서 노드의 클러스터, 용기의 클러스터, 작성 및 스웜 그것에 대해 이동하는 방법입니다. 물론이 함께 제공됩니다 도커 엔진 및 Kitematic, 어떤이 데스크톱 GUI입니다. 또한, 도커 레지스트리를 언급해야한다 도구 상자에 포함되지 않는, 그러나 당신이 당신의 자신을 실행하기위한 방법입니다 도커 같은 도커 이미지의 레지스트리 허브,하지만 당신은 그냥 사용할 수 있습니다 그렇게하는 방법으로 고정 표시기 허브. 그리고, 플롯 트위스트, 당신이보고있는 그것은 컨테이너에서 실행. 그리고 우리가있어 방법 우리의 슬라이드를 배포. 이 모든 프리젠 테이션입니다 실제로 HTML 슬라이드 갑판. 그리고 그것은에서 실행 당신이 by-- 얻을 수있는 용기, 니콜라 KABAR : 예, 그래서 그것의 나의 최대에 풀 타임을 실행. 그리고 그것에서 제시하고있다. 그리고 당신은 후 도커을 당신은 당신의 도구 상자를 설치합니다. 당신은 고정 표시기 실행을 수행 할 수 있습니다 그것을 얻는다면, 슬라이드를 사용합니다. MANO은 마크 : 그리고 그것입니다. 그래서 우리는 주셔서 모두 감사합니다. 그리고 우리가 질문에 대한 답변을 드리겠습니다. 나는 누구 전에 언급해야한다 잎 거기에 T 셔츠가있다. 죄송합니다 누군가 지켜보고있는 사람 실시간 스트리밍 또는 비디오에이, 그러나 우리는 거기에 도커 T 셔츠가 있습니다. 그리고 우리는 도커 학생들이 알고, 내 경험에 의하면, 또한, 무료 의류와 같은 교수. 이렇게와 주셔서 모두 감사합니다. 트위터에 우리를 따라 당신이 원하는, 또는하지 않을 경우. 난 상관 없어. 또한 트위터에 도커를 따릅니다. 그 또한 재미있다. 그리고 그것 뿐이다. Docker.com. 고맙습니다. [박수 갈채]