Docker 기초 알아보기

도커 설명

도커 사용 방법 및 명령어 정리

docker pull mysql:8
# MySQL 8버젼의 이미지를 도커로 다운로드한다
docker images

# REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
# mysql        8         106d5197fd8e   2 months ago   816MB
docker rmi 106d5197fd8e # IMAGE ID
docker run --name mysql-tutorial -e MYSQL_ROOT_PASSWORD=1234 -d -p 3306:3306 mysql:8

- --name : 컨테이너의 이름 설정
- -e : 환경변수 설정, 비밀번호를 설정함
- -d : 컨테이너를 백그라운드 형태로 실행, 없으면 현재 셸 위에 컨테이너가 실행되게 됨
- -p : 포트 지정, 로컬 호스트 포트:컨테이너 포트 형태, 로컬 호스트 포트로 접근 시 컨테이너의 포트 번호로 접근하는 것과 같게 됨
- mysql:8 : 이미지 이름과 태그

docker ps
# 뒤에 -a를 붙이면 작동을 멈춘 컨테이너들까지 전부 보여줌(all)
docker exec -it mysql-tutorial /bin/bash

# mysql-tutorial : 자신의 컨테이너 이름(혹은 ID)
# Ctrl + P, Ctrl + Q : 컨테이너 나가기
docker stop mysql-tutorial
docker rm mysql-tutorial

# mysql-tutorial : 자신의 컨테이너 이름(혹은 ID)
# 단, 멈춘 컨테이너만 삭제 가능
# 뒤에 -f를 붙이면 실행중인 컨테이너도 삭제 가능

도커 사용 시 주의사항

docker run -it -p 8888:8888 -v /some/host/folder:/home/docker/workspace mysql:8

도커 이미지 만들기

FROM pytorch/pytorch:1.13.1-cuda11.6-cudnn8-runtime
COPY . /app
# 로컬의 현재 폴더를 컨테이너의 /app 폴더로 복사하겠다는 의미
WORKDIR /app
# 이 라인 뒤에 존재하는 RUN, CMD 명령어는 모두 컨테이너 내부의 /app 경로에서 실행한다는 의미
ENV PYTHONPATH=/app
ENV PYTHONDUFFERED=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"]
docker build -t 02-docker:latest .
# 02-docker : 빌드할 이미지 이름
# latest : 빌드할 이미지의 태그
# . : 현재 폴더를 의미
docker run 02-docker:latest

레지스트리에 도커 이미지 푸시

docker login
docker tag 02-docker:latest xogks5479/02-docker:latest
docker push xogks5479/02-docker:latest