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개발자 취업 / 전민균 강사님
'구디 아카데미 수료 과정 > Docker' 카테고리의 다른 글
구디아카데미 후기/ 국비지원IT개발자 취업 / 전민균 강사님/클라우드 활용 자바개발자 양성과정/•76일차/02.15 (0) | 2024.02.15 |
---|---|
구디아카데미 후기/ 국비지원IT개발자 취업 / 전민균 강사님/클라우드 활용 자바개발자 양성과정/•75일차/02.14 (0) | 2024.02.14 |