[Docker] 명령어

김가람휘·2022년 3월 23일
0

Docker

목록 보기
1/2

1. 컨테이너 삭제

  • 동작중인 컨테이너 확인
    $ docker ps

  • 정지된 컨테이너 확인
    $ docker ps -a

  • 컨테이너 삭제
    $ docker rm [컨테이너id]

  • 삭제 확인
    $ docker ps -a

  • 복수개 삭제도 가능
    $ docker rm [컨테이너id], [컨테이너id]

  • 컨테이너 모두 삭제
    $ docker rm 'docker ps -a -q'


2. 이미지 삭제

  • 현재 이미지 확인
    $ docker images

  • 모든 이미지 확인
    $ docker images -a

  • 이미지 삭제
    $ docker rmi [이미지id]

  • 컨테이너를 삭제하기 전에 이미지를 삭제할 경우

    • -f 옵션을 붙이면 컨테이너도 강제삭제
      $ docker rmi [이미지id]

3. 도커 이미지를 생성하기 위한 Dockerfile

# 기반이 될 이미지
FROM python:3 

# 작업디렉토리(default)설정
WORKDIR /usr/src/app 

## Install packages
# 현재 패키지 설치 정보를 도커 이미지에 복사
COPY requirements.txt ./ 
# 설치정보를 읽어 들여서 패키지를 설치
RUN pip install -r requirements.txt

## Copy all src files
# 현재경로에 존재하는 모든 소스파일을 이미지에 복사
COPY . . 

## Run the application on the port 8000
# 8000번 포트를 외부에 개방하도록 설정
EXPOSE 8000   

# gunicorn 사용해서 서버를 실행
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "docker_train.wsgi:application"]

4. Dockerfile을 이용하여 image 빌드

  • image build시 DockerHub username에 맞게 명령어를 입력해야 합니다.
    docker build -t 'DockerHub username'/'image name(project name)':'version' 'Dockerfile path'
    -> docker build -t kimkrh/starfolio:0.1.0 .

  • M1일 경우
    docker buildx build --platform=linux/amd64 -t kimkrh/starfolio:0.1.0 .


5. Docker Container 실행

  • 아래와 같은 명령어를 입력할 시 local에서 image를 먼저 찾아본 뒤, 없으면 DockerHub에서 자동으로 images를 찾습니다. 그 후 곧바로 image를 불러와 명령어가 실행됩니다.
    -> 따라서 바로 컨테이너를 실행하기 위해선 pull 명령어가 필요없다고 볼 수 있습니다.
    docker run --name starfolio -p 8000:8000 kimkrh/starfolio:0.1.0

  • 빌드된 이미지에 이상이 있을 경우 컨테이너를 실행하고 나서 바로 종료가 됩니다.
    -> 따라서 이런 경우 다음 명령어를 실행해서 문제를 확인해 볼 수 있습니다.
    -> 아래의 명령어를 실행하여 이미지를 기반으로 바로 컨테이너를 실행하면서 접속
    -> process등 여러가지를 살펴보면서 현재 서버에 어떤 문제가 있는지 알 수 있다.
    -> 하지만 수정은 컨테이너에서 하는게 아닌 이미지를 다시 빌드 해야한다. (중요)
    docker run -it kimkrh/starfolio:0.1.0 /bin/bash

0개의 댓글