
관제 운영체제 설치시 ESXi 써야함
https://junu19.tistory.com/29
VM - install VM Tool
우분투에 씨디모양 꺼내서 압축풀고
ctrl+alt+t
로
sudo su
cd로 파일 들어가서 pl 파일 실행 ./[파일명]
apt update
apt install open-vm-tools open-vm-tools-desktop -y
Y
Y
apt install docker.io -y
apt install apache2 -y
=> 온프레미스 환경
cd /var/www/html
ip ad
2: ens 33 inet [ip]
3: docker0
172.17.~
이미지 검색
docker search [apache]
docker search [http]
docker search [mysql]
docker search [ubuntu]
이미지를 다운로드
docker pull ubunto/apache2
다운로드가 굉장히 빠름
-> 용량이 작음
이유는 container는 매우 작은 용량단위로 설계됨
아무리 용량이 커봐야 1~3gb
이미지 확인
docker images
REPOSITORY - IMAGE ID (중요)
이름 - 고유번호
docker의 이미지 개념은 일종의 백업 파일과 같음
컨테이너(인스턴스) 생성 및 실행
docker run -d --name apache_server -p 8080:80 ubuntu/apache2
run : 실행 (이미지 실행)
-d : 백그라운드로 실행
--name : 이미지를 통해 내가 생성할 인스턴스 별칭이 됨
-p 8080:80 : 로컬 8080으로 접속하면 도커환경의 80으로 포워딩하겠다.
=> 고유 해시값이 출력됨
7. 실행확인
docker ps
docker ps -a
-a : 오류가 있어도 모두 출력하겠다.
ip ad 하면
5: 가 가상장치 올라옴
ifconfig
-> not found 뜸
도커는 local의 환경에서 폴더 개념으로 네트워크 기능이 포함된 것으로 생각해야됨
service apache2 status
-> 서비스 실행 확인
exit
service apache2 stop
->192.168.255.136 접속안됨
->192.168.255.136:8080 접속됨
-> 프로세스 맵핑
=> ubuntuIP:8080 >> docker:80
192.168.255.136 172.17.0.2
컨테이너 로그 확인
docker logs apache_server

아니면 위 그림처럼 컨테이너 직접 접속하여 로그 일일이 봐야함
데이터볼륨 설정(데이터 지속성)
docker run -d --name apache_server2 -p 8888:80 -v /home/seonghawn/Desktop:/var/www/html/index.html ubuntu/apache2
( /index.html 오류 )디렉토리끼리 또는 파일끼리 매핑
docker run -d --name apache_server5 -p 6666:80 -v /home/seonghawn/Desktop:/var/www/html ubuntu/apache2
->> 로컬에 있는 데이터와, 도커 내부간에 동기화를 사용하여 데이터 관리
-v : 볼륨을 추가하겠다.
컨테이너 시작 정지
docker start apache_server
docker stop apache_server
마우스패드 설치
apt install mousepad -y
mousepad test.html
echo "test" > index.html
=> 실시간 동기화 가능
docker exec -it apache_server5 bash
6666접속불가포트로 protection함

다음과 같은 설정으로 강제 접속가능 - 주소창에 about:config 검색
-> 설정창 이동


13 컨테이너 백업
docker save -o apache.tar ubuntu/apache2 // 이미지 백업
docker save -o apache.tar ubuntu/apache2:241224 // 이미지 백업 , : 태그 붙이기
docker export apache_server5 > apache_server5.tar // 컨테이너 추출
docker load -i apache2.tar // 이미지 복원
docker import apache_server5.tar apache_server6 // 컨테이너 임포트 (server6는 이미지 이름이 됨)
| 특징 | docker load | docker import |
|---|---|---|
| 파일소스 | docker save로 생성된 tar파일 | 컨테이너 파일 시스템 백업 ( docker export 사용 ) |
| 태그 및 레이어 정보 | 포함 (이미지의 메타데이터 포함) | 포함되지 않음 ( 새로운 이미지로 생성) |
| 이미지 복원 | 기존 이미지의 상태를 그대로 복원 | 파일 시스템만 사용해 새로운 이미지를 생성 |
| 사용목적 | 이미지 백업 및 배포 | 컨테이너 기반 새로운 이미지 생성 |
| 명령어 | docker save -> docker load | docker export -> docker import |

