Docker 기본 개념 및 작업

4019 단어
Docker 기본 개념
Docker는 개발된 프로그램을 용기에 자동으로 배치할 수 있는 소스 엔진입니다.컨테이너는 가상 머신을 실행하는 것이 아니라 OS 인터페이스를 직접 호출하기 때문에 가상 머신보다 훨씬 가볍다.용기를 통해 완전한 프로그램 실행 환경을 쉽게 얻을 수 있으며, 우리는 그것을 개발하거나 공부할 수 있다.간단하게 말하면 Windows를 사용하면 리눅스 환경으로 뭔가를 하고 싶다면 이제는 가상 기기(VMWare나 VirtualBox를 설치하지 않아도 된다),Vagrant를 사용하지 않고 Docker 용기를 직접 실행하면 된다.
Docker 클라이언트 및 서버
Docker는 C/S 스키마 프로그램입니다.사용자가 Docker 클라이언트에서 명령을 실행하면 클라이언트가 서버에 요청을 하고 서버가 결과를 처리하고 결과를 되돌려줍니다. 최종 결과는 클라이언트에게 표시됩니다.
대칭복사(Image)
Image는 기본적인 OS(예를 들어 Ubuntu)와 응용에 필요한 실행 환경(즉 파일 시스템)을 포함한다. 이 파일 시스템의 파일은 여러 개의 레이어에 존재할 수 있고 최종적으로 이러한 레이어의 중첩 결과가 나타난다.Dockerfile을 통해 Image를 구축할 수 있습니다. Dockerfile는 사용하는 베이스 운영체제와 RUN이 명령을 실행하거나 COPY가 Dockerfile과 같은 디렉터리의 다른 파일을 Image로 복사하는 일련의 작업을 정의합니다.각 명령이 실행될 때마다 새 Layer가 생성됩니다.밑바닥의 Layer는 사실상 수정할 수 없기 때문에 다음 삭제 명령이 Image의 크기를 줄일 수 있을 것이라고 기대하지 마세요.크기를 줄이려면 크기가 커지는 명령을 실행한 후 같은 RUN 명령에서만 필요하지 않은 쓰레기를 삭제하고 쓰레기가 어떤layer에 남지 않도록 해야 합니다.Image가 실행될 때 Image에 포함된 여러 Layer를 제외하고 맨 위에 쓰기 가능한 Layer가 있습니다.운영 환경의 작업은 쓰기 가능한 Layer에 표시됩니다.docker commit으로 제출하면 새 렌즈를 만들 수 있습니다.
Rigistry
Docker는 사용자가 만든 이미지를 Rigistry로 저장합니다. Docker회사에서 운영하는 Rigistry는 Docker Hub이라고 합니다.사용자는 Docker Hub에 계정을 등록하여 자신이 만든 미러를 게시할 수 있습니다.그리고github에git창고를 만들어서 Dockerfile에 넣고 DockerHub에 자동 구축 프로젝트를 만들어서 위의github창고와 연결하면git창고에 업데이트가 있을 때 자동으로 구축을 터치할 수 있습니다.이런 방식은 네트워크 불안정으로 인한 로컬 이미지 구축 문제를 효과적으로 피할 수 있다. 예를 들어 apt-get 설치 프로그램이 실패하는 것이다.
컨테이너
컨테이너는 Image를 실행하는 프로그램의 운영 환경을 제공합니다. 바로 하나의 컨테이너입니다.
Docker 기본 작업
Image 보기docker images 결과:
|REPOSITORY|TAG|IMAGE ID|CREATED|SIZE| |----------|---|--------|-------|----| |friendlyhello|latest|6b7d6b366676|About a minute ago| 194 MB| |python|2.7-slim|faea7032fa5c|3 days ago|183 MB| |hello-world|latest|48b5124b2768|3 months ago|1.84 kB|
Image 실행docker run -i -t image-name /bin/bash
주1:-i는 상호작용을 표시하고 -t는 단말기를 시작하는 것을 의미하며/bin/bash는 시작한 후에 상호작용식 셸을 실행하는 것을 의미한다.주2: 이미지-name는 위에서 조회한 Repository:tag로 표시하거나 (충돌이 없을 때 Repository로 해도 된다) 이미지 id로 표시할 수 있습니다.주3: 어떤 이미지를 실행할 때 이 이미지가 다운로드되지 않으면 자동으로 다운로드됩니다.물론 docker pull image-name 다운로드를 먼저 실행할 수도 있습니다.참고4: 로컬 Image가 없는 경우 Docker Hub에서 원하는 이미지 실행을 찾을 수 있습니다.
Docker 컨테이너 보기docker ps
주 1: 실행 중인 docker 용기를 매개 변수로 조회하지 않습니다.주2: - a 인자를 가지고 모든 docker 용기를 보십시오.주3: -l -q 매개 변수를 가지고 최근에 종료한 docker 용기 id를 보십시오.
실행 중인 Docker 컨테이너 명령줄로 다시 들어가기
방법1: 용기에 다시 부착docker attach container_name방법2: 용기에서 상호작용 명령을 실행하는 프로세스를 시작합니다docker exec -t -i container_name /bin/bash실행 중인 Docker 컨테이너에 대한 통계 보기docker stats
정지 용기docker stop container_name
주 1: 컨테이너 이름은 컨테이너 ID를 사용할 수 있습니다.주2: deamon 형식의 용기가 아니면 상호작용 셸이 종료될 때 용기도 종료됩니다.
컨테이너 삭제docker rm container_id
미러 제거docker rmi image_id
수정된 미러 커밋docker commit container_id image_name
참고: 수정 후 새 Layer가 생성됩니다.
Dockerfile을 사용하여 미러 구성docker build -t docker_image_tag .
Dockerfile 작성 참고 사항
  • 모든 RUN 명령은 Layer를 생성하기 때문에 하나의 명령에 쓰레기가 발생하면 같은 RUN 명령에서 그것을 제거한다.
  • 다음 웹 사이트에서 작성할 수 있으며 최적화가 가능한지 확인합니다.https://www.fromlatest.io/#/.
  • COPY 명령은 Dorckerfile과 같은 디렉터리/파일을 용기 이미지로 복사할 수 있습니다.
  • 설치 프로그램의 명령 추가 옵션은 추천 패키지를 설치하는 것을 금지합니다.eg: apt-get install -y --no-install-recommends wget.

  • Docker 컨테이너 및 로컬 컴퓨터 파일/디렉토리 복사
    컨테이너 로컬: docker cp container_name:/path/to/file . 로컬에서 컨테이너: docker cp /path/to/file container_name:/dest/pathDocker 정보 조회docker info
    주1: 이 명령은 docker 가상 머신이 실행될 때 사용하는 프록시 파라미터 등 많은 docker 정보를 조회할 수 있습니다.주2: 인트라넷에서 사용할 경우 docker 에이전트를 설정해야 합니다. Ubuntu 14.04는/etc/defaults/docker에서 export https 를 설정합니다.proxy=https://user:[email protected]: 8080/및 httpproxy의 에이전트를 사용하고 docker 서비스를 다시 시작합니다: sudo 서비스 docker restart.
    Docker 이미지 저장(영구 Docker 미러)docker save image_name -o file_path 현재 실행 중인 docker 이미지를 파일에 저장합니다.
    Docker image 로드docker load -i file_path Docker 미러를 로드합니다.

    좋은 웹페이지 즐겨찾기