1탄에서는 Docker의 명령어를 알아보았다.
2탄에서는 실습을 해보자
DockerFile 생성
docker로 이미지를 만들기 위해서는 DockerFile을 먼저 만들어야 한다. 도커는 기본적으로 이미지가 있어야 컨테이너를 생성하고 동작시킬 수 있다.
dockerfile은 필요한 최소한의 패키지를 설치하고 동작하기 위한 자신만의 설정을 담은 파일이고, 이 파일로 이미지를 생성(빌드)하게 된다.
FROM python
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
postgresql-client \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org install -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
위와 같이 DockerFile을 만들어 주고 해당 위치에서 아래 명령어를 실행해 주자.
freeze 명령어는 설치된 패키지를 requirements 포맷으로 출력해준다.
pip freeze > requirements.txt
Docker 이미지 생성 및 실행
자 이제 이미지를 생성해 볼 시간이다. DockerFile이 있는 위치에서 아래 명령어를 실행하자
docker build -t djangoproject .
docker run --name djangoproject -p 8000:8000 djangoproject:latest
이제 http://localhost:8000 으로 한번 접속을 해보자. 그럼 아래와 같이 화면이 나올 것이다.
에러가 나는 이유는 mysql connection에서 발생하는 것으로 보인다.
이 부분은 일단 뒤로 제껴두고 페이지가 열린다는 것에 중점을 두자이로써 Docker로 프로젝트를 이미지로 말아서 컨테이너로 실행이 성공한 것을 볼 수 있다.
Docker 실행중인 컨테이너 확인
아래 명령어를 이용하면 현재 실행 중인 컨테이너를 볼 수 있다.
docker ps
Docker 이미지, 컨테이너 중지
아래 명령어를 이용하면 현재 실행 중인 이미지 또는 컨테이너를 중지 시킬 수 있다.
docker stop <이미지명> or <컨테이너ID>
Docker 이미지 재실행
아래 명령어를 이용해서 다시 이미지를 실행 해 보자
docker run --name djangoproject -p 8000:8000 djangoproject:latest
그러면 아래와 같이 에러가 발생할 것이다.
그 이유는 이미 해당 이미지로 생성 된 컨테이너가 있는데 위의 명령어는 컨테이너를 생성하는 명령어이기 때문에 already라는 에러 메세지가 발생한다.
재실행 하려면 아래 명령어를 실행하면 된다.
docker start <이미지명> or <컨테이너ID>
Docker 컨테이너 삭제
명령어를 이용하여 생성한 컨테이너를 삭제 할 수 있다.
단, 중지가 된 컨테이너만 가능하니 참고하길 바란다. 중지 된 컨테이너를 확인 할 수 있는 명령어는 아래와 같다.
docker ps -a
다음은 컨테이너를 삭제하는 명령어 이다.
docker rm <컨테이너ID>
'Docker' 카테고리의 다른 글
Portainer에서 remote 도커 서버 추가 (0) | 2022.01.27 |
---|---|
Portainer 설치 (0) | 2022.01.26 |
Docker-compose 설치 (0) | 2022.01.26 |
Docker 설치 (0) | 2022.01.26 |
Docker 실습-1탄 (0) | 2022.01.26 |