
라고 하지만
실은 정석이 아닌, 새로운 방법을 익혔다.
아쉬운 것은 솔루션 공식문서가 너무 제한적이고 실 사례가 적다.
구글신이 나를 버린건지.
그래서 DockerFile 작성은 문서 어디에도 없었다.
Docker Image 와 Container 관계
Docker tar.gz 과 bin 의 관계
Container/ image를 올리기 위한 들어가는 Docker 파일(확인되지 않음) 외 env. json 파일의 역할은 무엇인지 등등
실은,
자체 Vendor사 Cloud에서 docker.tar.gz 파일과 install-docker.bin파일을 제공하고 있었는데 .
둘 중 하나만 있으면 되는 줄 알았다.
사수님이 tar 파일만 주길래
docker 파일이겠거니. 처음엔 그것만 압축해제 해서 보다가 계속 막힘.
tar 파일이 왜 있고, 왜 굳이 gz 파일로 또다시 압축한건지 알아보기 시작함.

tar -xvzf [file.tar.gz]
# x 실행 / z 압축 해제과정 /
당연히 나는 install docker.bin 파일만 받으면 되는줄 알고 삽질을 엄청 했다.
./install
시 image 파일이 올라가질 않았다.
이유는 아직도 잘 모름..
docker load -i <img-path> (.targ)
# i == input : 불러올 파일 명
위 코드에 힌트가 있는듯 한데, 알아보니,
해당 과정은 주로 이미지 백업 후 다른 Docker가 설치된 PC에서 로딩하여 컨테이너 제작 때 사용됩니다.
라고 한다.
0 ) 이미지 백업 파일인 tar를 docker image에 로드하는 방식이란다.
그런데 image 어디있는데..? == tar 파일..?
1) Docker 은 container를 돌려주는 engine이라고 한다면
결국 platform은 어디서 실행되는건지
2) image는 layer대로 쌓이던데, 실제로 install file내 json이나 layer.tar 파일을 보면 분명 docker image를 위한 파일인데
docker save [OPTIONS] IMAGE [IMAGE...]
-docker iamge를 tar.gz으로 gzip 이용해서 저장함
docker save myimage:latest | gzip > myimage_latest.tar.gz
docker load [OPTIONS]
#
Load an image or repository from a tar archive (even if compressed with gzip, bzip2, or xz) from a file or STDIN. It restores both images and tags.
docker load < busybox.tar.gz
Loaded image: busybox:latest
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest 769b9341d937 7 weeks ago 2.489 MB
컨테이너는
host , (즉 주인공 - vm, windows,linux등 최초의 OS 컴퓨터)
기반으로 돌아가는 프로세스
vm 에서 ova를 설치해서 리소스를 잡아먹는것 보단, vm과 격리된 별도의 환경(Docker hub)에서 일반 프로세스 처럼 빠르게 돌아간다.
docker ps를 통해 container가 분명 올라가 있는데, 무중단 배포가 되는건가 싶긴함. 이미지 복사, 백업을 위해서
장점)
인터넷이 연결되지 않는 내부망 사용시 외부 인터넷을 막았을 때 유용하게 원하는 이미지를 다운 받을수있다.
생성된 tar 파일 그대로 git/ FTP/ USB를 통해 이미지 로드할 서버를 변경할 수있다.
DockerFile 안만들어도 된다!
단점 )
container 확인
# 실행중, 가동 멈춘 컨테이너 다 보여줌
docker ps -a
# 지금 실행중인것
docker ps

Status == Up 이 되어있는것만 실행중인 것임.
container 실행
# docker run [Option] imageName [:tag] [/bin...]
docker run -p 8080:80 nginx:latest
# 8080 docker port를 80 번 포트로 전환
docker run -d --name web -p 8080:80 nginx:latest
# container 이름 설정 및 tag 설정 다 할수있음.
docker container/image exec -it [container name / containerID/imageID ] bash
docker container exec -it soar bash
docker save [옵션] [filename] [image name/imageID]
docker save -o example.tar soar/fortinet-fotisoar-1:7.x.1
# mac 의 경우
gzcat ./$docker_image_file | docker load > /dev/null
# 일반 linux 경우
zcat ./$docker_image_file | docker load > /dev/null
docker load -i [이미지 경로/ filename. tar]
docker load -i /home/admin/example.tar
이미지 목록 확인
docker images
Rocky linux라는 특수한 환경이라, 실은 Docker 배포시 tar.gz 관련 자료를 medium 에서 겨우 찾았는데,
Docker- 이미지 수동 빌드, 스크립트 작성, cotainer 실행
실은 OS만 다를뿐 꽤 문서가 많았다.
windows-docker
docker - 구조 도식화