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)에 업로드할 수 있습니다.sudo docker tag aliyun/caffe:v1 aliyun/caffe:v1_change sudo docker push aliyun.caffe/caffe:v1_change
# 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
첫 번째 Docker for Mac참고 , 나는 옆에 있는 Mac에 Docker를 설치하고 컨테이너를 세워 보고 싶다. Docker Hub를 처음 사용할 때는 계정을 만들어야 합니다. Docker.dmg을 실행하면 Docker가 설치됩니다. Dock...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.