지금 시간에 만든 ec2 인스턴스에 접속하자
도커를 백그라운드로 실행시키기 위해서는
docker run -d -p 8000:8000 docker/django 명령어를 입력하자
어떤 도커의 컨테이너가 실행중인지는 docker ps 명령어로 볼 수 있다.
그리고 docker stop [컨테이너 ID] 를 입력해서 실행중인 도커 이미지를 끌 수 있다.
도커 이미지를 잠시 중지 시켜놓고 이번에는 Nginx 도커 이미지를 만들어보자
우선은 fastcampus_test폴더 안에 Dockerfile의 내용을 수정해야 한다.
맨 밑의 2줄은 필요가 없으므로 주석처리를 한다.
그 후 fastcampus 폴더 안에 vi uwsgi.ini 명령어로 파일을 하나 만든다.
파일안에 아래 내용을 붙여넣는다.
[uwsgi]
socket = /srv/docker-django/django.sock
master = true
processes = 1
threads = 2
chdir = /srv/docker-django
module = fastcampus_test.wsgi
logto = /var/log/uwsgi/uwsgi.log
log-reopen = true
vacuum =true
그리고 cd .. 를 두번 하고 docker-django폴더에 도커 compose를 다운 받기위해
sudo curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 명령어를 입력한다.
그리고 docker compose의 권한을 설정해준다.
sudo chmod +x /usr/local/bin/docker-compose
이제 cd nginx로 nginx 폴더로 옮겨서 vi nginx.conf를 만든다.
파일 안에는 아래 내용을 입력한다.
user root;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";
include /etc/nginx/sites-enabled/*;
}
또한 vi nginx-app.conf 도 만들어준다.
파일 안에는 아래 내용을 입력한다.
upstream uwsgi {
server unix:/srv/docker-django/apps.sock;
}
server {
listen 80;
server_name localhost;
charset utf-8;
client_max_body_size 128M;
location / {
uwsgi_pass uwsgi;
include uwsgi_params;
}
location /media/ {
alias /srv/docker-django/.media/;
}
location /static/ {
alias /srv/docker-django/.static/;
}
}
그리고 fastcampus_test 폴더 안에서 도커파일을 만들었듯이 nginx폴더 안에도 도커파일을 만든다.
vi Dockerfile을 통해 파일을 만들고 안에 아래 내용을 입력한다.
FROM nginx:latest
COPY nginx.conf /etc/nginx/nginx.conf
COPY nginx-app.conf /etc/nginx/sites-available/
RUN mkdir -p /etc/nginx/sites-enabled/\
&& ln -s /etc/nginx/sites-available/nginx-app.conf /etc/nginx/sites-enabled/
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
이제 도커 이미지를 빌드해보자
docker build -t docker/nginx .
마지막으로 docker run -p 80:80 docker/nginx 을 입력하면
http://ec2-13-125-196-64.ap-northeast-2.compute.amazonaws.com/에 접속했을때 nginx가 실행되는걸 볼 수 있다.
'AWS > Part 2. Ch03 중규모 아키텍트' 카테고리의 다른 글
CH03_09 AWS CLI 개요 (0) | 2022.04.29 |
---|---|
CH03_08 AWS Fargate을 통한 배포 (0) | 2022.04.28 |
CH03_07 AWS ECR에 컨테이너 업로드 (0) | 2022.04.28 |
CH03_06 Docker-Compose를 활용한 배포 (0) | 2022.04.28 |
CH03_04 Django Docker Build (0) | 2022.04.27 |