인프라

docker 이미지 만들기

소행성왕자 2021. 11. 30. 18:38

자신만의 도커 컨테이너를 이미지로 만들어서 배포하도록 하겠습니다.

도커 이미지 만들때에는 docker commit 명령어를 이용합니다.

$ docker commit 컨테이너이름 이미지이름:태그
# 이미지 만들기 전에 멈춘다
$docker stop a82f5c258527


# docker 컨테이너 이미지화 
# docker commit 컨테이너이름 이미지이름:태그
docker commit a82f5c258527 wwyocr:kdh


# docker 이미지 확인
docker images


# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
wwyocr       kdh       d0e54bc5ac29   2 minutes ago   12.5GB
ubuntu       20.04     ba6acccedd29   6 weeks ago     72.8MB
centos       7         eeb6ee3f44bd   2 months ago    204MB



# 방금 만든 이미지를 컨테이너로 만들어 실행해 보겠습니다.
$ docker run -i -t wwyocr:kdh /bin/bash



# python 서버 실행
$ cd /home/centos/easyOCR-binary-centos-main
$ python3 server.py &
INFO:     Started server process [21]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)



# 컨테이너는 실행해둔채로 로컬로 나오기
ctrl + p + q


# 방금 만든 컨테이너 확인
$ docker ps -a
www]$ docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS                        
42f18d859ea8   wwyocr:kdh     "/bin/bash"   2 minutes ago   Up 2 minutes                  
a82f5c258527   centos:7       "/bin/bash"   6 hours ago     Exited (137) 27 minutes ago   
d88e100ff6df   ubuntu:20.04   "/bin/bash"   3 weeks ago     Exited (0) 3 weeks ago        



# 방금 만든 컨테이너의 ocr 실행
$ docker exec -e LD_LIBRARY_PATH=/usr/local/lib -it 42f18d859ea8 /home/centos/cpp/ocrrest



# 저장된 image 와 컨테이너 경로
/var/lib/docker/
 

이미지 파일로 추출

 
 
도커 이미지를 별도로 저장하거나 옮기는 등 필요에 따라 이미지를 단일 바이너리 파일로 저장해야 할 때가 있습니다.
 
이럴 때 docker save명령어를 사용하여 container의 command, image, name, tag 등의 이미지의 모든 Meta_Data를 포함해 하나의
 
파일로 추출할 수 있습니다.
 
-o 옵션은 추출될 이름을 결정합니다

$ docker save -o wwy_ocr.tar wwyocr

 
추출된 이미지는 load 명령어로 도커에 다시 로드할 수 있습니다.
 
save 명령어로 추출된 이미지는 모든 메타데이터 정보를 갖고있기 때문에 load 명령어로 로드하면 바로 사용가능한 이미지로 만들 수 있습
니다.

 
$ docker load -i wwy_ocr.tar