설치환경
- OS: Windows WSL2 - Ubuntu 22.04 LTS
- Date: 2024.05.05
도커 설치 및 버전확인
도커 설치
- (Docker) 2. Docker 설치 를 참고하여 도커 설치
도커 버전 확인
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 네트워크 구조