따배도 스터디 썸네일형 리스트형 10-2 빌드에서 운영까지 (using Docker Compose) - 실습편 Q1.도커컴포즈설치 https://docs.docker.com/compose/install/ Overview docs.docker.com https://docs.docker.com/compose/gettingstarted/ Try Docker Compose docs.docker.com docker 엔진 설치되어야있어야함. dockercompose설치하기 sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 실행권한주기 sudo chmod +x /usr/local/bin/docker-compose Q2.. 더보기 10-1 빌드에서 운영까지 (using Docker Compose) - 이론편 Q1.도커컴포즈는 뭐예요?? 여러 컨테이너를 일괄적으로 정의하고 실행할 수 있는 툴 https://github.com/docker/awesome-compose/tree/master/official-documentation-samples/wordpress/ docker compose.yml 예시 services: db: # We use a mariadb image which supports both amd64 & arm64 architecture image: mariadb:10.6.4-focal # If you really want to use MySQL, uncomment the following line #image: mysql:8.0.27 command: '--default-authentication.. 더보기 9-2 컨테이너간 통신(네트워크)- 실습편 Content container network 사용하기 container 포트를 외부로 노출 user-defined network 구성하기 container 간 통신 ( wordpress, mysql 컨테이너 서비스 구축 ) Q1.container network 사용하기 docker0에서 만들어진 container는 기본적으로 “순차적으로” ip가 할당된다 모든 컨테이너는 docker0를 통해서 외부와 통신한다 ( 이 docker0를 bridge network라고 한다 ) docker0 bridge Network ip addr 명령어 실행! ip addr 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 0.. 더보기 9-1 컨테이너간 통신(네트워크)- 이론편 Q1. 컨테이너는 어떻게 통신하나요? 모든 컨테이너는 외부 통신을 docker0 를 통해 진행 docker0 bridge interface Q2. 컨테이너 포트를 외부로 노출할 수 있어요 ? port-forwarding -container port를 외부로 노출시켜 외부 연결 허용 iptables rule을 통한 포트 노출 -p hostPort:caontainerPort -p conatainerPort -P:대문자는 expose 한 포트와 매칭을 시키고 랜덤으로 포트를 만들어 주게된다. docker run --name web -d -p 80:80 nginx:1.14 iptables -t nat -L -n -v Q3. 컨테이너 네트워크를 추가할수 있나요? user-defined bridge network .. 더보기 8-2 Docker Container Storage - 실습편 Q1. mysql DB data 영구보존하기 sudo docker run -d --name db -v /dbdata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234 mysql:latest :를 기준으로해서 앞은 호스트에 저장될공간 뒤는 컨테이너에디렉토리와 -v 불륨마운트하겠다(영구적으로 보존) mysql container 에 접속하기 sudo docker exec -it 8f67a2803939 bash mysql -u root -p Enter password: Server version: 8.0.33 MySQL Community Server - GPL Copyright (c) 2000, 2023, Oracle and/or its affiliates. Oracle is a re.. 더보기 8-1 Docker Container Storage - 이론편 Q1. 컨테이너 불륨이 뭐예요 ? Container Volumn이란 ? Container image는 Read ONLY 속성을 가지고 있다.(수정 불가 !) 이러한 image를 run 하게 되면 , 하나의 process 가 된다. Container Image 는 Read ONLY이지만,Run 된 Container에는 rw(read & write) layer 가 생성 모든 데이터는 rw layer 에 쌓이게 된다. 하지만 ro와 rw는 하나인 것 처럼 보여주는데 이를 Union File System라고 한다. docker rm으로 도커 컨테이너를 삭제했다고 해보자. 이럴 경우, ro & rw layer모두 사라지게 된다. ( 따라서 rw에 저장되었던 모든 데이터도 함께 사라지게 된다 ) 이러한 상황을 막기.. 더보기 7-2 컨테이너 리소스를 관리해야지 -실습편 1.컨테이너 리소스 제한 stress container 생성 CPU 부하테스트: 2개 CPU core를 100% 사용하도록 부하 발생: stree --cpu 2 메모리 부하테스트: 프로세스 수 2개와 사용할 메모리만큼 부하 발생:stress --vm 2 --vm-bytes vi Dockerfile 생성 후 FROM debian MAINTAINER Seunghan Lee RUN apt-get update; apt-get install stress -y CMD ["/bin/sh", "-c", "stress -c 2"] 해당코드를 삽입후 docker build . -t stress 명령어를 입력한다.image 파일이 생김 REPOSITORY TAG IMAGE ID CREATED SIZE stress lates.. 더보기 7-1 컨테이너 리소스를 관리해야지 -이론편 1.컨테이너 하드웨어 리소스 제한 어떻게 해요 ? 기본적으로 컨테이너는 호스트 하드웨어 리소스의 사용 제한을 받지 않는다. docker command를 통해 제한할수 있는 리소스 -cpu -memory -disk i/o docker run --help docker를 사용하다보면 메모리이슈가 많이생긴다고 한다. 그 이유는 무엇일까 ? 도커 컨테이너를 실행할 때 해당 컨테이너는 호스트 운영 체제에서 분리된 프로세스로 실행됩니다. 이 프로세스는 호스트 운영 체제의 리소스를 공유하지만, 가상화된 환경 내에서 독립적으로 실행됩니다. 이러한 가상화된 환경은 각 컨테이너마다 필요한 패키지와 라이브러리 등을 별도로 가지고 있으므로, 메모리 사용량이 높아질 수 있습니다. 도커 이미지를 빌드할 때 사용되는 Dockerfi.. 더보기 이전 1 2 다음