목록MLOPS/docker (5)
중요한건 꺾이지 않는 맥북
더보기 글을 작성하기에 앞서 해당 이슈를 제기해준 동료이자 선배인 Lee에게 감사의 말씀을 드립니다...🙇♂️ Docker 컨테이너에 NAS 또는 local file system 마운트하면서 팀 내에서 ML 모델 개발을 하고 있었습니다. NAS 크기가 7~800 테라바이트 수준이어서 크게 신경안썼는데 어느 순간 생각치도 못한 크기의 디스크 공간을 차지하면서 실제 사용공간보다 더 많은 공간을 차지하고 있었습니다. root@C1-L-APOLLO-GPU-001:~# df -h Filesystem Size Used Avail Use% Mounted on udev 378G 0 378G 0% /dev tmpfs 76G 3.4M 76G 1% /run /dev/mapper/C1--L--APOLLO--GPU--001-..
5a6d2b76cd56: Preparing 64afb6fa4c53: Pushing [==================================================>] 620.8MB/620.8MB a1bb0e6134fd: Preparing 6069ed0c1062: Preparing 64afb6fa4c53: Pushing [===================================> ] 443.2MB/620.8MB c019ca13498b: Pushed 8965905d5c74: Pushed 3fcda9c2261a: Pushed 096b56019919: Pushed 985b105f7238: Layer already exists 120dbecf84cc: Layer already exists 55..
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 위의 curl 명령어로 도커 컴포즈 라이브러리 설치한다. mkdir composetest cd composetest sudo chmod +x /usr/local/bin/docker-compose ###root권한이 아닌 사용자권한으로 되어있는지 확인하고 써내려가자!!### app.py 파일을 composetest 디렉토리 안에 만든다. app.py import time import redis from flask import Flask app = F..

기본적으로 docker를 설치하게 되면 위와 같이 docker0 가 bridge 역할을 한다. docker0 - virtual ethernet bridge : 172.17.0.0/16 - L2 통신기반 - container 생성 시 veth 인터페이스 생성 (sandbox) - 모든 컨테이너는 외부 통신을 docker0 통해 진행 - container running 시 172.17.X.Y 로 ip 주소할당 PORT-FORWARDING - container port 를 외부로 노출시켜 외부 연결 허용 - iptables rule을 통한 포트 노출 -p hostPort:containerPort -p containerPort -P $ docker run --name web -d -p 80:80 nginx:1...

예를 들어 mysql 디비를 사용할 때 컨테이너의 /var/lib/mysql의 rw 레이어에 수많은 데이터들이 쌓이게 된다. 따라서 도커호스트에 특정 저장소를 생성한다. 디렉토리가 될수도 있고 디스크가 될수도 있고 상관없다! 컨테이너가 만들어주는 데이터를 /dbdata에 마운트한다 명령어는 다음과 같다 $ docker run -d --name db -v /dbdata:/var/lib/mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=pass mysql:latest --보안이슈-- 컨테이너가 도커 호스트의 데이터를 수정할 수 있다면 해킹의 위험에 노출된다 따라서, :ro 라는 옵션으로 readonly 명령을 내려서 볼륨을 마운트하게 해준다 $ docker run -d --name db -v ..