Container 관리하기(Docker)

형준·2024년 1월 2일

리눅스 부하 테스트

stress tool 사용하기

부하 발생시킬 container 생성

90mega로 부하동작 시켜보기

컨테이너 리소스 제한

컨테이너 사용 리소스 확인

cAdvisor 동작시켜보기

  • cAdvisor github 이용해서 다운 받으면 cadviosr 도커 컨테이너가 동작한다.

cadviosr container에 접근하는 방법

  • 먼저 cadvisor가 8080포트를 이용중이어서 포트포워딩 해주기

  • 그리고 localhost:108으로 접속하기

docker stats로도 cpu momory block I/O 정보 확인 가능



데이터 영구적으로 보존하는 방법

  • 도커 컨테이너에 있는 데이터를 나의 host에 저장한다.
  • docker run -d --name db -v /dbdata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=pass mysql:lates
    위의 명령어는 mysql 컨테이너에서 /var/lib/mysql에 있는 데이터를 나의 호스트 /dbdata 디렉토리에 저장하도록한다. mysql은 비밀번호 포함시켜야한다.

데이터 잘 보존 되는지 확인하기

  • 실행중인 db라는 이름의 mysql 컨테이너에 접근하기

  • 컨테이너 안의 db에 db 만들기
  • host에 내가 만든 db 생긴 것을 확인 가능하다.
  1. host의 위치 지정 안해주어도 자동으로 저장된다.
    EX) docker run -d -v /var/lib/mysql -e MYSQL_PASSWORD=pass mysql:latest
    docker inspect [컨테이너 이름] 명령어로 확인해 보면 어느 위치에 저장 되었는지 확인도 가능하다.



host에 저장된 데이터를 volume mount를 통해 컨테이너에 제공해서 client가 컨테이너를 접속해서 서비스를 이용하게 만들어보기

  • 호스트의 webdata에 저장된 파일이 read only 상태로 web이라는 이름의 nginx 컨테이너 안에 /var/share/nginx/html 디렉토리에서 사용 가능하게 하는 명령어


컨테이너끼리 데이터 공유하기

  • 컨테이너에서 host의 디렉토리에 volume mount하고 host 디렉토리에서 다른 컨테이너로 다시 volume mount하면 된다.

  • 먼저 데이터를 생성해내는 컨테이너 만들기 위해서 shell script 파일 작성하고 dockerfile 만들고 빌드해주면 image 생성

  • 그리고 host의 index.html을 web server 컨테이너에 volume mount하면 컨테이너끼리 공유하게 된다.

  • host의 webdata 디렉토리에 volume mount 해주는 dfc라는 container 실행

컨테이너 네트워크

  • bridge Network를 통해서 모든 컨테이너가 외부로 송출될 수 있다.

user-defined network

  • 내가 직접 네트워크 구성하는 방법 - 192.168.100.0/24는 서브넷, 192.168.100.254는 게이트웨이
  • network 생성후 도커 실행시킬 때 --net mynet 명령어 추가로 네트워크 설정 가능하다.
    --ip 원하는 ip 명령어 추가해서 static ip 설정 가능

컨테이너끼리 연결 시키기

  • mysql 컨테이너 실행 (-d backgroud 모드에서 mysql이라는 이름으로 -v /dbdata라는 호스트 공간으로 /var/lib/mysql로 볼륨 마운트 되고 mysql 컨테이 실행시 필요한 비밀번호와 wordpress 서버에서 접속 가능하게 비밀번호 설정까지 정의)
  • wordpress 컨테이너 실행 ( --link를 이용해서 mysql 이름 컨테이너(앞에가 연결하고자 하는것)와 연결,-e mysql 연동시 필요한 password, -p 포트포워딩)

출처: https://www.youtube.com/watch?v=TM3DvwwvsLg&list=PLApuRlvrZKogb78kKq1wRvrjg1VMwYrvi&index=18

profile
백엔드 개발자가 되기 위한 경험을 기록하는 블로그입니다.

0개의 댓글