웹해킹/도커 컨테이너 8

도커 로그 살펴보기

우리가 실행시켜둔 docker컨테이너의 쉘환경 접속함. cd /var/log로 들어가면 이렇게 뜨는데 여기 apache2부분에 로그가 쌓이게 됨 그런데 막상 로그를 들어가보면 access.log쪽 용량을 보면 업데이트가 안되어있느걸 볼수있다.현재 칼리쪽(host)에서 이 로그들을 관리하고있다. 이렇게 보면 아파치에 관련된 로그들이 host에서 쌓이고 있다. sudo docker inspect 을 치면 LogPath가 나오는데 이걸로 정확히 어떤곳에 로그가 쌓이는지 확인이 가능하다.

도커파일 활용하기

● 칼리에서 docker라는 폴더 만들고 그 파일 안에 Dockerfile이라는 텍스트파일 생성.  FORM이라는 명령어를 통해 ubuntu최신 이미지를 다운.LABEL을 통해 이 이미지를 구분함.CMD를 통해 echo명령어로 명령 수행함.도커파일은 이런식으로 기존에 이미지만 다운받는게 아니라 이미지를 다운받은 후 추후의 환경설정까지 설정하게 할 수 있는 파일이다. 도커파일을 빌드할건데 -t옵션을 통해 tag를 지정해줬다.

도커파일 퐐용 이론

●도커 파일과 도커 이미지의 차이○도커 파일(DockerFile)정의: 도커 파일은 도커 이미지를 생성하기 위한 설명서 또는 청사진이다.역할: 이미지 빌드를 자동화하기 위해 사용/ 이미지 생성에 필요한 명령어, 파일, 설정 등을 포함한다. ○도커 이미지(DockerImage)정의: 도커 이미지는 도커 컨테이너를 실행하기 위한 완성된 패키지이다.역할: 컨테이너의 실행 환경을 제공/ 어플리케이션, 라이브러리, 설정 파일 등이 포함.

도커 컨테이너 환경 구축

1. sudo apt update2. sudo apt install docker.io - docker 다운로드3. sudo docker search nginx - docker hub에서 nginx검색4. sudo docker pull nginx - docker hub에서 nginx 다운로드 ● sudo docker pull nginx를 해보면 다운 방식이 독립된 layer들이 다운되는 방식임을 알 수 있다. docker는 이러한 독립된 layer들이 모여서 구성된게 특징이다. 따라서 수정과 삭제, 추가가 용이하다. 이렇게 모인 layer들이 nginx이미지이다.이 이미지가 실행되면 컨테이너가 되는것이다.

도커 로드 밸런싱 구축하기

우리가 web01, web02, web03 이렇게 3개의 nginx 도커를 생성했는데 외부에서 이 도커에 접속하려면 우선 kali에 접속을 해야한다. 우리는 kali에 nginx를 설치하고 이 nginx가 외부에서의 접속을 3개의 nginx 도커에 뿌려줄 예정이다. [kali에 nginx다운받는 과정]5번 부분에서 upstream으로 저렇게 설정해두면 kali의 nginx의 접속시 저런식으로 3개의 도커에 뿌려준다.6번의 server부분은 80포트에 대한 모든 접속을 열어주고, location을 통해 backend-lb가 동작하도록 만들었다. 계속해서 새로고침하면 1,2,3도커에 번갈아가며 접속한다.

도커 네트워크 생성 및 활용

도커 네트워크 환경을 살펴보기 위해 우분투 환경의 도커 2개 생성    우리가 방금 만든 우분투 도커 IP확인     ubuntu_net01 쉘에 접속하고 apt update를 해줌. 참고로 이 쉘이는 ifconfig라는 명령어가 존재하지 않음.  install net-tools로 설치함.    이제 이렇게 밖에서도 ifconfig명령어 사용 가능해짐. bridge는 172대역을 의미하고, host는 칼리와 동일한 IP대역(192)을 의미함.host와 같은 대역에 설정하게 되면 해킹 당했을때 같은 host대역의 bridge환경에 있는 다른 도커 컨테이너에도 영향을 미침.

도커 볼륨 이용한 데이터베이스 운영

sudo docker volume rm vol_test1위 명령어로 내가 만들어 놓은 volume 삭제 가능 하지만 우리가 현재 webapp6라는 컨테이너에 해당 볼륨을 넣어두었기 때문에 webapp6라는 컨테이너를 먼저 중지시킨후 webapp6를 삭제하고, 볼륨을 삭제해줘야 한다.  순서(볼륨 실행중이라면)1. sudo docker stop webapp62. sudo docker rm webapp63. sudo docker volume rm vol_test1※참고 : -d와 -it뭘 쓰던 상관 없음, -v는 volume임DB를 만들때 볼륨을 이용하는것이 정석임.  여기서 첫번재 명령어로 volume을 하나 만들어 준다아래에서는 mysql01이라는 도커를 만들어 줄건데, mysql01이라는 도커 안에 m..

도커 볼륨 생성 및 활용

우리가 사용중인 도커가 만약 비정상적으로 중지되고 삭제된다면, 도커 안에 있던 log파일이나 sys, json파일 모두 삭제될 것이다. 우리는 이것을 방지하기 위해 볼륨 또는 디렉토리를 사용한다. 안전하게 사용하고 싶으면 볼륨을 사용하고, 디렉토리의 경우는 외부에서 사용하기 위해 만드는 것이다. 따라서 우리는 볼륨을 사용할 것이다. ※우리가 칼리리눅스를 suspend하고 다시 실행할 경우 도커 ip가 제대로 안 잡히는 경우가 있다. 따라서 ifconfig를 이용하여 재실행 할때마다 확인해주는게 좋다.만약 제대로 안 잡혀있을경우 sudo service docker stop을 하고 다시 sudo service docker start를 해주면 된다.    docker volume create로 volume 생..