Docker
Docker 톺아보기 22탄 - Docker Compose (실습편)
도커 컴포즈 실습을 진행하려면 일단 도커 컴포즈를 설치해야 한다 일단 docker docs에서 도커 컴포즈를 검색해서 설치 방법을 알아보자 https://docs.docker.com/compose/install/linux/ Install the Compose plugin docs.docker.com 레포지토리로 설치하는 방법과 수동으로 설치하는 방법 중 편한 방법으로 설치하면 된다 나는 수동으로 설치할거다 여기서 copy 버튼을 눌러 터미널에 붙여넣어주자 설치가 잘 된 것을 볼 수 있다 설치 경로를 확인하면 도커 컴포즈 파일이 있는 것을 알 수 있다 그런데 실행 권한이 없다 권한 변경을 해주도록 하자 $ chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose $ sud..
Docker 톺아보기 21탄 - Docker Compose (이론편)
이번 챕터에서는 컨테이너를 빌드하는 것부터 운영까지의 모든 것을 배울거다! 이번 챕터의 목차다 1. 도커 컴포즈가 뭐예요? 2. 도커 컴포즈로 컨테이너를 실행할 수 있나요? 3. 빌드에서 운영까지 알려주세요 출발하자 == 1. 도커 컴포즈가 뭐예요?? == 도커 컴포즈는 여러 컨테이너를 일괄적으로 정의하고 실행할 수 있는 툴 이다 괜히 썸네일이 문어인게 아니다 현대에 들어서 하나의 서비스를 운영하려면 여러 개의 애플리케이션이 동시에 동작해야 하는 경우가 대부분이다 그렇기 때문에 애플리케이션 하나하나 우리가 다 관리할 수가 없으니 도커컴포즈가 통합적으로 관리할 수 있게 했다 하나의 yaml 파일에 "이 컨테이너는 이렇게 해주고, 저 컨테이너는 저렇게 해줘" 라고 명시해둔다 그러면 도커 컴포즈는 이 yaml..
Docker 톺아보기 20탄 - 컨테이너간 통신 (실습편)
시작하기에 앞서 이 글을 이해하기 어렵다면 19탄 이론편을 보고 오자 이번 챕터의 목차 1. 컨테이너 네트워크 사용하기 2. 컨테이너 포트 외부로 노출하기 3. user-defined network 구성하기 4. 컨테이너간 통신 wordpress, mysql 컨테이너 서비스 구축하기 == 1. 컨테이너 네트워크 사용하기 == 앞 챕터에서 말했던 것처럼 docker0 안에서 만들어진 컨테이너는 순차적으로 ip가 할당된다 모든 컨테이너는 docker0 네트워크를 통해서 외부와 연결된다 따라서 docker0는 브릿지 네트워크이다 $ ip addr $ brctl show 현재 동작 중인 컨테이너가 없기 때문에 localhost, 도커호스트IP, docker0 IP 이렇게 세 네트워크만 있는 것으로 확인된다 그러..
Docker 톺아보기 19탄 - 컨테이너간 통신 (이론편)
오늘은 컨테이너 간의 통신에 대해 알아보도록 하자 컨테이너 간의 통신은 곧 컨테이너 간의 네트워크 연결을 의미한다 오늘의 목차다 1. 컨테이너는 어떻게 통신하나요? 2. 컨테이너 포트를 외부로 노출할 수 있나요? 3. 컨테이너 네트워크를 추가할 수 있나요? 4. 컨테이너끼리 통신은 어떻게 하나요? 출발해보자 == 1. 컨테이너는 어떻게 통신하나요? == 위 그림은 컨테이너 네트워크의 기본적인 구조이다 큰 네모박스는 도커가 설치되어 있는 도커 호스트 시스템이다 이 시스템에서 도커 데몬이 start 되면 브릿지역할을 하는 docker0라는 도커 네트워크 인터페이스가 생성된다 docker0는 virtual ethernet bridge로써 172.17.0.0/16 값을 가지며, 브릿지 기능을 지원하는 가상 네트..
Docker 톺아보기 18탄 - Docker Container Storage (실습편)
컨테이너 스토리지에 대한 실습을 해보자 목차다! 1. mysql db data 영구 보존하기 2. 웹 데이터 read only 서비스로 지원하기 3. 컨테이너간 데이터 공유하기 == 1. mysql db data 영구 보존하기 == 일단은 실습 환경을 만들어주자 아래 명령으로 mysql 컨테이너를 만들어주고 로컬의 /dbdata에 볼륨마운트를 해준다 $ docker run -d --name db -v /dbdata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=pass mysql:latest 그리고 확인하자 $ docker ps 우린 이제 mysql 컨테이너도 만들었고 로컬의 /dbdata 디렉토리로 볼륨 마운트도 해주었다 그럼 실제로 db에 데이터를 넣었을 때, /dbdata 디렉..
Docker 톺아보기 17탄 - Docker Container Storage (이론편)
이번 챕터에서는 컨테이너가 사용하는 스토리지에 대해서 알아볼거다 목차는 아래와 같다 1. 컨테이너 볼륨이 뭔가요? 2. 데이터를 보존하고 싶어요 3. 컨테이너끼리 데이터 공유가 가능한가요? == 1. 컨테이너 볼륨이 뭔가요? == 컨테이너와 컨테이너 이미지는 기본적으로 읽기전용(read only)이다 하지만 도커는 컨테이너에 추가되는 데이터를 저장하기 위해 읽기쓰기가 가능한 레이어 개념을 넣었다 이것을 Union File System 또는 Overlay 라고 한다 그래서 컨테이너에 추가되는 데이터들은 별도의 RW(Read Write) 레이어에 저장된다 예를 들어, mysql db를 컨테이너로 운영 중이었다면 새롭게 생겨나는 db 데이터들은 모두 RW 레이어에 저장될 것이다 하지만 중요한 고객데이터가 저장..