>  기사  >  운영 및 유지보수  >  도커 저장과 도커 내보내기의 차이점은 무엇입니까?

도커 저장과 도커 내보내기의 차이점은 무엇입니까?

王林
王林앞으로
2020-06-17 17:44:084207검색

도커 저장과 도커 내보내기의 차이점은 무엇입니까?

먼저 docker save와 docker import를 각각 설명하겠습니다.

docker save

docker의 명령줄 인터페이스는 매우 우아하게 디자인되었으며, --help를 추가하면 많은 명령의 도움말을 직접 볼 수 있습니다. 끝.

docker save의 도움말은 다음과 같습니다.

>docker save --help
Usage:  docker save [OPTIONS] IMAGE [IMAGE...]
Save one or more images to a tar archive (streamed to STDOUT by default)
Options:
      --help            Print usage
  -o, --output string   Write to a file, instead of STDOUT

명령줄 도움말에서 볼 수 있듯이 docker save는 하나 이상의 이미지를 패키징하고 저장하는 데 사용되는 도구입니다.

예를 들어, 이미지 라이브러리에 postgres와 mongo를 패키징하려는 경우 다음을 실행할 수 있습니다.

docker save -o images.tar postgres:9.6 mongo:3.4

패키지된 Images.tar에는 postgres:9.6과 mongo:3.4의 두 이미지가 포함되어 있습니다.

명령줄 매개변수에는 이미지 지정이 필요하지만 컨테이너는 실제로 패키징될 수 있습니다. 예:

>docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
3623943d369f        postgres:9.6        "docker-entrypoint..."   3 hours ago         Up 3 hours          5432/tcp            postgres
>docker save -o b.tar postgres
>docker save -o c.tar postgres:9.6
>ls -al
-rwxrwxrwx 1 root root 277886464 8月  26 14:40 b.tar
-rwxrwxrwx 1 root root 277886464 8月  26 14:41 c.tar

위 명령에서 볼 수 있듯이 b.tar와 c.tar는 완전히 동일합니다. 이는 docker save가 컨테이너를 지정하는 경우 docker save가 컨테이너 뒤에 이미지를 저장한다는 것을 보여줍니다.

docker load를 사용하여 패키지된 이미지를 로드합니다. 예:

docker load -i images.tar

위 명령은 postgres:9.6 및 mongo:3.4를 로드합니다. 이 두 이미지가 로컬 이미지 라이브러리에 이미 있는 경우 해당 이미지가 포함됩니다.

docker save의 애플리케이션 시나리오는 애플리케이션이 docker-compose.yml을 사용하여 배열된 여러 이미지의 조합이지만 배포하려는 클라이언트 서버가 외부 네트워크에 연결할 수 없는 경우입니다. 이때, docker save를 이용하여 사용된 이미지를 패키징한 후 클라이언트 서버에 복사한 후 docker load를 이용하여 로드할 수 있습니다.

dockerexport

평소처럼 dockerexport의 도움말을 확인하세요:

>docker export --help
Usage:  docker export [OPTIONS] CONTAINER
Export a container's filesystem as a tar archive
Options:
      --help            Print usage
  -o, --output string   Write to a file, instead of STDOUT

도움말에서 볼 수 있듯이 dockerexport는 컨테이너의 파일 시스템을 패키징하는 데 사용됩니다. 예:

docker export -o postgres-export.tar postgres

docker 내보내기는 컨테이너를 지정해야 하며 docker save와 같은 이미지나 컨테이너를 지정할 수 없습니다.

docker import를 사용하여 패키지된 컨테이너를 로드합니다. 예:

docker import postgres-export.tar postgres:latest

위 명령에서 볼 수 있듯이 docker import가 컨테이너를 가져온 후 컨테이너로 돌아가는 대신 이미지가 됩니다.

또 다른 점은 docker import가 IMAGE[:TAG]를 지정할 수 있다는 점입니다. 즉, 이미지에 새 이름을 지정할 수 있다는 의미입니다. 동일한 이름의 이미지가 로컬 이미지 라이브러리에 이미 존재하는 경우 원본 이미지의 이름이 제거되어 새 이미지에 할당됩니다. 원본 이미지는 유령이 되며 IMAGE ID를 통해서만 작동할 수 있습니다.

Docker 내보내기의 응용 시나리오는 주로 기본 이미지를 만드는 데 사용됩니다. 예를 들어 우분투 이미지에서 컨테이너를 시작한 다음 일부 소프트웨어를 설치하고 몇 가지 설정을 지정한 다음 docker 내보내기를 사용하여 기본 이미지로 저장합니다. . 그런 다음 기본 개발 환경 등의 사용을 위해 이 이미지를 다른 사람에게 배포합니다.

docker save와 docker import의 차이점

  • docker save는 이미지(image)를 저장하고, docker import는 컨테이너(container)를 저장합니다.

  • docker load는 이미지 패키지를 로드하는 데 사용되며, docker import는 컨테이너 패키지를 로드하는 데 사용되지만 둘 다 이미지로 되돌아갑니다.

  • docker load는 로드된 이미지의 이름을 바꿀 수 없지만 docker import는 이미지의 새 이름을 지정할 수 있습니다.

추천 튜토리얼: docker

위 내용은 도커 저장과 도커 내보내기의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.im에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제