본문 바로가기

구디 아카데미 수료 과정/Docker

구디아카데미 후기/ 국비지원IT개발자 취업 / 전민균 강사님/클라우드 활용 자바개발자 양성과정/•74일차/02.13

docker 내부에 접근하는 방법(with windows)

 

docker image는 docker 자체(엔진)의 VM에서 관리한다.

따라서 docker info가 제공하는 /var/lib/docker 경로는  컨테이너의 파일 시스템이 아니라 도커 호스트 파일 시스템에 상대적이다

 

만약 호스트 시스템에서 컨테이너 디렉토리에 마운트하여 해당 docker의 파일(정보)을 볼 수 있다

 

도커실행 -v /;/data -it Ubuntu

이 명령어를 통해서 Ubuntu docker 이미지에서 쉘을 실행하여 docker 파일 시스템의 /data 디렉토리에 탑재한다

 

 

docker 이미지를 tar 파일로 저장(save) 및 로드(load)

윈도우와 리눅스는  저장의 바이트 형태가 다름

윈도우에서 이미지를 powershell을 통해서 저장하면 2바이트의 문자로 처리됨 

따라서 원래 이미지의 크기보다 2배가 된다 (2배의 크기로 생성된 tar 이미지는 load 할 수 없음)

 

해결방법은 -o 옵션을 사용하면 정상적인 크기의 헤더값을 가진 tar를 생성할 수 있다

 

 

docker를 통해서 생성된 컨테이너를 변경하고 이미지로 export하고 import하기

 

docker를 통해서 생성된 컨테이너를  이미지로 변경 (commit)


Dockerfile 스크립트를 통해서 이미지로 만드는 법

  - 도커파일을 통한 이미지 생성

  - 생성한 index.html파일을 httpd image의 http://usr/local/apache2/htdocs/ 위치에 복사하여 이미지를 생성할거임

 

Dockerfile

FROM httpd

COPY index.html http://usr/local/apache2/htdocs/

->index.html을 한칸 띄고 저 옆의 주소 폴더에 넣어줘 

 


Docker 스크립트에서 사용되는 주요 명령어

인스트럭션 내용
FORM 사용되는 기본 이미지를 지정
ADD 이미지에 파일이나 폴더를 추가 ( 압축된 파일)
COPY 이미지에 파일이나 폴더를 추가 (파일)
RUN 이미지를 빌드할때 실행할 명령어 지정
CMD 컨테이너를 실행할 때 실행할 명령어 지정
ENTRYPOINT 컨테이너를 실행할 때 필요한 명령어(ex>mysql 컨테이너를 생성할 때 필요한 ROOT 계정이 비밀번호)
EXPOSE -p 옵션이나 이미지의 통신포트
VOLUME 명시적으로 저장되는 저장경로를 지정 

마운트의 종류와 특징

이미지를 통한 컨테이너의 공간은 1회성으로서 컨테이너가 동작된 후에 컨테이너가 삭제되면 모든 데이터가 삭제된다

볼륨(volume)을 구성하여 외부에 데이터가 저장될 수 있도록하여 데이터가 유지 및 보호될 수 있도록 해준다

 

docker volume create 볼륨명

docker volume rm 볼륨명

 

종류 볼륨 마운트 바인드 마운트
설명 도커 엔진이 관리하는 영역 내에 만들어 볼륨 컨테이너에 디스크 형태로 마운트 해서 사용 도커엔진이 관리하지 않는 영역에 디렉터리를 컨테이너로 마운트하는 방식 사용
장/단점 직접 조작이 어려움
임시목적 또는 자주 사용하지는 않지만 지우면 안되는 파일 (보안 목적으로 많이 사용 ex: 비밀번호)
해당 디렉토리를 직접 조회 및 조작할 수 있으므로 자주 변경되거나 사용하는 파일을 보관할 수 있음

수정이 많이 발생한다면 바인드 마운트 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

구디아카데미 후기/ 국비지원IT개발자 취업 / 전민균 강사님