설치환경

  • OS: Windows WSL2 - Ubuntu 22.04 LTS
  • Date: 2024.05.05

도커 설치 및 버전확인

도커 설치

도커 버전 확인

docker -v 
>> Docker version 26.1.1, build 4cf5afa

이미지 작성

실행할 python 파일 생성

  • work directory로 이동하여 실행할 python 파일을 작성
# main.py
print("Hello world, this is test-1")

Dockerfile 생성

  • 도커 파일 생성 시 확장자 없이 Dockerfile로 저장
<Dockerfile>
 
# 베이스 이미지
FROM python:3.8-slim
 
# 컨테이너 내 working directory
WORKDIR /home
 
# 현재 위치에서 working directory로 복사
COPY . .
 
# 사전 실행(필요시)
RUN pip install numpy 
 
# 컨테이너 실행 후 커맨드
CMD ["python", "main.py"]

Dockerfile 빌드

  • 작성한 도커 파일을 빌드 명령어로 빌드하여 이미지를 생성함
docker build -t [이름] .
 
>> docker build -t test1 .

생성된 이미지 확인

  • docker images 명령어로 생성된 이미지 확인
docker images
 
>>
REPOSITORY    TAG       IMAGE ID       CREATED              SIZE
test1         latest    01cbc5f89e1e   About a minute ago   126MB
hello-world   latest    d2c94e258dcb   12 months ago        13.3kB

컨테이너 실행 및 관리

컨테이너 실행

  • run 명령어로 컨테이너 실행
# name 값을 생략하면 랜덤 지정
docker run --name test-container test1
 
>> Hello world this is test-1

컨테이너 관리

  • 생성된 컨테이너 확인
# 실행 중인 컨테이너
docker ps
 
# 모든 컨테이너 및 상태
docker ps -a
  • 컨테이너 중지
# stop
docker stop [CONTAINER]
  • 컨테이너 시작 및 재시작
# 중지된 컨테이너를 시작
docker start [CONTAINER]
 
# 실행 중인 컨테이너를 재시작
docker restart [CONTAINER]
  • 컨테이너 접속
docker attach [CONTAINER]
  • 컨테이너 삭제
# 실행 중인 컨테이너는 삭제할 수 없음
docker rm [container]
 
# 컨테이너 강제 종료 후 삭제
docker rm -f [container]
 
# 모든 컨테이너 종료 후 삭제
docker rm -f $(docker ps -a -q)
 
# 컨테이너 실행 종료 후 자동 삭제
docker run --rm [container]
 
# 중지된 모든 컨테이너 삭제
docker container prune

참고


Prev: (Docker) 3. Docker 컨테이너 다루기

Next: (Docker) 5. Docker 네트워크 구조


docker도커DevOps