Knowhow/Docker 7

Docker image 중 <none>:<none> 지우기

docker 이미지 빌드하다보면 빌드 실패 하는건 한 두 번 겪는 일이 아닌데 이 때 부산물로 :과 같은 이미지들이 생겨난다.  냅둬도 뭐 큰 상관은 없다만 이게 원래 만들고자 했던 이미지들의 용량을 그대로 들고 있기 때문에 너무 많이 쌓이면 메모리가 부족해진다. 따라서 명령어도 크게 안 복잡하니까 보이면 바로 바로 지우는게 좋다.sudo docker rmi $(sudo docker images -f "dangling=true" -q) # --force 가끔 아직 컨테이너에서 사용하고 있는 이미지라고 안 지워질 수도 있는데 십중팔구 쓰레기 컨테이너일 것이다. 그냥 --force 붙여서 강제 삭제해버리거나 확인 후 삭제하면 된다. sudo docker ps -asudo docker rm CONTAINER_..

Knowhow/Docker 2024.05.07

VScode를 활용한 container 원격 활용 방법 (VScode로 remote container 사용하기)

이전에 VScode를 running docker container에 붙여서 사용하는 방식을 정리한 바 있는데 (링크) 이번엔 VScode를 이용해 원격 PC에서 동작하고 있는 docker container에 접근하는 방법을 기록해보고자 한다. VScode가 보면 볼수록 편의성이 뛰어난 툴인 것 같다. Server PC에서 할 일 (원격 연결 당할 PC, container를 갖고 있는 PC) ssh 세팅을 완벽히 해두어야 한다. ssh로 연결됨을 확인해두면 특별히 VScode 관련해서 할 일은 없다. ssh 세팅은 이전 글 (링크) 참고해서 하면 되겠다. 계정 이름과 IP 그리고 포트 번호는 꼭 기억해두자. Client PC에서 할 일 (원격 연결 시도할 PC) 역시나 ssh 세팅은 당연히 되어있어야 한다..

Knowhow/Docker 2024.02.14

DockerFile로 효율적으로 이미지 빌드하기 (w/ tip)

DockerFile이 있을 때, 다음과 같이 한줄을 입력하면 도커 이미지를 빌드할 수 있다. docker build -t IMAGE_NAME:TAG . 여기서 IMAGE_NAME에 해당하는 부분은 말그대로 이미지 입력을 넣으면 되고, TAG 부분에는 버전 관리용으로 사용할 이름을 넣으면 된다. 지정하지 않을 시 :latest 가 기본값으로 들어간다.  Tip. DockerFile을 여러개로 나누어서 사용하는 방법DockerFile로 이미지를 빌드할 때, 이미지가 무거워질수록 빌드가 부담스러워진다. 한 번만 빌드하고 끝난다면 아무 상관없지만 혹 개발 단계에서 이것저것 여러번 변경하면서 빌드를 시도한다면 빌드 시간이 길어지므로 불편함이 커진다. 예를 들어, OpenCV, Ceres 등 묵직한 라이브러리들을 ..

Knowhow/Docker 2024.01.29

Docker 이미지/태그 명 바꾸기, private server에 push하기

제목 그대로 로컬에 갖고 있는 docker 이미지를 이름 변경하여 private server에 올리는 과정을 적는다. Docker 이미지 이름, 태그 이름 바꾸기 docker tag [원래 이미지 이름]:[원래 태그 이름] [새로운 이미지 이름]:[새로운 태그 이름] 명령어는 간단하다. 위 명령어를 사용하면 로컬에 이미 만들어둔 이미지의 이름만 새로 생긴다. 실제로 docker images를 통해 리스트를 띄워보면, 새롭게 생성된 이미지의 ID가 이전과 같은 것을 볼 수 있다. 내용물 전체를 똑같이 복사한다기 보다 이름만 새로 만들고 주소를 공유하는 식 같다. Docker private server 로그인 docker login -u [USER ID] -p [PASSWORD] [SERVER URL OR ..

Knowhow/Docker 2023.07.03

DockerFile 내부에서 github private repository clone 하기

DockerFile을 작성할 때, git clone 명령어를 포함해야 하는 경우가 종종 있다. 생성할 도커 이미지가 단순히 환경 구축용이고 컨테이너를 띄울 때 필요한 코드나 폴더들을 volume mount를 통해 연결해서 사용한다면 해당사항이 없겠지만, 도커 이미지를 이용해 환경+코드가 다 포함되어 있고 1회 실행용 컨테이너를 띄우고자 할 때는 자주 마주하게 된다. 다른 말로 volume mount로 이것저것 덕지덕지 붙이는 것없이 도커 컨테이너를 이미 모든 것을 포함한 형태로 띄우고 싶으면 높은 확률로 DockerFile 내에 이런저런 git clone 명령어를 포함하게 된다. 문제는 open source일 경우, 권한 문제가 없기 때문에 그냥 RUN git clone 명령어가 오류없이 동작하지만 gi..

Knowhow/Docker 2023.06.22

Docker container 내에서 python 개발할 경우, VScode 활용법

Pycharm만 사용하다가 Docker container 내에서 직접 코딩, 디버깅할 일이 생기니 귀찮은 점이 꽤 많아서 VScode를 쓰기로 했다. Pycharm은 회사에서 쓸 경우, 라이센스 문제도 있고 3.10 이상 버전의 interpreter는 고작 이름 때문에 인식 못해서 사용하지 못하는 문제 등 잡다한 이슈들이 많아 짜증날 때가 있었는데 이 참에 VScode로 확 갈아타는 것이 나을 것 같다.   1. VScode 내 extension 설치VScode를 현재 띄워져있는 컨테이너에 붙이고자 하면 위 extension을 설치해두어야 한다. 예전 이름은 Remote Containers였던 것 같은데 지금은 Dev Containers로 바뀐 듯하다.  Python extension은 기본으로 깔아두어..

Knowhow/Docker 2023.05.16

자주 사용하는 Docker command, argument 정리

Docker는 개념부터 시작하면 복잡하고 그 내용을 전부 정리하면 두께가 엄청나지만 실제로 사용하는 내용은 적다. 일반적으로 복잡한 일을 할 때보다 대충 환경 설정 귀찮아서 이미지 받은 뒤 컨테이너 만들어서 편하게 해보려고 쓰는 경우가 많기 때문에 쓰는 command와 argument (편의 상 태그라고 하겠다.) 만 쓰는 경우가 많다. 최소로 외워둘 커맨드 docker images : 받은 이미지 리스트 출력. docker ps -a : 현재 컨테이너 리스트 출력. docker rm CONTAINER_NAME : 컨테이너 삭제. --rm 태그 빼먹었을 때 자주 씀. docker rmi IMAGE_NAME:TAG : 이미지 삭제. docker start CONTAINER_NAME : 컨테이너 켜기. do..

Knowhow/Docker 2023.01.05