Docker - 이미지 미러 생성 및 컨테이너 작업

7873 단어 Docker

Docker 미러 생성


주로 두 부분을 포함한다. 1.미러(IMAGE) 생성 2.데이터 볼륨(Data Volumes) 마운트

1. 미러링(IMAGE) 생성

  • 1.1 미러링 가져오기


    # 등록 서버(예: Docker Hub, Aliwn 등)에서 IAMGE_NAME 저장소에서 태그가 latest(기본값) 및 TAG인 미러를 다운로드합니다. $sudo docker pull IMAGE_NAME $ sudo docker pull IMAGE_NAME:TAG
  • 1.2 미러 정보 보기


    $sudo docker images # IMAGE의 필드 정보를 표시합니다.
    저장소 소스, REPOSITORY 미러의 레이블 정보, TAG 미러의 ID(유일하게) 생성 시간 미러 크기
  • 1.3 검색 미러


    # 원격 저장소에 공유된 미러 검색\$sudo docker search TERM
  • 1.4 미러 제거


    $ sudo docker rmi IMAGE:TAG/IMAGE_ID
  • 1.5 미러 생성

    미러를 생성하는 방법은 크게 세 가지입니다.
    기존 미러 기반 컨테이너 만들기 로컬 템플릿 기반 가져오기 Dockerfile 기반 만들기

  • 여기서 주로 첫 번째 방법을 설명한다.
  • 1.5.1 기존 미러 기반 컨테이너 생성

    다운로드된 이미지를 이용하여 docker/nvidia-docker(gpu버전)commit 명령을 사용하여 용기를 생성합니다. 명령 형식은 다음과 같습니다.
    $sudo docker commit [OPTIONS] CONTAINER [REPOSITORY:TAG] 옵션 설명:
    -a, – authors=", 저자 정보-m, – message=", 제출 정보-p, –pause=true, 제출 시 용기 진행 정지
    거울aliyun/caffe:latest를 기반으로 새 거울aliyun/caffe:v1을 만드는 것을 예로 들어 설명합니다.
    # Step1 미러링 aliyun/caffe를 시작하고 $sudo docker run - it aliyun/caffe/bin/bash를 수정합니다.root@a868ca395b0f:/##컨테이너 ID는 a868ca395b0f입니다. #매개변수 설명:
    -i, 상호작용 모드, 표준 컨트롤러에서 입력 출력-d, 백엔드 모드-t, 새로 만든 용기에 새로운 위조 단말기를 분배합니다. 왕왕 -i와 합용됩니다. -italiyun/caffe, 거울 이름, IMAGE_ID/bin/bash, 새 컨테이너에서 실행되는 명령, Ubuntu 시스템 터미널 작업과 유사
    # Step2는 용기/bin/bash/에서 모든 작업을 일반과 같이 NVIDIA-Drivers와 CUDA의 설치, Caffe 의존항 설치, Caffe 컴파일과 pycaffe 인터페이스 컴파일 등 Caffe 환경의 구축 작업을 할 수 있습니다.이 때 거울aliyun/caffe에 비해 변경되었습니다. dockercommit을 이용하여 새로운 거울을 제출할 수 있습니다 $sudodockercommit -m "Modified Caffe Version"- a "Author-Deepdraw"a868ca395b0faliyun/caffe:v1 # 이 명령은 새로 만든 거울의 ID 정보를 문자열로 되돌려줍니다. $dodocker images # 로컬 미러 목록을 보면 새로 만든 미러 aliyun/caffe:v1에 대한 정보를 볼 수 있습니다
  • 1.6 미러 저장 및 로드


    # 대칭복사 저장 # 예를 들어, 대칭복사 aliyun/caffe를 파일로 저장합니다. aliyun_caffe.tar $ sudo docker save -o aliyun_caffe.tar aliyun/caffe
    #미러 로드 #예: 파일 aliyun_caffe.tar 미러 목록에 $sudo docker 로드 로드 – input aliyun_caffe.tar# 또는 $sudodockerload
  • 1.7 미러 업로드

    미러가 생성되거나 수정되면 아리운이 제공하는 Docker 창고 서비스와 같이 Docker 미러 저장 센터, 즉 창고(Registry)에 업로드할 수 있습니다.
  • 로컬 aliyun/caffe:v1 렌즈를 업로드합니다. 새 탭(TAG) aliyun/caffe:v1_change, 그리고 업로드
    sudo docker tag aliyun/caffe:v1 aliyun/caffe:v1_change sudo docker push aliyun.caffe/caffe:v1_change
  • Ali운 Docker 창고에 업로드
  • # docker login
    #  :registry.cn-hangzhou.aliyuncs.com
    sudo docker login registry.cn-hangzhou.aliyuncs.com
    Username: xxx@163.com
    Password:
    Login Succeeded #  
    cat ~/.docker/config.json
    {
        "auths": {
            "registry.cn-hangzhou.aliyuncs.com": {
                "auth": "XXXXXXXXXXXXXXXXXXXXXX"
            }
        }
    }
    sudo docker login registry.cn-hangzhou.aliyuncs.com
    Username: subaccount@compannycount
    Password:
    Login Succeeded
    # docker push
    sudo docker push registry.cn-hangzhou.aliyuncs.com/caffe:v1

    2. 데이터 볼륨(Data Volumes) 마운트


    데이터 볼륨은 용기에 사용할 수 있는 디렉터리로 용기 간에 공유하고 다시 사용할 수 있다.데이터 볼륨에 대한 수정이 즉시 적용됩니다.데이터 볼륨 업데이트는 미러링에 영향을 주지 않습니다.용기가 없을 때까지 데이터 볼륨은 계속 존재합니다.
    데이터 볼륨의 사용은 Linux에서 디렉터리나 파일을 마운트하는 것과 유사합니다.
  • 2.1 컨테이너에 데이터 볼륨 생성

    dockerrun-v 또는 –volume=/data1:/data2 명령을 이용하여 데이터 볼륨을 만들 수 있고, 여러 개의 -v는 여러 개의 데이터 볼륨을 만들 수 있으며, j는 용기의 대응 디렉터리에 데이터 볼륨을 마운트할 수 있다. 예를 들어 다음과 같다.
    $ sudo docker run -v /data/of/container IMAGE_NAME python demo.py
  • 2.2 컨테이너 데이터 볼륨으로 호스트 디렉토리 마운트

    이 기능은 사용자가 일부 프로그램이나 데이터를 로컬 호스트 디렉터리에 놓고 용기 안에서 실행하고 사용할 수 있도록 한다.여기서 로컬 디렉토리의 경로는 절대 경로여야 합니다. 존재하지 않으면 Docker는 다음과 같이 자동으로 생성됩니다.
    $ sudo docker run -volume=/data1/of/host:/data1/of/container -volume=/data2/of/host:/data2/of/container IMAGE_NAME python demo.py
    Docker 마운트 데이터 볼륨의 기본 권한은 읽기와 쓰기(rw)입니다. 또는 ro를 통해 읽기 전용 권한을 지정하여 컨테이너에 마운트된 데이터 볼륨의 내용을 수정할 수 없습니다. 예를 들어 다음과 같습니다.
    $ sudo docker run -volume=/data1/of/host:/data1/of/container:ro -volume=/data2/of/host:/data2/of/container:ro IMAGE_NAME python demo.py

  • 3. 용기 조작


    3.1 컨테이너 상태 보기

    sudo docker ps -a

    3.2 새 컨테이너

    docker create 명령, 예:
    sudo docker create -it ubuntu:latest

    새 용기가 정지 상태입니다. docker start 를 사용하여 시작합니다.

    3.3 부팅 용기


    두 가지 시작 방법:
  • 거울 기반 새 용기 만들기 및 시작;docker run 명령
  • 정지 상태의 용기를 바탕으로 다시 시작합니다.docker create + docker start 명령.

  • 3.4 용기 종료

    exit 명령.

    3.5 백그라운드 컨테이너


    Docker 컨테이너는 백그라운드에서 Daemonized로 실행됩니다.
    sudo docker run -d ubuntu:latest /bin/sh -c "***"

    컨테이너 시작, 고유 ID 반환.
    컨테이너 정보 보기:
    sudo docker ps

    컨테이너 출력 정보 보기docker logs:
    sudo docker logs docker_container_ID

    3.6 용기 정지

    sudo docker stop docker_container_ID

    중지된 컨테이너 ID 정보를 보려면 다음과 같이 하십시오.
    sudo docker ps -a -q

    중지된 컨테이너를 재부팅하려면 다음과 같이 하십시오.
    sudo docker start docker_container_ID

    실행 중인 컨테이너를 중지하고 다시 시작합니다.
    sudo docker restart docker_container_ID

    3.7 용기 진입

    exec 명령.
    sudo docker exec -it docker_container_ID /bin/bash

    3.8 컨테이너 삭제


    중지된 컨테이너를 보고 삭제하려면 다음과 같이 하십시오.
    sudo docker ps -a
    sudo docker rm container_ID 

    실행 중인 컨테이너 삭제:
    sudo docker rm -f container_ID

    좋은 웹페이지 즐겨찾기