도커 얼굴 질문

첫째, 가상화는 무엇인가?

가상화는 동일한 하드웨어에 두 개의 완전히 다른 운영 체제를 실행할 수 있습니다, 운영 체제가 부팅 프로세스의 모든 겪었 각 게스트는, 커널이로드 등이다. 당신은 매우 엄격한 보안을 가질 수 있습니다!

에 따라 분류 될 수있는 방법을 가상화 가상화 접근 모방 게스트 운영 체제 및 하드웨어 시뮬레이션 클라이언트 운영 환경을 제공합니다.

가상화의 세 가지 주요 유형이 있습니다 :

  • 시뮬레이션;
  • 반 가상화 (paravirtualization);
  • 컨테이너 기반 가상화를;

둘째, 고정 표시기 및 가상 머신의 차이점은 무엇입니까?

고정 표시기는 다른 도구 컨테이너 가상화 또는 운영 체제, 가상화 및 실제 구현에 의존 가상의 방법이 아닙니다. 이를 위해, 처음에 지금 이름 runc을 libcontainer하기 위해 다음 이동을 LXC 도커 드라이버를 사용합니다. 고정 표시기는 주로 응용 프로그램 컨테이너 내에서 자동 배포 응용 프로그램에 초점을 맞추었다. 포장 및 용기 응용 프로그램이 하나의 서비스를 실행하도록 설계 컨테이너 시스템은 가상 머신 등의 여러 프로세스를 실행하도록 설계되었습니다. 따라서, 도커는 컨테이너로 간주 또는 컨테이너 체제 배포 도구에 대한 응용 프로그램을 관리 할 수.

주로 다음과 같은 분야에서 :

  • 두 번째 이하의 컨테이너를 만들 수 있도록 그리고 다른 가상 머신, 컨테이너, 운영 체제 커널을 부팅 할 필요가 없습니다. 이 기능은 컨테이너 기반 가상화 독특하고 다른 가상화 방법보다 더 바람직 할 수 있습니다;
  • 컨테이너 기반 가상화 호스트가 거의없는 오버 헤드를 부가하기 때문에, 기반 가상화 용기는 거의 고유 성능을 가지고;
  • 컨테이너 기반 가상화, 가상화 및 기타 다른, 다른 소프트웨어에 대한;
  • 호스트의 모든 용기는 따라서 추가 리소스에 대한 필요성을 절감, 스케줄러를 공유 호스팅;
  • 이 분배 용기를 매핑하기 용이하므로, 가상 머신 상에 비해 용기 (LXC 도커 또는 이미지)의 상태는 작은 크기이며;
  • 자원 관리 컨테이너는 cgroup에 의해 달성된다. cgroup을 그들에게 할당 된 것보다 더 많은 자원을 소비하는 컨테이너를 사용할 수 없습니다. 모든 호스트의 자원은 가상 머신에서 볼 수 있지만 사용할 수는 없지만. 이것은 정상 실행 또는 용기 동시에 htop 호스트에서 달성 될 수있다. 출력 모든 환경은 매우 유사;

셋째, CI (지속적인 통합) 서버가 무엇인지 기능?

CI 기능은 각각, 저장소에 제출 된 모든 코드를 통합 컴파일 오류를 확인하기 위해 투입 한 후 계속하는 것입니다.

넷째, 컨테이너 내부 메커니즘?

각 컨테이너는 생명의 이름으로 자신의 공간에서 실행되고, 다른 모든 컨테이너는 정확히 같은 커널을 사용했다. 커널이 프로세스 네임 스페이스에 할당하고, 프로세스는 API를 호출하는 동안 자신의 네임 스페이스 리소스에 액세스 할 수 있도록 알고 있기 때문에 분리가 발생합니다.

다섯째, 고정 표시기는 무엇인가?

  • 고정 표시기는이 응용 프로그램은 모든 환경에서 원활하게 실행되도록 할 수있는 응용 프로그램과 용기와 그 종속의 모든 형태로 포장되며, 컨테이너 플랫폼입니다;
  • 고정 표시기 컨테이너, 완전한 파일 시스템의 소프트웨어 패키지는 파일 시스템을 실행하는 데 필요한 모든 것을 포함 등등 서버에 설치할 수있는 코드 아무것도, 시스템 도구, 시스템 라이브러리 등을;

