https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html
도커로 웹서버 하겠다 하면 웹서버 되고, sql 하겠다 하면 sql 된다.
내 컴퓨터에 설치되는게 아니라 웹서버에서 아예 외부로 사용하게 된다. (컨테이너 별로)
다운로드해서 설치하는게 아니라
이미 누가 많이 만들어둔 웹서버(안에 sql같은게 든) 를 내가 사용하는 것.
(지포스 익스피리언스랑 비슷함)
msa(도커의 개념, 마이크로 서비스 아키텍처)
대강 docker run - 이후 커맨드로 사용.
docker ps -a
실행중인 도커 출력 -a는 이전 기록.
여기서 시험, 12-05) 웹서버를 구축하시오 같은 명령이 떨어지면..
docker run 단 하나로 실행했었지만
여러가지 설정이 추가되면 명령어가 금방 복잡해진다.
print(asdf)를 프롬포트로 100번 입력 하는것보단
대충 vi 문서 편집기를 넣어, print(asdf)를 100칸 집어넣은뒤 그 문서를
불러오는게 더 나은것과 같다.
그걸 위해 다음, DOCKER COMPOSE를 설치한다.
(시험)
sudo apt install docker-compose
version: "3.8"
services:
web_server:
user: "root"
image: httpd:alpine
restart: always
ports:
- 80:80
volumes:
- ./var/www/html:/usr/local/apache2/htdocs
우리는 var /www 등등 지우고
./html:/usr ... 으로 하자. 새로 생성하는거다.
특히 포트는 지금 아파치 웹서버 사용중이니 8080으로 변경
버전은 현재 도커 버전과 동일해야 한다.
services:
docker로 실행할 services에 대한 내용이 안에 담깁니다.
web_server:
service 이름(web_server)으로, 원하는 이름을 지정할 수 있습니다.
user: "root"
container 안에서 사용할 계정이며, 권한 문제가 발생할 수 있어서 root로 설정했습니다.
image: httpd:alpine
사용할 image입니다. pull한 적 없는 image라면 docker hub에서 해당 image를 pull한 후에 사용하게 됩니다.
restart : always
해당 서비스가 어떤 문제로 인해 내려갔을 때, restart를 합니다.
ports:
-80:80
Host의 80번 포트와 Container의 80번 포트를 바인딩합니다.
Host의 80번 포트로 접속하면 Container의 80번 포트로 연결됩니다.
만약 아파치서버 별개로 도커 컨테이너를 쓰고 싶다? 저 포트를 변경시키거나
아파치서버를 죽인다. 8080:80 으로 하면 host 8080은 컨테이너에 있는 웹서버가 뜬다.
volumes:
-./var/www/html:/usr/local/apache2/htdocs
Host의 ./var/www/html path를 Container의 /usr/local/apache2/htdocs에 마운트합니다.
/usr/local/apache2/htdocs/ path가 해당 image의 root path directory입니다.
config 변경으로 path는 수정 가능합니다.
이제 저걸 내 가상 리눅스 ens0s8 주소 + 위에서 적은 포트(8080)
을 주소창에 넣으면..
클라이언트 다운로드
호스트에
sftp://10.4(우리 리눅스 아이피) 사용자명 a, 비밀번호a 를 입력하면..
리눅스 파일 디렉토리에 접속이 가능하다.
왼쪽 다운받을 디렉터리, 오른쪽에서 왼쪽으로 끌어다 놓기만 하면 자동으로 다운된다.