Docker install Ubuntu
nvidia docker설치
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker
Google drive file Download
- git clone으로 받을 수 없는 부분들이 있다 예를 들면 KITTI 같은 데이터 셋이라던지,, sh 파일로 만들어서 다운 받을 수도 있겠지만 google drive에 올려두고 다운 받을 수도 있다
* 주의할 점 *
- 아래에서 가 의미하는 것은 google drive에서 링크 공유를 했을 때 file/d//view?usp=sharing 의 저 FILEID 부분이다!
- 공유를 할때 전체 공개 편집자로 바꿔야 가능!
100MB 이하
wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=' -O FILENAME
100MB 이상
1) cookie file 만들어 주기
curl -c ./cookie -s -L "https://drive.google.com/uc?export=download&id=" > /dev/null
2) cookie 실행
curl -Lb ./cookie "https://drive.google.com/uc?export=download&confirm=`awk '/download/ {print $NF}' ./cookie`&id=" -o FILENAME
- 이 방법을 쓸 적엔 로컬에 있는 폴더를 연결할 줄 몰랐다 나는 통신 개념이 없었기 때문에! 근데 로컬에 있는 파일도 연결 할 수 있다.
- v "${HOME}/workspace:/workspace # 내 컴퓨터에 있는 workspace 폴더를 도커 환경에서!
- 아니면
$VOLUMES --workdir="cakin_ws/src"
Docker 이미지를 registry를 거치지 않고 이동하고 싶을 때
이럴 때 사용자는 docker 이미지 혹은 컨테이너를 tar파일로 만들 수 있다.
1. docker save (docker image -> tar)
docker 이미지를 tar파일로 저장하기 위해서는 docker save 커맨드를 사용한다.
docker save \[옵션\] <파일명> \[이미지명\]
저장할 파일명을 지정하는 옵션은 -o 를 사용한다.
ex) docker save -o nginx.tar nginx:latest
2. docker load (tar -> docker image)
tar파일로 만들어진 이미지를 다시 docker image로 되돌리기 위해서는 docker load 커맨드를 사용한다.
docker load -i tar파일명
3. docker export (docker container -> tar)
docker는 이미지 뿐 아니라 container를 tar파일로 저장하는 명령어를 제공한다.
docker export <컨테이너명 or 컨테이너ID> > xxx.tar
4. docker import (tar -> docker image)
export 커맨드를 통해 만들어진 tar 파일을 다시 docker image로 생성하는 명령어이다.
docker import <파일 or URL> - \[image name\[:tag name\]\]
※ root 권한으로 실행하지 않을 경우, 액세스 권한이 없는 파일들이 포함되지 않는 문제가 발생할 수 있다.
(중요) export - import 와 save - load의 차이
docker export의 경우 컨테이너를 동작하는데 필요한 모든 파일이 압충된다. 즉, tar파일에 컨테이너의 루트 파일시스템 전체가 들어있는 것이다.반면에 docker save는 레이어 구조까지 포함한 형태로 압축이 된다.
즉, 기반이 되는 이미지가 같더라도 export와 save는 압축되는 파일 구조와 디렉터리가 다르다.
save 로 저장하면 레이어로 저장이 되고 export 로 저장하면 디렉토리를 볼 수 있다!!!
결론은export를 통해 생성한 tar 파일은 import로, save로 생성한 파일은 load로이미지화 해야 한다.
Docker 컨테이너에서 변경한 사항 -> 다른 이미지로 저장
# docker images check
sudo docker images
# Image 실행
sudo docker run -it <images name>
# docker 수정
# docker를 실행한 채로
# 다른 터미널에서
sudo docker ps
# Container ID 항목 복사
sudo docker commit <container ID> <New image save name>
# 이미지 실행가능해짐
출처
'Done > Environment_Install' 카테고리의 다른 글
[ROS2] 명령어 정리 (0) | 2023.06.01 |
---|---|
[ROS2] Humble 설치 - Ubuntu 22.04 LTS (0) | 2023.06.01 |
[CPP] Ubuntu + Docker + C++ 환경 구성하기 (0) | 2021.12.24 |
[Ubuntu 18.04] Realsense sdk , ros wrapper (0) | 2021.09.08 |
[PIP, ANACONDA] Requirements.txt / 환경 복사 (0) | 2021.09.05 |
Docker install Ubuntu
nvidia docker설치
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker
Google drive file Download
- git clone으로 받을 수 없는 부분들이 있다 예를 들면 KITTI 같은 데이터 셋이라던지,, sh 파일로 만들어서 다운 받을 수도 있겠지만 google drive에 올려두고 다운 받을 수도 있다
* 주의할 점 *
- 아래에서 가 의미하는 것은 google drive에서 링크 공유를 했을 때 file/d//view?usp=sharing 의 저 FILEID 부분이다!
- 공유를 할때 전체 공개 편집자로 바꿔야 가능!
100MB 이하
wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=' -O FILENAME
100MB 이상
1) cookie file 만들어 주기
curl -c ./cookie -s -L "https://drive.google.com/uc?export=download&id=" > /dev/null
2) cookie 실행
curl -Lb ./cookie "https://drive.google.com/uc?export=download&confirm=`awk '/download/ {print $NF}' ./cookie`&id=" -o FILENAME
- 이 방법을 쓸 적엔 로컬에 있는 폴더를 연결할 줄 몰랐다 나는 통신 개념이 없었기 때문에! 근데 로컬에 있는 파일도 연결 할 수 있다.
- v "${HOME}/workspace:/workspace # 내 컴퓨터에 있는 workspace 폴더를 도커 환경에서!
- 아니면
$VOLUMES --workdir="cakin_ws/src"
Docker 이미지를 registry를 거치지 않고 이동하고 싶을 때
이럴 때 사용자는 docker 이미지 혹은 컨테이너를 tar파일로 만들 수 있다.
1. docker save (docker image -> tar)
docker 이미지를 tar파일로 저장하기 위해서는 docker save 커맨드를 사용한다.
docker save \[옵션\] <파일명> \[이미지명\]
저장할 파일명을 지정하는 옵션은 -o 를 사용한다.
ex) docker save -o nginx.tar nginx:latest
2. docker load (tar -> docker image)
tar파일로 만들어진 이미지를 다시 docker image로 되돌리기 위해서는 docker load 커맨드를 사용한다.
docker load -i tar파일명
3. docker export (docker container -> tar)
docker는 이미지 뿐 아니라 container를 tar파일로 저장하는 명령어를 제공한다.
docker export <컨테이너명 or 컨테이너ID> > xxx.tar
4. docker import (tar -> docker image)
export 커맨드를 통해 만들어진 tar 파일을 다시 docker image로 생성하는 명령어이다.
docker import <파일 or URL> - \[image name\[:tag name\]\]
※ root 권한으로 실행하지 않을 경우, 액세스 권한이 없는 파일들이 포함되지 않는 문제가 발생할 수 있다.
(중요) export - import 와 save - load의 차이
docker export의 경우 컨테이너를 동작하는데 필요한 모든 파일이 압충된다. 즉, tar파일에 컨테이너의 루트 파일시스템 전체가 들어있는 것이다.반면에 docker save는 레이어 구조까지 포함한 형태로 압축이 된다.
즉, 기반이 되는 이미지가 같더라도 export와 save는 압축되는 파일 구조와 디렉터리가 다르다.
save 로 저장하면 레이어로 저장이 되고 export 로 저장하면 디렉토리를 볼 수 있다!!!
결론은export를 통해 생성한 tar 파일은 import로, save로 생성한 파일은 load로이미지화 해야 한다.
Docker 컨테이너에서 변경한 사항 -> 다른 이미지로 저장
# docker images check
sudo docker images
# Image 실행
sudo docker run -it <images name>
# docker 수정
# docker를 실행한 채로
# 다른 터미널에서
sudo docker ps
# Container ID 항목 복사
sudo docker commit <container ID> <New image save name>
# 이미지 실행가능해짐
출처
'Done > Environment_Install' 카테고리의 다른 글
[ROS2] 명령어 정리 (0) | 2023.06.01 |
---|---|
[ROS2] Humble 설치 - Ubuntu 22.04 LTS (0) | 2023.06.01 |
[CPP] Ubuntu + Docker + C++ 환경 구성하기 (0) | 2021.12.24 |
[Ubuntu 18.04] Realsense sdk , ros wrapper (0) | 2021.09.08 |
[PIP, ANACONDA] Requirements.txt / 환경 복사 (0) | 2021.09.05 |