여섯째, 고정 표시기 거울은 무엇인가?

미러링 도커 화상 용기를 만드는 데 사용되는, 고정 표시기 고정 표시기 소스 용기이다.

세븐의 고정 표시기 컨테이너는 무엇인가?

도커 컨테이너는 응용 프로그램과 모든 종속성을 포함하지만, 다른 컨테이너는 사용자 공간에서 실행되는 별도의 프로세스의 호스트 운영 체제로 커널과 공유. 도커 컨테이너는 특정 인프라에 의존하지 않는다 : 그들은 모든 컴퓨터에서 실행되는 인프라 및 클라우드의 수 있습니다.

여덟, 고정 표시기 컨테이너 몇 가지 일반적인 상태?

도커 컨테이너는 네 가지 상태를 가질 수 있습니다 :

  • 실행;
  • 그것은이 일시 중지되었습니다;
  • 다시 시작합니다;
  • 종료;

, 부두 노동자 컨테이너를 식별하는 "고정 표시기 PS -a"명령을 상태를 실행하는 것입니다 차례 고정 표시기 목록에서 사용 가능한 모든 컨테이너와 호스트에서 그에 상응하는 상태입니다.

나인, 프로세스의 기본적인 사용을 고정 표시기?

  • (1) 처음 Dockerfile, Dockerfile 소스로부터 모든 미러링;
  • (2) Dockerfile를 만들고 용기의 미러 이미지를 생성하도록 구성 될 수 있지만, 미러 "소스 코드"및 "컴파일 된 버전", 즉 Dockerfile;
  • (3) 용기의 미러를 수득 용기 레지스트리를 재분배하기 위해 사용되어야한다. 레지스트리는 자식 저장소처럼 - 밀어 풀 미러링 할 수 있습니다;
  • (4) 다음에, 미러는 실행 가상 머신 용기와 매우 유사하다, 여러 측면에서, 상기 용기를 실행하는 데 사용될 수있다;

텐, Dockerfile 일반적인 명령?

  • 1) FROM : 건설 미러링 미러링;
  • 2) MAINTAINER : 미러 메인테이너 이름이나 이메일 주소;
  • 3) RUN : 건설 쉘 명령 런타임 이미지를;
  • 4) 명령 : 쉘 실행 환경은 실행시 용기;
  • 5)에 노출 : 문 컨테이너 서비스 포트 (단지 선언);
  • 6) ENV : 용기 환경 변수 설정;
  • 7) ADD : URL이 압축 또는 자동으로 다운로드 또는 자동으로 추출되는 경우, 선박에 파일이나 디렉토리를 복사;
  • 8) 복사 : ADD와 유사한 용기에 파일이나 디렉토리를 복사되지만 자동으로 다운로드 또는 압축 해제 기능이없는;
  • 9) 엔트리 포인트 : 컨테이너가 실행될 때 쉘 명령을 실행하는 단계;
  • 10) VOLUME : 디렉토리 지정된 컨테이너 자동 생성 호스트 포인트 또는 다른 용기 마운트;
  • 11) USER : 지정은 사용자가 RUN, CMD를 실행하고, 엔트리 포인트는 명령을 실행;
  • 12) WORKDIR : 디렉토리 변경을 의미 RUN, CMD, 엔트리 포인트, 복사 및 추가하는 작업 디렉토리를 설정;
  • 13) HEALTHCHECH : 건강 체크;
  • 14) ARG : 구축 할 때 매개 변수가 지정;
  • 15) LABEL : 우리는 프로젝트, 모듈, 라이센스 및 우리의 거울의 다른 기관에 따르면 LABEL을 사용합니다. 우리는 또한 도움이 자동화 할 LABEL을 사용할 수 있습니다. LABEL에서는 키 - 값 쌍 프로그래밍 후 Dockerfile 치료하는데 사용될 수있다 지정;

참고 :

