UFS(Union File System)
▶ “union mount”를 구현하고 Layer를 생성하여 작동하는 파일 시스템
▶ 도커는 “copy-on-write”기술과 UFS를 사용하여 컨테이너에 대한 빌딩 블록을 제공하여 매우 가볍고 빠르게 동작함
Docker 용어
Docker HUB
▶ docker 공식 이미지를 관리하는 무료 레지스트리
▶ 개인이 작성한 Docker 이미지도 공개 가능
Docker image
#도커 이미지 관련 작업
docker image --help
docker container export
# 컨테이너안의 File System을 tar 파일로 출력
docker container export --help
실습 예시
도커는 이미지는 레이어로 구성이 되어있기 때문에 병렬적으로 가져온다 즉 독립적인 관리가 된다.
1. openjdk:8 이미지로 guestbookH2_c01 컨테이너를 생성하고 시작
docker container run -it --name guestbookH2_c01 openjdk:8 # openjdk:8 자바런타임을 통해 이미지를 실행
2. guestbookH2_c01 의 IP 확인
cat /etc/hosts
#### 결과
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 a5b1723e36db
root@a5b1723e36db:/#
3. ctrl + P Q 를 입력하여 컨테이너 쉘에서 빠져나오기
4. guestbook_H2.jar Spring Boot 웹어플리케이션을 guestbookH2_c01 컨테이너의 / 폴더에 복사
docker container cp ~/guestbook/guestbook_H2.jar guestbookH2_c01:/
5. attach 명령(도커 컨테이너 실행중일때 접속하는 명령어)을 이용해 컨테이너의 1번 프로세스인 bash 쉘에 진입 후 guestbook_H2.jar 파일이 복사되었는지 확인
docker container attach guestbookH2_c01
root@116742a19b81:/# ls -l /guestbook_H2.jar
결과
root@a5b1723e36db:/# ls -l /guestbook_H2.jar
-rw-r--r-- 1 root root 23423592 Jul 11 2019 /guestbook_H2.jar
해당파일이 정상적으로 잘 복사가 된 것을 볼 수 있다. 그 후 이제 실행을 해보자.
6. guestbook_H2.jar Spring Boot 웹 어플리케이션 시작
java -jar guestbook_H2.jar
7. 웹브라우저로 방명록 웹 접속
8. guestbookH2_c01 컨테이너 파일시스템 내용을 tar 파일로 출력
docker container export -o guestbookH2_c01.tar guestbookH2_c01
9. 파일 내용 확인
tar tvf guestbookH2_c01.tar | more
10. 파일 복사 효율을 위해 gzip으로 압축
gzip guestbookH2_c01.tar
### 확인 ###
ls
guestbookH2_c01.tar.gz guestbook_MYSQL.jar
guestbook_H2.jar
Docker image import
11. LAB1에서 export한 guestbookH2_c01.tar.gz 파일로부터 도커 이미지 생성
docker image import guestbookH2_c01.tar.gz kdb/guestbook_h2:1.0
# 도커이미지 목록확인
docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
kdb/guestbook_h2 1.0 e56f3c7bb788 21 seconds ago 543MB
httpd 2.4 c0c20df5e7be 8 days ago 148MB
ubuntu 24.04 35a88802559d 4 weeks ago 78.1MB
nginx 1.25 e784f4560448 2 months ago 188MB
tomcat 8 0a2249be3d31 3 months ago 456MB
openjdk 8 b273004037cc 23 months ago 526MB
centos latest 5d0da3dc9764 2 years ago 231MB
centos 7.6.1810 f1cb7c7d58b7 5 years ago 202MB
docker image import 외부링크 [도커설정명]
'Study notes' 카테고리의 다른 글
Docker Container 이해하기 - Dockerfile (0) | 2024.07.12 |
---|---|
Docker Container 이해하기 - (4) image 명령어, 도커파일 (0) | 2024.07.12 |
Docker Container 이해하기 - (2) (0) | 2024.07.11 |
Docker Container 이해하기 (0) | 2024.07.11 |
FastAPI 기초부터 A to Z (0) | 2024.07.10 |