반응형
1. 설치
- 우분투에서 도커 설치하기
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
apt-cache policy docker-ce
sudo apt install docker-ce
2. docker를 실행하기 위해 필요한 명령어
:: 컨테이너, 이미지 확인하기
docker
# 실행중인 컨테이너 확인
docker ps
# 모든 컨테이너 확인
docker ps -a
# 생성된 혹은 다운로드 된 이미지 확인
docker images
# 모든 이미지 확인
docker images -a
:: Dockerfile을 이용해 이미지 빌드하기
docker build -t '도커허브에 가입한 계정명'/'이미지명(프로젝트명 권장)':'버전' .
ex) docker build -t wecode/wecodeproject:0.1.0 .
:: 빌드된 이미지 실행하기
docker run --name '컨테이너 명' -d'데몬으로 실행하기 위한 옵션' -p '호스트 포트':'컨테이너 포트' '이미지명'
ex) docker run --name wecode01 -d -p 8000:8000 wecode/wecodeproject:0.1.0
* 컨테이너 실행시 오류가 생긴 경우 컨테이너에 접속하기
#위의 명령어를 실행하면 이미지를 기반으로 바로 컨테이너를 실행하면서 접속한다.
docker run -it wecode/wecodeproject:0.1.0 /bin/bash
#process 등 여러가지를 살펴보면서 현재 서버에 어떤 문제가 있는지 알 수 있다. 하지만 수정은 컨테이너에서 하는게 아닌 이미지를 다시 빌드 해야한다.
:: 컨테이너 / 이미지 전부 삭제하는 명령어
컨테이너
docker rm $(docker ps -a -q) #ubuntu sudo docker rm $(sudo docker ps -a -q)
이미지
docker rmi $(docker images -q) #ubuntu sudo docker rmi $(sudo docker images -q)
3. Dockerfile (Django)
- node.js app인 경우에는 여기로
#./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 8080
#8000번 포트를 외부에 개방하도록 설정
EXPOSE 8000
#CMD ["python", "./setup.py", "runserver", "--host=0.0.0.0", "-p 8080"]
#gunicorn을 사용해서 서버를 실행
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "example.wsgi:application"]
반응형
'프로그래밍' 카테고리의 다른 글
재귀 개념 (Factorial, Fibonacci Number) (0) | 2021.12.31 |
---|---|
Critical rendering path (google.com 입력했을 때 일어나는 일) (0) | 2021.12.19 |
🍪 쿠키에 token 담아보내기(CORS와 Cookie옵션 설정) (0) | 2021.12.14 |
TIL56 | EC2서버에 Docker설치 및 배포(CentOS, Node.js, Dockerfile) (0) | 2021.12.03 |
TIL54 | Docker란 (0) | 2021.12.03 |