(1) 건물의 RUN 실행, 여러 쓸 수,
컨테이너를 실행할 때, 마지막이 적용 걸릴 이상 작성하는 경우 (2) CMD 및 엔트리 포인트는 오직 하나의 쓰기,
(3) CMD를 컨테이너의 건설에 COMMAND 될 수 있습니다 커버, EntryPoint를 명령이 적용되지 않습니다,하지만 커버 --entrypoint 지정할 수 있습니다
(4) Dockerfile 파일에 이미지 파일을 가져올 필요한 경우, 파일이 디렉토리 또는 하위 디렉토리 Dockerfile에 있어야합니다;
(5) 각 Dockerfile가 Dockerfile을 여러 개의 파일이있는 경우, Dockerfile는, 거울을 사용하는 Dockerfile를 생성 할 필요가 특정 파일을 지정하는 "-f"바람직 하나 개의 디렉토리 만,
(6) 모두 대문자 명령이어야합니다
(7) Dockerfile 미러를 생성 할 때, Dockerfile 필요한 소프트웨어, 같은 디렉토리에 Dockerfile 파일을 보장;

일레븐, ONBUILD 명령의 dockerfile?

기본 이미지는 다른 거울로서 구성 될 때, 명령 ONBUILD 트리거링 명령어 미러 나중에 추가 실행한다. 유용 (빌드 환경 또는 사용자 구성 데몬 특정 사용자 정의 애플리케이션을 사용하여, 예를 들어) 다른 거울상의베이스를 구축한다.

열두, 고정 표시기 및 이미지 레이어의 차이점은 무엇입니까?

  • 거울 : 고정 표시기 읽기 전용 화상 층이 직렬로 구성되어있다;
  • 층 : 각 층은 명령 Dockerfile 미러를 나타내고;

중요한 것은, 층 전의 층을 제외한 각 층은 차이 세트 (동일하지 않게 아연 층에 배치된다)이고;

XIII 고정 표시기의 무리는 무엇입니까?

고정 표시기의 무리는 하나의 가상 호스트에 도커 도커 풀을 개최, 부두 노동자의 기본 클러스터입니다. 부두 노동자의 API의 고정 표시기 떼 표준은, 어떤 도구는 고정 표시기 떼가 사용 투명하게 여러 호스트로 확장 할 수있는 데몬과 통신하고있다.

열세, 어떻게 여러 환경에서 부두 노동자를 사용하는 방법?

당신은 다음과 같이 변경할 수 있습니다 :

  • 컨테이너의 코드 남아는 외부에서 변경할 수 없도록 모든 볼륨 응용 프로그램 코드를 삭제 바인딩;
  • 호스트의 다른 포트에 바인딩;
  • 다른 환경 변수 (예를 들어, 로깅의 세부 사항의 레벨을 줄이거 나, 전자 메일을 사용하도록) 배치;
  • (예를 들어, 다시 시작하려면 다음 항상) 다시 시작 정책을 지정 피하기 다운 타임을 위해;
  • 부가 서비스 (예를 들면, 로그 수집기);

따라서, 내가 추가로 작성에게 문서를 정의 할 생산 환경에 적합하도록 지정합니다. 이 구성 파일의 필요성은 원래의 작성 파일에서 변경 한 내용이 포함되어 있습니다.

열네, 고정 표시기 기본 네트워크 유형?

고정 표시기 기본에서 네트워크는 다섯 개 가지 모드가 있습니다 :

  • 호스트 모드 : I 고정 표시기 호스트 네트워크의 직접 사용. 이러한 IP 주소, 카드의 종류 등;
  • 없음 패턴 : 모든 네트워크 컨테이너에 할당하지. 즉,이 모드는 컨테이너에게 IP 주소 (단지 루프백 주소)를 사용하지 않는다;
  • 브리지 모드 : ; 외부 세계와 통신 할 수있는 가상 네트워크 어댑터를 통해 도커 기본 네트워크 구성이 모드는 IP를 설정하지만, 동일한 네트워크 세그먼트에있는 호스트 가상 네트워크 고정 표시기 호스트에 수, 각 컨테이너의 이름을위한 공간을 할당 할 것이다;
  • 용기 모드 : 이 모드는 컨테이너가 동일한 IP 주소를 공유 이미;
  • 네트워크 : 사용자 정의 네트워크. 당신은 자신의 드라이브를 만들 수 있습니다 및 다리, 오버레이 등의 여러 네트워크로 향하는 될 수있다;

다섯째, 고정 표시기 컨테이너에서 호스트 네트워크 통신?

