본문 바로가기
Study notes

Docker Container 이해하기 - (3)

by AI미남홀란드 2024. 7. 12.
728x90

UFS(Union File System)

▶ “union mount”를 구현하고 Layer를 생성하여 작동하는 파일 시스템 

 도커는 “copy-on-write”기술과 UFS를 사용하여 컨테이너에 대한 빌딩 블록을 제공하여 매우 가볍고 빠르게 동작함

 

 

Docker 용어 

Docker HUB

 

▶ docker 공식 이미지를 관리하는 무료 레지스트리

▶ 개인이 작성한 Docker 이미지도 공개 가능

 

 

Docker Hub Container Image Library | App Containerization

Increase your reach and adoption on Docker Hub With a Docker Verified Publisher subscription, you'll increase trust, boost discoverability, get exclusive data insights, and much more.

hub.docker.com

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 외부링크 [도커설정명]

 

 

 

728x90