docker 개념

3440 단어
Docker는 미러링 기반입니다.미러는 파일, 구성 및 설치된 프로그램이 이미 포함된 가상 머신 미러와 유사합니다.마찬가지로, 너는 가상 컴퓨터를 가동하는 것처럼 여러 개의 렌즈를 가동할 수 있다.실행 중인 미러를 컨테이너라고 합니다.용기를 수정할 수 있지만, 이 수정은 거울에 영향을 주지 않습니다.단, docker commit 명령을 사용하면 실행 중인 용기를 새로운 거울로 만들 수 있습니다.예를 들면 다음과 같습니다.
Docker 공식 Hello World의 예와 같이busybox라는 거울을 가져오는 sudo docker pull busybox
#                #       busybox    sudo docker images
#          busybox         #   ,             sudo docker run busybox mkdir /home/test
#               。    #                    #        busybox      sudo docker ps -a
#   ,       。    #             busybox-1    #              ID    sudo docker commit  busybox-1
#           。    #        busybox busybox-1   。    sudo docker images
#         ,                sudo docker run busybox [ -d /home/test ] && echo 'Directory found' || echo 'Directory not found'    sudo docker run busybox-1 [ -d /home/test ] && echo 'Directory found' || echo 'Directory not found'

현재, 우리는 두 개의 다른 거울 (busybox와busybox-1) 이 있고,busybox 용기를 수정해서 얻은 용기 (/home/test 폴더가 하나 더 있음) 도 있다.다음은 이러한 수정을 어떻게 오래 지속하는지 살펴보자.내보내기(Export) Export 명령은 미러가 아닌 영구 컨테이너에 사용됩니다.따라서 용기 ID를 다음과 같은 방법으로 얻을 수 있습니다: sudo docker ps-a 다음에 내보내기: sudo docker export >/home/export.tar
마지막 결과는 2.7MB 크기의 Tar 파일입니다.
저장
Save 명령은 컨테이너가 아닌 영구 미러링에 사용됩니다.따라서 다음과 같은 방법으로 미러 이름을 지정해야 합니다.
sudo docker images
그런 다음 저장을 수행합니다.
sudo docker save busybox-1
/home/save.tar
마지막 결과는 2.8MB 크기의 Tar 파일입니다. (export 명령을 사용하는 것보다 조금 큽니다.)
그것들 사이의 차이
이제 Tar 파일 두 개가 만들어졌습니다. Tar 파일이 무엇인지 살펴보겠습니다.먼저 작은 청소를 하고 모든 용기와 거울을 삭제합니다.
모든 용기 보기 sudo docker ps -a
#         sudo docker rm 

#            sudo docker images

#         sudo docker rmi busybox-1    sudo docker rmi busybox

docker rm$(docker ps-q -a)를 사용하여 모든 용기를 한꺼번에 삭제할 수 있고, docker rmi$(docker images -q)는 모든 이미지를 한꺼번에 삭제할 수 있습니다.
이제 내보낸 컨테이너 가져오기를 시작합니다.
export를 가져옵니다.tar 파일cat/home/export.tar | sudo docker import - busybox-1-export:latest
#         sudo docker images

#         ,         ,        /home/test  (    )    sudo docker run busybox-1-export [ -d /home/test ] && echo 'Directory found' || echo 'Directory not found'

비슷한 절차를 사용하여 미러를 가져오려면 다음과 같이 하십시오.
save를 가져옵니다.tar 파일 docker load # sudo docker images # , , /home/test ( ) sudo docker run busybox-1 [ -d /home/test ] && echo 'Directory found' || echo 'Directory not found'
그렇다면 그들 사이에는 도대체 어떤 차이가 존재하는가?우리는 내보낸 판본이 원래의 판본보다 약간 작을 것이라는 것을 발견했다.그것은 내보내면 역사와 메타데이터를 잃어버리기 때문이다.다음 명령을 실행하면 알 수 있습니다.
미러의 모든 레이어(layer) 표시 sudocker images --tree
명령을 실행하여 아래의 내용을 표시합니다.내보낸 다음에 가져오는 (exported-imported) 거울은 모든 역사를 잃어버리고, 저장한 다음에 불러오는 거울은 역사와 층을 잃어버리지 않습니다.이것은 내보낸 다음에 가져오는 방식을 사용하면 이전 층 (layer) 으로 굴러갈 수 없으며, 저장한 다음에 불러오는 방식으로 전체 이미지를 영구화하면 층 굴러갈 수 있음을 의미한다. (docker tag 이전 층을 굴러갈 수 있다.)
vagrant@Ubuntu-13:~$ sudo docker images --tree ├─f502877df6a1 Virtual Size: 2.489 MB Tags: busybox-1-export:latest └─511136ea3c5a Virtual Size: 0 B └─bf747efa0e2f Virtual Size: 0 B └─48e5f45168b9 Virtual Size: 2.489 MB └─769b9341d937 Virtual Size: 2.489 MB └─227516d93162 Virtual Size: 2.489 MB Tags: busybox-1:latest

좋은 웹페이지 즐겨찾기