특정 이름을 포함하는 모든 image들 일괄 제거
docker images | grep '제거할 이름' | awk '{print $3}' | xargs docker rmi -f
tar파일을 docker image로 변경
docker load -i my_image.tar
docker image를 tar 파일로 저장
docker save -o my_image:v1.tar my_image:v1
현재 사용자도 sudo를 사용하지 않고 docker 사용하기
sudo groupadd docker
sudo usermod -aG docker $USER
사용하지 않는 컨테이너 모두 제거
sudo docker container prune
사용하지 않는 이미지 모두 제거
docker image prune -af
컨테이너 정보 보는 법
docker inspect [컨테이너명]
# 특정 정보만 보기 -> <https://docs.docker.com/engine/reference/commandline/inspect/>
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_ID
# Variable을 딸 수 없는 구조라면 Index로 한 번에 가져오기
docker inspect --format '{{ index (index .Config.Env) 0 }}' [컨테이너명]
컨테이너가 GPU의 몇 번을 사용하고 있는지 확인
docker inspect --format='{{index (index .Config.Env) 0}}' [컨테이너명]
우분투 버전 확인
cat /etc/issue
Cuda Version 확인
cat /usr/local/cuda/version.txt
Cudnn Version 확인
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
Nvidia Driver Version 확인
cat /proc/driver/nvidia/version
Nvidia Driver 삭제
apt --purge autoremove nvidia*
Docker run
docker run -it --name 컨테이너명 -v 호스트 디렉토리:컨테이너의 디렉토리 이미지명 /bin/bash
GPU를 사용하도록 Docker run
# 원하는 docker image full
sudo docker pull nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04
# docker로 접속
nvidia-docker run -it nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04 /bin/bash
# 컨테이너간 통신용 network 만들기
docker network create [네크워트명]
# 네트워크 상세 정보
docker network inspect [네크워트명]
# 네트워크에 컨테이너 연결
(컨테이너를 실행할 때 --network 옵션을 명시해주지 않으면,
기본적으로 bride라는 이름의 디폴트 네트워크에 붙게 됨)
docker container run -d -p 3306:3306 --network maria-network -e MYSQL_ROOT_PASSWORD=123 --name mariadb mariadb
컨테이너 목록 확인하기
# 동작중인 컨테이너(Container) 확인
docker ps
# 정지된 컨테이터까지 확인
docker ps -a
# 컨테이너 이름/포트 등으로 검색하기
docker ps|grep [port 혹은 이름]
컨테이너 삭제하기