통신의 호스트에서 두 솔루션 :

  • 오버레이 네트워크 : 이 방법을 사용은 영사 서비스를 만들 필요가 호스트는 네트워크의 입력 오버레이 사용자 정의를 생성 한 후, 고정 표시기 호스트에서 동일한 클러스터에 추가 영사를 전달해야합니다. 따라서 전체적인 효과로 인해 카드, 카드 기반 컨테이너 이러한 유형의 통상의 통신에 의해 생성 될 수 있도록하는 것이;

  • macvlan 네트워크 : 이 방법에서는, 먼저 카드 promiscuous 모드를 열고 가상 네트워크 어댑터를 구성, 네트워크 어댑터는 IP 주소를 통신하도록 구성 될 수 있으며, 별도의 가상 맥 주소를 갖는다. 그리고 오버레이 차이는 범위 macvlan 로컬로 사용할 수 있다는 것이다.

당신이 인터넷 macvlan 방법을 사용하는 경우, 다음 단계가 필요합니다 :

  • 우선, 확인 용 고정 표시기 호는 호스트 간 통신은 보통 통신 인 필요성
  • 두 개의 가상 NIC에 고정 표시기 호스트가 동일한 네트워크 세그먼트에 생성되고
  • 그런 다음 카드 기반의 가상 네트워크 어댑터의 입력 macvlan이 개 고정 표시기 호스트를 만들;
  • 용기는 상기 통신 네트워크 타입 macvlan 통해 생성 될 수있다;

여섯, 고정 표시기 데이터 지속성

방법 지속성 고정 표시기 데이터 :

(1) 바인드 (바인드 마운트) 마운트 :

당신이 용기를 만들 때 "-v"옵션을 사용하여 로컬 디렉토리는 컨테이너에 장착된다. 마운트 타입이 방법은 용기 바인드입니다!

기능을 탑재 바인딩 :

  • 데이터 볼륨,이 디스크 (블록 장치)를 포맷 할 수없는 디렉토리 나 파일입니다;
  • 컨테이너는 볼륨 데이터를 읽고 쓸 수있다;
  • 변화와 소스 파일에 변경;
  • 볼륨 데이터는 용기가 파괴 된 경우에도 영구 저장 될 수있다;

참고 :

  • 요구는 이미 용기에 매달려의 카탈로그로, 그렇지 않으면 존재해야 DockerHost 소스 파일이나 디렉토리에 걸려하는 단계;
  • 기본 파일은 읽기 및 쓰기 권한되어 용기 내부에 장착합니다. -V 컨테이너를 실행의 증가 뒤에 할 수있다 ": RO는"컨테이너에 대한 쓰기 액세스를 제한;
  • 당신은 용기에 별도의 파일을 마운트 할 수 있습니다, 사용 시나리오 : 당신이 전체 디렉토리를 포함 할,하지만, 당신은 하나의 파일을 마운트하는 데 사용할 수있는 파일을 추가하지 않으려면,

(2) 관리자 볼륨 (볼륨 데이터 관리자)

당신이 용기를 만들 때 "-v"옵션을 사용하여, 당신은 단지 디렉토리 컨테이너를 지정할 수 있습니다! 선박이 볼륨이 방법을 입력 마운트;

특징 :

  • 소스 파일의 변화의 변화에 ​​효과가 귀속 마운트와 동일하다;
  • 당신이 컨테이너가 제거 된 원본 파일을 삭제하려면 삭제 컨테이너 작업은 기본, 당신은 컨테이너 (일반적으로 권장되지 삭제할 때 "-v"옵션을 추가 할 수 있습니다, 호스트 dockerhost에 원본 파일을 삭제하지 않습니다 파일이) 다른 용기의 사용에있을 가능성이 있기 때문에,

(3) 컨테이너, 볼륨 (데이터 공유 컨테이너와 컨테이너)

이 실시 예에서, 미리 생성 된 용기의 사용에 전용 로컬 디렉토리를 장착하고, 용기를 만들 "--volumes를에서부터"이 패턴은 원래의 용기이다 (로컬 디렉토리 용기 장착 지정된 모든 디렉토리 마운트) 새로 만든 용기에 장착되어 있습니다!

이러한 방법으로도 제공 바인딩 모드와 관리자 볼륨 모드를 탑재!

--------------------- 계속하세요! ! ! ---------------------

추천

출처blog.51cto.com/14157628/2463227