- 공유 링크 만들기
- X
- 이메일
- 기타 앱
[Docker]Docker를 이용하여 웹 서버 구축 - 응용편(1)
이번 포스팅은 실제로 AWS상에서 Docker로 웹 서버를 구축 할 때를 가정하여 구축한다.
만약, 이번 포스팅에서 사용하는 커맨드에 대한 이해가 부족하다면 지난 포스팅을 보실 것을 추천한다.
만약, 이번 포스팅에서 사용하는 커맨드에 대한 이해가 부족하다면 지난 포스팅을 보실 것을 추천한다.
개요
- 컨테이너 데이터 볼륨의 특징
- 도커 설치
- 베이스 이미지 다운로드
- 컨테이너 생성 및 Nginx설정
- 도커 이미지 생성
- 도커 이미지로 컨테이너 생성
- 포트 포워딩
- 볼륨(디스크) 연결
- 확인
컨테이너 데이터 볼륨의 특징
- 컨테이너는 격리 된 공간이라 따로 마운트 설정을 해주지 않으면 호스트OS와 디스크를 공유 할 수 없다.
- 호스트OS의 볼륨 디렉토리를 컨테이너 내부에 마운트 할 수 있다.
- 컨테이너의 볼륨(디스크)은 컨테이너가 생성 될 때 초기화 되어진다.
- 컨테이너에 접속하여서 파일 컨트롤이 가능하다.
- 도커 설치(EC2)
yum으로 설치
$ yum install -y docker-iodocker service 시작
$ sudo service docker startdocker 시작 프로그램 등록
$ sudo chkconfig docker on
- 베이스 이미지 다운로드
베이스 이미지 검색
$ sudo docker search centos베이스 이미지 다운로드
$ sudo docker pull centos이미지 확인
$ sudo docker images
- 컨테이너 생성 및 Nginx설정
컨테이너 생성
$ sudo docker run -d —privileged —name=centos-nginx centos /sbin/init컨테이너 접속
$ sudo docker exec -i -t centos-nginx /bin/bashcentos7을 사용할 경우 systemctl를 사용할 때 에러가 발생한다. 자세한 내용은 하기 링크를 참조
Docker에서 Centos7의 systemd에러Centos 버전 확인
~/# cat /etc/releaseCentOS Linux release 7.2.1511 (Core) NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7" CentOS Linux release 7.2.1511 (Core) CentOS Linux release 7.2.1511 (Core)
컨테이너의 yum update
~/# yum updatenginx저장소 설치
~/# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpmnginx 설치
~/# yum install -y nginxnginx 설정
~/# vi /etc/nginx/nginx.confnginx 서비스 실행
~/# systemctl start nginx.service웹페이지 소스를 넣을 디렉토리 및 nginx로그 디렉토리 확인 및 생성nginx 로그의 기본 디렉토리 /var/log/nginx/이번에는 웹페이지 소스를 /srv 로 지정할 예정이니 확인해보고 없으면 mkdir /srv 로 디렉토리 생성
(따로 삭제를 하지 않았다면 기본으로 있을 것이다.)로그 : /var/log/nginx/
소스 : /srv컨테이너에서 나오기
~/# [Ctrl + P] + [Ctrl + Q]
- 도커 이미지 생성
커밋하여 도커 이미지 생성
$ sudo docker commit webserver-test centos:centos-nginx
- 도커 이미지로 컨테이너 생성
컨테이너 생성 및 실행
$ sudo docker run —privileged -d —name webserver1 -v /srv:/srv -v /srv/project/log:/var/log/nginx/log -p 8100:80 centos:centos-nginx /sbin/init-v 옵션은 복수 지정이 가능하다.컨테이너 접속
$ sudo docker exec -it webserver1 /bin/bashnginx 실행
~/# systemctl start nginx.service컨테이너에서 나오기
~/# [Ctrl + P] + [Ctrl + Q]
- 포트 리스닝 확인 및 접속 확인
포트 리스닝 확인
$ netstat -ano | grep 8100AWS SG(Security Group)에 8100포트 등록(생략)접속 확인
<그림1>
AWS와 관련된 내용은 docker관련 포스팅이 끝난 후 포스팅 예정
댓글
댓글 쓰기