도커

이지훈·2022년 4월 27일
0

docker, gunicorn, nginx 이용해서 배포

올만에 해서 다시 복습겸

우선 ec2나 vultr 같은 가상서버에 로그인

ssh root@주소
pw : 비번

portainer 볼륨 생성

docker volume create portainer_data

8000번 포트 열고

docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/portainer/data:/data portainer/portainer-ce

돌아가는 컨테이너 확인

docker container ls

인터넷에 입력

iv4주소:9000

도커 GUI 인터페이스 회원가입

  • 어떤 도커가 돌아가는지 GUI로 알 수 있음

dockerfile 빌드 에러

github에서 pull을 받을텐데, 만약 에러가 뜬다면

fatal: could not read Username for 'https://github.com': No such device or address

The command '/bin/sh -c git clone returned a non-zero code: 128

github 퍼블릭이여야 dockerfile bulid 시 가능
프라이빗은 ssh 접속으로 다르게 작성 필요


이렇게 만든 도커 파일 이름을 컨테이너와 연결시켜 준다.

인터넷에 접속해서 홈페이지 보기

캐시 지우는 작업 필요. 또는 시크릿창에서 접속
주소:8000


gunicorn 설치 후 접속

http://iv4 주소:8080/

근데 css 파일을 못가져오는 에러가 발생.
해결방법 : nginx로 정적파일 연결시켜줘야함

gunicorn이 동적파일을 웹서버에 전달해주는 역할이라면,
nginx은 정적파일을 클라이언트에 전달해주는 웹서버 역할임.

ec2 - nginx - gunicorn - django - python 순


nginx 연결

nginx.conf

worker_processes auto;

events {

}


http {
    server {
        listen 80;

        location / {
            proxy_pass http://만든컨테이너이름:8000;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}

filezila 사용

호스트 : 주소
사용자명 : root
비밀번호 : 비밀번호
포트 : 22

파일질라에서 파일 .. 누르면 상위폴더로 이동

home 디렉토리로 이동해서 django_course 디렉토리 생성
nginx.conf를 드래그앤 드롭

container 생성

이름 nginx로 컨테이너 생성
80번 포트와 80번 포트를 연결시켜줌
network를 django-nginx 네트워크와 연결

volumes 생성

컨테이너와 호스트의 nginx.conf를 연결

완료

profile
꾸준하게 🐌

0개의 댓글