Go, Vantage point
가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.
Github | https://github.com/overnew/
Blog | https://everenew.tistory.com/
Wordpress와 Mysql을 사용하여 2 Teir 환경을 컨테이너에서 세팅해 보자. Wordpress와 Mysql은 같은 bridge와 연결하여 통신이 가능하게 하고, 다른 컨테이너와 분리한다. 외부로 노출되는 port는 Wordpress에 새로운 Bridge를 연결하여 Host pc에서 접속이 가능하게 한다. 이때 접속을 위해 사용하는 것이 Docker0에 연결하는 DNS container이다. Wordpress 와 MySQL 연동 Mysql 설치 docker run -d --name mysql --network my_network -v mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=wordpress -e MYSQL_DATABASE=wordpress -e MYSQL_..
Docker image 파일을 다양한 방법으로 백업해 보자. 1. Docker Hub에 public한 백업 2. VM의 저장소에 SCP로 백업(private) 3. Docker Registry container에 private한 백업 image들을 백업하는 방식도 있지만, -v 옵션으로 특정 경로의 데이터만 마운트 시켜서 저장하는 방식도 백업에 일종으로 볼 수 있다. 컨테이너는 외부에 데이터를 저장하고 컨테이너는 그 자체로 동작하는 stateless 설계가 매우 바람직하다. 따라서 전체 Image가 아닌 데이터만 따로 백업하는 방식이 효율적일 수 있다. 어떤 상황에서 어떤 전략이 최선일지 판단하기 위해 서로 간의 차이를 명확히 알아두는 것이 중요하다. 1. Docker Hub에 public한 백업 이전 ..
컨테이너의 storage 받아온 image는 변경이 불가능하고 container layer에 작업하게 된다. 계층별로 디자인을 위에서 찍는 그림이 유니온 파일 시스템이다. 한번에, 오버레이하여 서로 겹치지만 않으면 된다. 겹치면 위에 것이 읽히고, 아래 데이터는 보호할 수 있다. 최종적으로 맨 위에 쌓이는 계층이 읽기 쓰기를 제공하므로, 우리는 읽기 쓰기가 되는 것처럼 보인다. 하지만 Image layer는 읽기 전용이므로 변경이 되지 않는다. 즉, 우리가 컨테이너에서 변경하던 것은 container layer이었다.이였다. 유니온 파일 시스템 유니온 파일 시스템은 여러 개의 파일 시스템을 하나의 단일 파일 시스템으로 합치는 기술이다. 이것은 여러 개의 디렉터리와 파일들을 하나로 통합하여, 사용자에게는 ..
만약 작업 중에 container가 강제 종료 된다면 지금까지 작업한 것이 물거품이 될 수 있다. 따라서 실행 중인 도커 파일을 docker hub에 업로드하자. 일단 도커 허브에 가입하자. Docker commit docker commit으로 실행중인 컨테이너로 이미지를 만들 수 있다. docker commit dns-server everenew/dns-jin:latest Docker login Docker login으로 docker hub에 로그인하자. 일단 repository를 만들어 준다. 본인의 경우는 dns-jin로 만들었기 때문에, 아이디가 앞에 붙어 everenew/dns-jin라는 이름 등록이 된다. 이름이 everenew/dns-jin인 이미지를 push 할 수 있으므로 이름이 잘못 설..
최종 완성 DNS image 바로 실행하기 docker run -d --name dns-server -p 53:53/udp --restart=always everenew/dns-jin:latest https://hub.docker.com/repository/docker/everenew/dns-jin Docker hub.docker.com 아래에서는 글은 위의 이미지를 만들기 위한 세팅 방법과 연결 테스트 정보를 담았다. DNS 이미지 실행 docker run -d --name dns-server -p 53:53/udp --restart=always sameersbn/bind:latest ubuntu에 bind9 이 설치된 이미지이다. UDP 53번 포트는 DNS 프로토콜이 동작하는 포트이므로 이를 노출시..
Ubuntu docker 설치 가이드 https://docs.docker.com/engine/install/ubuntu/ Install Docker Engine on Ubuntu Jumpstart your client-side server applications with Docker Engine on Ubuntu. This guide details prerequisites and multiple methods to install Docker Engine on Ubuntu. docs.docker.com Jenkins Jenkins는 지속적인 통합(Continuous Integration, CI) 및 지속적인 배포(Continuous Deployment, CD)를 지원하는 오픈 소스 자동화 도구이다. Jen..
인증서를 사용하는 목적 암호화가 없는 패킷은 그 내용이 외부에 모두 드러날 수 있다. VPN은 암호화 통신의 방식 중 하나이지만, 모든 클라이언트에게 VPN을 연결하는 서비스는 말이 안 된다. 따라서 인증서를 통한 암호화가 서비스 오픈에는 필수적이다. HTTPS를 위한 CA를 구현해 보자. 구현에 집중하기 위해 모두 같은 네트워크를 사용하여 통신하게 하자. CA: 100.1.2.6 Server: 100.1.2.4 Window client: 100.1.2.7 SSL과 TSL를 제공하는 OpenSSL 지금까지 ssh 접속을 위해 사용하던 openssl에 대해서 알아보자. OpenSSL은 암호화와 보안 프로토콜을 구현하는 오픈 소스 라이브러리입니다. TLS(Transport Layer Security) 프로토..
* 정적으로 디스크 크기를 세팅한 경우에만 해당한다. * VM을 사용하다보면 용량이 부족해질 때가 있다. 특히 도커를 사용하면 용량이 순식간에 부족해진다. 현재 최상위 디렉토리의 용량이 100%로 사용 중이다. 100%가 사용되면 명령어 조차 먹지 않을 때가 있으므로 VM의 저장소 용량을 늘려보자. 도구 -> 가상 미디어 관리자 해당 VM에 장착된 vdi의 용량을 늘린다. 이처럼 정적으로 세팅된 경우 용량을 늘려줄 수 있다. 하지만 적용을 누른다고 VM에서 용량이 바로 증가하진 않기 때문에 free 용량을 사용하는 명령어를 넣어 어야 한다. sudo lvextend -r -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv 논리 볼륨의 크기를 확장하려면 lvextend 명령..
docker attach docker attach CONTAINER option --no-stdin : 표준 입력은 컨테이너에 연결하지 않습니다. 컨테이너 표준 출력 및 오류 스트림만 연결 Local 표준 입력, 출력 및 오류 스트림을 실행 중인 컨테이너에 연결. ubnutu 이미지인 mzc-ct01에 접속해보자. attach로 컨테이너 진입한 상태에서는, 빠져 나오기 위해서는 ctrl+pq 키 조합을 사용. exit 명령어로 입력할 경우 컨테이너 자체가 종료됨. 종료가 되어버리는 것에서 유추 할 수 있듯이, 실행 중인 컨테이너에 직접 들어가 명령어를 실행 (내부 접근)한다는 것이 된다. -> 여기서 exit은 container가 자신을 종료하라는 의미가 되어 종료횐다. docker run 명령어의 -i..
HSRP 실습하기 GNS3 구성 일단 모두 OSPF로 라우팅 경로를 전달하자. 지금 R1이 R5로 가는 길은 ISP1로 가게 되어, 하나로 수렴되어 보인다. 즉, 경로상으로 베스트 페스로 잡혀있음. Client PC의 문제 상황 client인 PC는 GW를 하나만 가질 수 있다. 일단 PC의 GW를 R1으로 잡자. 가는 경로를 trace로 파악해 볼 수 있다. 경로를 파악해보면 베스트 path로 진행되고 있다. 장애 강제 유발 시키기 지금은 PC의 게이트웨이(GW1)가 끊기면 통신 장애가 발생할까? 일단 R1 S1/0 인터페이스를 down 시켜도, OSPF에 의해 대체경로인 R2로 트래픽을 보내서 R5의 Loop back과 통신이 된다. 이는 라우팅의 동적 이중화였기 때문에 가능했다. 하지만 반대로 PC..