24.01.16 최초 작성
#기본 명령어
docker build
#이미지 구분
docker build -t <사용자 이름>/<이미지 이름>:<버전 태그>
docker build -t yoon/ubuntu:1.0
#도커 파일 경로 지정
docker build -f /<경로>/<도커파일>
run : 배포 및 실행#기본 명령어
docker run [run 옵션] <이미지이름> [컨테이너 실행 옵션 or 명령어]
docker run ~ yoon/ubuntu:1.0 ~
#-d : 백그라운드 실행, -P : 이미지에서 지정한 포트 open, -p 8080:80 : 8080번 포트를 통해 80번 포트에 접근 가능앷
docker run -d -P nginx
#일시 중지/다시 시작 (메모리에서 unload/load)
docker pause <컨테이너 ID/식별이름>
docker start <컨테이너 ID/식별이름>
#실행중인(중지 포함시 -a) 컨테이너 확인
docker ps (-a)
#컨테이너 종료/강제종료
docker stop <컨테이너 ID/식별이름>
docker kill <컨테이너 ID/식별이름>
#종료된 컨테이너 환경 이미지 형식으로 보관
docker commit <컨테이너 ID/식별이름> [새로운 태그]
#지정한 이미지에 이름 부여
docker tag <이미지 hash값> <부여할 이름>
#이미지를 파일로 내보내기
docker save
#이미지파일을 Daemon으로 load
docker load
# 컨테이너에 접근
docker exec [옵션] [컨테이너 명령 + 인수]
-t : 터미널 열기
-i : 표준 입출력 허용
#myweb 컨테이너에 bin/bash 실행
docker exec -it myweb /bin/bash
# 컨테이너의 로그 표시
docker log
# 컨테이너/이미지의 상세정보 표시
docker inspect [옵션] <대상 이름> [옵션]
# docker hub에서 이미지 검색
docker search <검색 키워드>
docker search nginx
#이미지 표시
docker images
#이미지 삭제
docker rmi
sudo vi /etc/docker/registry/config.yml
docker start registry
docker rm -f registry
docker run -d\
-v /etc/docker/registry:/etc/docker/registry \
-p 5000:5000 \
--name registry \
registry:2
#해당 레지스트리 사용해 pull
docker pull localhost:5000/ubuntu:latest
기반 이미지 공유
공유 볼륨
볼륨단위로 컨테이너에 추가 가능하다볼륨은 여러 컨테이너에서 공유 가능하며 컨테이너와 다른 라이프사이클을 가짐개발 도구 컨테이너
테스트 환경 컨테이너
빌드 컨테이너
설치 컨테이너
서비스 박스 컨테이너
INFRASTRUCTURE 컨테이너
#기반 이미지 지정
FROM <이미지 이름>
FROM <이미지 이름>:[태그]
FROM <이미지 이름>@<다이제스트>
FROM ubuntu:20.04
#이미지 제작자 정보 저장
MAINTAINER <이름 이메일>
MAINTAINER Minsu Choi <abcd@gmail.com>
#환경변수 지정
ENV <환경변수 이름> <값>
ENV PYTHON3 python3.6
ENV PYTHON3=python3.6 PIP3=pip3.6
ENV PYTHON3=python3.6\
PIP3=pip3.6
#컨테이너 빌드 시 실행되는 구문(변경 시 새로운 컨테이너 생성)
RUN <명령>
RUN <["실행파일", "매개변수1", "매개변수2"...]>
RUN <명령1>; <명령2>; ...
RUN apt-get update
RUN ["/bin/bash", "-c", "apt-get update"]
RUN apt-get update; install gcc g++
#컨테이너 생성하지 않고 파일시스템에 파일 추가(압축파일 압축해제해서 처리)
ADD <원본> <목적지>
ADD <원본1> <원본2> .. <목적지>
ADD lab2-1.c /data/
#원본 파일을 컨테이너의 위치로 복사(압축파일 그대로, 다른 이미지로부터 복사 가능)
COPY <원본> <목적지>





Dockerfile 작성FROM python:3.8-bullseye
RUN mkdir -p /data
WORKDIR /data/
RUN pip install Django==3.2.5
RUN python -m django startproject mysite
WORKDIR /data/mysite/
RUN python manage.py startapp polls
RUN python manage.py migrate --noinput
CMD python manage.py runserver 0.0.0.0:8000
EXPOSE 8000
docker build -t django/mysite:1.0 .
docker run -d -P django/mysite:1.0docker run -it -P django/mysite:1.0
localhost와 포트포워딩을 진행한 후 접속


