일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Python
- SSH
- 프로그래머스
- OpenCV
- label
- pytorch
- ubuntu
- 명령어
- C++
- 기타 연주
- windows forms
- Numpy
- YOLO
- Docker
- Linux
- VS Code
- JSON
- paramiko
- C#
- pip
- LIST
- Visual Studio
- pandas
- mysql
- C
- error
- Selenium
- 핑거스타일
- 채보
- 오류
- Today
- Total
목록Docker (9)
기계는 거짓말하지 않는다
쿠버네티스 파드의 도커 컨테이너 내에서 nvidia-smi를 입력했을 때, 간혹 아래의 오류를 보는 경우가 있다.Failed to initialize NVML: Unknown Error컨테이너를 정지했다가 재시작하면 동작하긴 하지만 근본적인 해결법이 아니다.오랫동안 많은 고민을 했지만 다른 방법으로도 해결하진 못했다./etc/nvidia-container-runtime/config.toml에서 no-cgroups = false를 설정하거나,/etc/docker/daemon.json에서 "exec-opts": ["native.cgroupdriver=cgroupfs"] 추가 등으로도 해결되지 않았다. 해결법은 Deployment의 yaml 설정 파일에서 privileged를 true로 설정하거나(권장하지 않..
Docker 이미지를 저장하는 기본 위치는 /var/lib/docker 디렉터리이다.이 기본 위치를 변경하는 방법이다.Docker 서비스 중지sudo systemctl stop docker(선택사항) 기존 Docker 디렉터리 데이터 이전기존 이미지 데이터가 존재할 경우 이전시키고 싶을 경우/data/docker 디렉터리로 이전한다고 가정sudo mv /var/lib/docker /data/dockerDocker 데몬 설정 파일 수정Docker 데몬의 기본 위치는 /etc/docker/daemon.json이다.파일이 없다면 새로 생성하고 아래 내용을 추가한다.{ "data-root": "/data/docker"}Docker 서비스 재시작sudo systemctl start docker설정 확인# Doc..
Docker 컨테이너 내부의 한글 locale UTF-8 환경 변수를 설정하는 방법이다.apt-get update# locales 설치apt-get install locales# 현재 사용할 수 있는 locale 확인locale -a# locale 생성locale-gen ko_KR.utf8/etc/default/locale를 아래 이미지와 같이 수정 vi /etc/default/locale# locale에 입력할 내용LC_MESSAGES=POSIXLANG=ko_KR.UTF-8이후 bashrc에 환경 변수를 적용한다.vi ~/.bashrcexport LANG=ko_KR.UTF-8source ~/.bashrc
Docker container에서 NVIDIA GPU를 사용하려면NVIDIA container toolkit을 설치하고 runtime을 nvidia로 설정하여야 한다.Docker daemon.json 파일은 /etc/docker/daemon.json 경로에 있거나 없다면 추가한다.deamon.json 수정 또는 생성sudo vi /etc/docker/daemon.jsondaemon.json 파일에 다음 내용을 추가한다.{ "default-runtime": "nvidia", "runtimes": { "nvidia": { "path": "nvidia-container-runtime", "runtimeArgs": [] } }}Do..
Docker 이미지의 레이어가 많이 쌓여있고, 이미지 크기가 커졌다면 병합할 수 있는 방법이다. Docker 이미지의 history를 확인하면 Dockerfile에서 생성되거나컨테이너에서 생성된 이미지의 명령어 히스토리를 볼 수 있다. docker inspect 명령어를 확인하면 적용된 환경 변수(Env)도 확인이 가능하다. Dockerfile이 존재한다면 명령어들만 수정하여 이미지를 새로 빌드 하면 되지만Dockerfile 없이 컨테이너로 이미지를 생성했다면, 아래와 같은 방법을 사용할 수 있다.우선 빈 도커 이미지를 생성한다.빈 도커 이미지 생성 빈 도커 이미지(empty docker image) 생성Docker Hub에서 제공하는 빈 이미지인 scratch를 사용하여 빈 도커 이미지를 생성할 수 있..
Docker Hub에서 제공하는 빈 이미지인 scratch를 사용하여 빈 도커 이미지를 생성할 수 있다.Link: Docker Hub scratch scratch - Official Image | Docker HubThis image is most useful in the context of building base images (such as debian and busybox) or super minimal images (that contain only a single binary and whatever it requires, such as hello-world). As of Docker 1.5.0 (specifically, docker/docker#8827),hub.docker.com1. 도커 파일을..
Docker commit (현재 컨테이너 이미지로 저장)컨테이너 실행 중에 사용하여도 되지만 일시적으로 중지된다. 웬만하면 컨테이너 중지 후 이미지로 만든다.sudo docker commit CONTAINER_ID IMAGENAME:TAGDocker save (현재 이미지 백업)이미지를 tar 파일로 저장한다.sudo docker save -o filename.tar image_id# 이미지를 불러올 때(load) 이미지 이름:태그 형식으로 복구하고 싶다면 아래와 같이 사용sudo docker save -o filename.tar :Docker load (백업 이미지 불러오기)저장된 tar 파일을 도커 이미지로 만든다.sudo docker load -i filename.tar
docker ps를 입력하면 테이블 형식으로 아래와 같은 컬럼 밑에 컨테이너 정보가 출력된다. 컨테이너에 설정된 포트, 이름 등이 길거나 많을 경우 출력했을 때 알아보기가 쉽지 않다.그럴 때 --format 옵션으로 출력 포맷을 설정할 수 있다.Docker ps Docs (format) docker psdocker ps: List containersdocs.docker.com# 컨테이너 ID와 Name 출력docker ps -a --format "table {{.ID}} {{.Names}}"