|
+------------> save load

|
+----------> import export
docker ps -a 로 컨테이너 아이디 확인
컨테이너에 저장 및 변경된 파일 상태로 나는 이미지화 시키고 싶다.
docker commit [컨테이너ID][이미지이름:태그] 형태로 저장 가능
docker commit 86d29f8dfa18 apache_test:241224
docker save 로 추출 및 배포 가능
commit 같은 경우는 snapshot으로 이해할것 수정 중간 저장?
docker run -d --name apache_test -p 8080:80 apache_test:241224
-> apache_test 컨테이너 만들어짐
docker exec -it apache_test bash
docker commit은 컨테이너의 현재 상태를 그대로 이미지로 저장할 때 유용합니다. 수동으로 수정한 내용을 반영한 새로운 이미지를 만들 수 있습니다.
docker save는 이미지 자체를 백업하는 명령어로, 컨테이너의 변경 사항이 반영되지 않습니다. 이미지 파일을 이동하거나 백업할 때 사용합니다.
docker import는 파일 시스템만을 새로운 이미지로 가져올 때 사용되며, 레이어나 메타데이터 없이 파일 시스템을 새로 복원할 수 있습니다.
| - | docker save | docker import | docker commit |
|---|---|---|---|
| 기능 | 이미지를 파일로 저장(모든 레이어 포함) | tar 파일에서 파일 시스템을 가져와 이미지 생성 | 컨테이너 상태를 새로운 이미지로 저장 |
| 대상 | Docker 이미지 | tar 파일로 백업된 파일 시스템 | 실행 중인 컨테이너 |
| 레이어 정보 | 유지(이미지의 모든 레이어 포함) | 없음(단일 이미지로 저장됨) | 새로운 레이어가 생성됨 |
| 메타데이터 | 유지(태그, 환경변수 등 포함) | 없음(메타데이터 포함되지 않음) | 일부 메타데이터 유지(컨테이너 설정) |
| 파일 시스템 변경 사항 | 없음(이미지 원본 상태 그대로 저장) | 파일 시스템만 복원(변경 내용 없음) | 컨테이너의 변경 사항 포함 |
| 사용 예시 | 이미지를 백업하거나 다른 시스템으로 이동 | tar파일로 파일 시스템만 복구 | 변경된 컨테이너 상태를 이미지로 저장 |
| 명령어 예시 | docker save -o my_image.tar IMAGE | dokcer import my_fs.tar new_image | docker commit CONTAINER_ID new_image |
| 복구 방법 | docker load -i my_image.tar | docker import로 새로운 이미지 생성 | 새로운 이미지로 컨테이너 생성 |
| 주요 사용 시나리오 | 이미지를 백업하거나 공유 할 때 | 외부 tar 파일을 이미지로 변환할 때 | 컨테이너에서 수동으로 수정한 상태 저장 |
레이어가 머지?
Docker에서 말하는 레이어(layer)는 이미지를 구성하는 단계적 파일 시스템 구조를 의미
Docker 이미지는 여러 개의 읽기 전용 레이어로 이루어져 있으며, 각 레이어는 이전 레이어 위에 쌓이는 방식으로 만들어집니다. 이를 통해 이미지의 효율적인 저장과 배포가 가능합니다.
Docker의 레이어는 이미지를 효율적으로 관리하고 빌드할 수 있게 하는 핵심 개념입니다. 각 레이어는 파일 시스템의 스냅샷처럼 동작하며, 이러한 구조 덕분에 Docker는 빠르고 유연한 이미지 관리를 가능하게 합니다.