- 많이 사용하는 웹서버

1. apache

2. nginx

 

1. apache 웹서버 docker 찾기

$ docker search httpd --limit=5

 

2. 이미지 다운 받고 컨테이너로 실행

$ docker run httpd

 - Unable to find image 'httpd:latest' locally

    - 자신의 pc에 해당 이미지가 없으므로 Docker Hub에서 다운하면됨

- Command line: 'httpd -D FOREGROUND'

   - apache 웹서버가 실행되었지만 로그만 화면에 보여짐

   - ctrl + C로 중단시키고 -d를 사용함

$ docker run -d --name apacheweb httpd

 

- 해당 웹서버에 어떻게 접속해야하는지 문제 발생

   - 포트포워딩 필요

  - docker를 실행한 PC를 HOST PC라고 함

  - 호스트 PC IP에 특정 port로 access시, 해당 port를 docker 컨테이너의 특정 Private IP의 특정 포트로 변환해 줄 수 있음 ( NAPT )

$ docker run -d -p 9999:80 --name apacheweb2 httpd

 * aws에서 ec2의 보안에 들어가서 9999 허용을 해야함

    - 보안탭의 [보안그룹] 클릭

    - 인바운드 규칙 편집에 9999 추가

 

aws pulic ip:9999로 접속하면 

It works! 라고 표시됨

 

3. 웹서비스 -v 옵션

이는 ./usr/local/apache2/htdocs 아래의 Index.html 임

이 파일을 교체하면 나의 웹페이지가 표시됨

 

- docker는 이미지 기반으로 컨테이너를 만들기 때문에, 컨테이너 상에서 파일을 업데이트하거나 생성시

   컨테이너가 종료되면 해당 파일은 없어짐

- 이를 보완하기 위해 특정 폴더를 -v 옵션으로 교체

$ docker run -v 호스트pc의절대경로:도커컨테니어절대경로 httpd

 

$ docker run -d -p 9999:80 -v /home/ubuntu/2021_DEV_HTML:/usr/local/apache2/htdocs --name apacheweb2 httpd

 

4. 저장관련 정보

$ docker system df

 

- docker 와 apline

  - docker 이미지는 여러개의 이미지가 계층으로 쌓인 형태로 작성됨

  - 대부분의 docker 이미지에 가장 기본이 되는 이미지는 ubuntu가 아니라 alpine인 경우가 많음

 

- http도 태그 중에 alpine기반 태그가 있음

 

5. 실행중인 컨테이너 사용 리소스

$ docker container stats

 

6. 실행중인 컨테이너 명령 실행

$ docker exec 옵션 컨테이너ID 인자
# docker exec -it apacheweb2 /bin/bash

 

7. 모든 컨테이너 삭제

$ docker stop $(docker ps -a -q) # 모든 컨테이너 중지
$ docker rm $(docker ps -a -q) # 모든 컨테이너 삭제

$ docker rmi -f $(docker images -q) # 모든 이미지 삭제

 

$ docker container prune # 정지된 컨테이너 삭제
$ docker image prune # 실행중인 컨테이너 image 외에 이미지 삭제
$ docker system prune # 정지된 컨테이너, 실행중인 컨테이너 이미지 외의 이미지, 볼륨, 네트워크 삭제

 

반응형

'SW ENGINEERING > Docker' 카테고리의 다른 글

Dockerfile 기본문법(1)  (0) 2021.07.22
Dockerfile 이란?  (0) 2021.07.22
Docker Container 명령어  (0) 2021.07.22
Docker Image 명령어  (0) 2021.07.22
AWS EC2에 Docker 설치하기(3)  (0) 2021.07.22
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기