-
[yongggg's] Docker container를 images로 저장하기kubernetes & Docker 관련 2023. 8. 1. 09:53
안녕하십니까 이번 docker part에선 현재 상태의 container를 image로 저장하는 방법을 설명드리고자 합니다.
개인 서버가 아닌 공용으로 사용해야할 서버에서는 독립적인 환경을 위해, docker를 유용하게 사용합니다. 뿐만 아니라, 서비스할 condition을 동일하게 하여 testing하기 위해서도 이 docker를 많이 씁니다. 따라서, 여러가지 조건에 따라 많은 패키지들을 한 container에 설치할텐데요, 이제 저희가 입맛에 맞게 여러 패키지를 설치한 현재 container 자체를 image로 만드는 작업과 이 image를 저장하는 방법에 대해 소개하겠습니다.
1. 원하는 환경의 container 구성
먼저, 자신이 원하는 condition의 docker container를 구성한다. 보통 다른 docker images를 가지고 container를 만들고 이 container를 사용하게 되는데, 이제 추가적으로 이 container에 원하는 package를 설치하면, 제가 원하는 container가 될 수 있다.
2. container 안의 환경으로 접근
container를 구성했으면, 이 container를 start로 깨워주고 이 container 안으로 접근할 수 있다. 다음의 명령어로 해당 container까지 접근할 수 있다.
docker start <해당 container name> docker exec -it <해당 container name> bash
3. image 저장
2. 까지 오류없이 잘 수행했다면, 다음과 같은 코드로 image를 저장할 수 있다.
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
위의 한 예시로 아래와 같이 container를 docker images로 저장할 수 있다. 이 때, -a(author) 옵션은 이미지의 작성자를 나타내는 메타데이터를 이미지에 포함시키며, -m 옵션은 커밋 메세지를 지정할 수 있도록 하는 명령어 이다.
docker commit -a "yong" -m "test container" test-container test:latest
4. image.tar 파일 저장
위 3. 까지 시행을 한 뒤에 다음 명령어를 작성하면, 새롭게 image가 만들어져 출력되는 것을 확인할 수 있다.
docker images
이제 이 image를 외부로 갖고 나가기 위해, tar 파일로 저장을 해보자. 다음의 코드로 해당 파일을 저장할 수 있다.
docker -o <저장할 경로/저장할 name.tar> <images:latest>
5. image.tar load
위의 저장된 image를 이제 다른 환경 장치나, 동일 장치에서 load를 할 수 있다.
"image.tar"파일이 있는 경로에서, 다음 명령어로 load를 해주면 dokcer image가 load되는 것을 확인할 수 있다.
docker load -i <image name.tar>
'kubernetes & Docker 관련' 카테고리의 다른 글
[yongggg's] docker images 서버에서 로컬(서버) 옮기기 (0) 2025.02.14 [yongggg's] 서버 docker container 내의 0.0.0.0 바인딩 후, 로컬 접속 에러 (5) 2025.01.10 [yongggg's] port 안뚫린 docker container에 ssh 연결하기 (ssh -> server -> docker container) (1) 2024.03.07 [yongggg's] 서버에 Docker/Nvidia-Docker 설치하기 (Ubuntu20.04) (2) 2022.11.24 [yongggg's] docker 환경에서 Jupyter 외부 서버와 연동 (0) 2022.03.15