[boostcamp] Day 32. 너무 바쁘다!!

Jaeyeon Kim·2023년 4월 25일
1

Naver Boostcamp AI Tech

목록 보기
26/29

꽤나 뜸해져버렸는데,
다시 초심을 잡아야겠다.

오늘 배워간 것

소프트웨어개론

소프트웨어

컴퓨터 프로그램 + 관련 문서 + 데이터의 집함

좋은 소프트웨어를 위해서는

  • 모듈성 : 소프트웨어는 큰 프로그램을 작고 독립적인 부분으로 나눔
  • 응집도 : 하나의 모듈 안에서 함수들이 관련되어 있는 정도
  • 결합도 : 모듈들의 상호 의존성
    => 높은 응집도과 느슨한 결합도를 가진 소프트웨어를 만드는 것을 지향

Docker

기본적인 개념은 모두 알고 있었던 도커,,!
실제로 써본 적은 없어서, 내가 만든 프로젝트를
amazon ec2에 도커로 배포하는 연습을 조만간 해보려고 한다.

Docker 시작

Docker 설치

brew install --cask docker

mysql 8 버전 다운로드

docker pull mysql:8

다운 받은 이미지 확인

docker images

MySQL 실행

docker run --name mysql-tutorial -e MYSQL_ROOT_PASSWORD=1234 \ 
-d -p 3306:3306 -v {Host_dir:Container_dir} mysql:8

--name : 컨테이너 이름 지정
-e : 환경변수 설정
-d : (daemon) 백그라운드에서 실행
-p : 포트 바인딩
-v : 볼륨 마운트(폴더 공유)
맨 마지막 : 이미지

실행 중인 컨테이너 확인

docker ps

작동이 멈춘 컨테이너 확인

docker ps -a

컨테이너 삭제

docker rm {container}		# 멈춘 컨테이너 종료
docker rm -f {container} 	# 실행 중인 컨테이너도 종료

컨테이너 진입

docker exec -it mysql-tutorial /bin/bash

MySQL 실행

mysqld -u root -p

Dockerfile 예시

FROM pytorch/pytorch:1.13.1-cuda11.6-cudnn8-runtim

COPY . /app
WORKDIR /app
ENV PYTHONPATH=/app
ENV PYTHONUNBUFFERED=1

RUN pip install pip==23.0.1 && \
	pip install poetry==1.2.1 && \
    poetry export -o requirements.txt &&\
    pip install -r requirements.txt
    
CMD ["python", "main.py"]

FROM : 이미지 이름:태그
COPY {Local_dir} {Container_dir} : 파일 복사
WORKDIR : 컨테이너 내에서 커맨드를 어디서 실행할 지 정하기
ENV : 환경 변수 지정(파이썬의 경우 보통 위 두 값을 지정)
RUN : 실행할 명령어들
CMD [실행할 명령어, 인자] : 세팅 후에 실행할 명령어 지정

도커 이미지 빌드

docker build -t 02docker:latest .

-t {이미지 이름:태그} : default 태그는 latest
맨 마지막 인자 : Dockerfile의 경로

그 외 Dockerfile 명령어

  • EXPOSE : 컨테이너 외부에 노출할 포트

Dockerhub

연동하기

docker login

Tag 설정

docker tag 02-docker:latest {아이디}/02-docker:latest

Dockerhub push

docker push {이미지 이름:태그}

서두르지 말고,
한 발짝씩 나아가기

profile
낭만과 열정으로 뭉친 개발자 🔥

0개의 댓글