→ 웹 서버를 사용하기 위해서는 두대의 컴퓨터가 필요
→ 한대의 컴퓨터는 Web browser가 설치되어 있음
→ 다른 컴퓨터에는 Web Server가 설치되어 있음 → 웹 페이지를 파일로 만들어서 저장장치의 특정 디렉토리에 위치시켜야 함(데이터가 저장된 공간을 File System)
: 이렇게 설치하면 웹서버가 container에 설치 됨
→ 해당 container가 설치 된 운영체제를 docker Host
라고 함
→ 하나의 docker Host에는 여러 container가 설치될 수 있음
→ Container host 모두 독립적인 실행환경이라서 각자 독립적인 포트와 독립적인 File System을 가짐
docker pull 원하는_Image_name
1️⃣ docker desktop에서 Run
누르면 하단과 같이 설정하고 다시 Run
2️⃣ Terminal에서 하는 법
docker run [OPTIONS] IMAGE [COMMAND] [ARG...] // OPTIONS에 지정하면 됨
1) docker ps로 현재 실행하는 container 확인
2) docker run --name 컨테이너이름_설정 -p 8081:80 Image_name
// -p 8081:80 이거는 8081로 들어오면 container의 80번 포트로 연결하도록 지정
: index.html을 편집해서 Web server를 이용하는 나의 Web App을 만드는게 중요
→ 그러기 위해서는 Container안으로 들어가서 Conatainer를 수정할 수 있어야 함
1️⃣ CLI실행(그러면 Terminal 실행됨)
(만약 여기서 pwd를 입력하면 host에서 하는개 아니라 container에서 하는거임)
2️⃣ Terminal에서 하는 법
docker ps(현재 실행중인 container 확인) → docker exec 접속하고싶은_Container이름 실행하고싶은_명령어 → 여기서 pwd는 container를 대상으로 하는 명령어
❈ 만약 Container와 지속적인 연결을 하면서 계속 명령을 전달하고 싶을때는 다르게 써야함 ❈
docker exec 접속하고싶은_Container이름 /bin/bash
→ shell이라는 프로그램들이 하는 역할은 사용자가 입력한 명령어를 shell 프로그램이 받아서 그것을 운영체제에 전달해주는 역할을 함(창구역할)
→ 이렇게만 쓰면 바로 연결이 끊어짐 그래서
docke exec -it 접속하고싶은_Container이름 /bin/bash(-i 그리고 t라는 옵션을 줌)
→ 이렇게 하면 #이 나오는데 의미는: 지금부터 내리는 명령은 해당 컨테이너를 대상으로 해서 내려지는 명령이고, 그 실행 결과가 user에게 보여짐
#️⃣ 연결을 끊고 다른 Container 밖으로 나가고 싶은 경우
exit 입력
// 그러면 지금부터 내리는 명령은 host를 대상으로 내리는 명령
❈ 요즘에 Bourne shell(sh)은 기능이 많이 부족해서 Bash shell(bash)을 많이 사용!
→ Bash shell(bash)없으면 Bourne shell(sh)사용
docker exec -it container_이름 /bin/bash/
↓
매뉴얼에 있는 경로입력(/usr/local/apache2/htdocs/)
↓
nano index.html(이렇게 입력하면 아무것도 안나옴. 용량이 너무 작아서 → apt 설치)
↓
apt update
↓
apt install nano(nano editor 설치)
↓
nano index.html(이제 인덱스 파일 수정가능 / NANO 에디터 사용법: https://opentutorials.org/module/3747/22523)
↓
수정다하면 ctrl x → Y 하면 저장
↓
새로고침하면 수정 된 내용 확인 가능
출처: 생활코딩 유튜브