본문 바로가기
반응형

DevOps128

[Docker] : fluentd 로깅 fluentd는 각종 로그를 수집하고 저장할 수 있는 기능을 제공하는 오픈소스 도구로 도커 엔진의 컨테이너의 로그를 fluentd를 통해 저장할 수 있도록 플러그인을 공식적으로 제공한다. mongoDB 서버와 fluentd와 Ubuntu를 통해 실습을 진행하는데 각각 이미지는 도커 허브를 참고하면 된다. 📝 : 도커 Mongo 📝 : 도커 Fluentd 참고해서 이미지를 pull 받을 수 있다. 도커 서버 1과 2에서 2에서 fluentd 서버를 통해 로그를 수집하고 몽고 서버로 전달해 준다. docker run --name mongoDB -d \\ -p 27017:27017 \\ mongo mongoDB 컨테이너를 생성한다. fluentd 서버의 호스트에서 fluent.conf 파일을 생성하고 아래 코.. 2022. 2. 20.
[Docker] : JSON-FILE Log 사용하기 JSON-file 로그 사용하기 mysql을 구동하는 컨테이너는 포그라운드에서 실행이 되기 때문에 로그 명령어로 애플리케이션의 상태를 체크할 수 있다. 책에서는 다른 방법도 알려주고 있다. 먼저 mysql을 하나 -d 명령어를 사용해서 하나 만들어주고 docker ps로 확인을 해 봤을 때 돌아가고 있지 않은 것을 확인할 수 있었고 docker ps -a를 실행했을 때 생성은 되어 있는 것을 확인할 수 있었다. docker start 컨테이너명으로 컨테이너를 시작하고 다시 확인을 했을 때 여전히 실행되고 있지 않은 것을 확인할 수 있었는데 이렇게 뭔가 오류가 있는 것 같다고 느낄 때 docker logs 명령어를 쓰면 된다. 이렇게 로그를 출력해서 에러를 체크할 수 있다. 로그가 너무 많으면 --tail.. 2022. 2. 19.
[Docker] : bridge Network와 --net-alias 브리지 네트워크와 —net-alias 브리지 타입의 네트워크와 run 명령어의 —net-alias 옵션을 같이 사용하면 특정 호스트 이름으로 컨테이너 여러 개에 접근할 수 있다. 위에서 생성한 mybridge 네트워크를 이용해 컨테이너를 3개 생성해 본다. —net-alias 옵션의 값은 alicek106으로 설정했고 다른 컨테이너에서 alicek106이라는 호스트 이름으로 아래 3개의 컨테이너에 접근할 수 있다. docker run -i -t -d --name network_alias_container1 \\ --net mybridge \\ --net-alias alicek106 \\ ubuntu:14.04 docker run -i -t -d --name network_alias_container2 \.. 2022. 2. 18.
[Docker] : Container Network, 컨테이너 네트워크 컨테이너 네트워크 —net 옵션으로 container를 입력하면 다른 컨테이너의 네트워크 네임스페이스 환경을 공유할 수 있다. 공유되는 속성은 내부 IP, 네트워크 인터페이스의 MAC 주소 등이다. —net 옵션의 값으로 container:다른 컨테이너의 ID와 같이 입력한다. docker run -i -t -d \\ --name network_container_1 \\ ubuntu:14.04 docker run -i -t -d \\ --name network_container_2 \\ --net container:network_container_1 \\ ubuntu:14.04 -i -t -d를 같이 사용하면 컨테이너 내부에서 셸을 실행하지만 내부로 들어가지 않고 컨테이너도 종료되지 않아 테스트용 컨테이.. 2022. 2. 18.
[Docker] : None Network, 논 네트워크 논 네트워크 none는 말 그대로 아무런 네트워크를 사용하지 않는 것이다. docker run -i -t \\ --name network_none \\ --net none \\ ubuntu:14.04 이렇게 명령어를 실행하면 외부와 연결이 단절되게 된다. ifconfig —net 옵션으로 none을 설정한 컨테이너 내부에서 네트워크 인터페이스를 확인하면 로컬 호스트를 나타내는 lo 외에는 존재하지 않는 것을 확인할 수 있다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 2. 18.
[Docker] : Host Network, 호스트 네트워크 호스트 네트워크 네트워크를 호스트로 설정하면 호스트 네트워크 환경을 그대로 사용할 수 있다. 브리지 드라이버 네트워크와 달리 별도 생성이 필요 없고 기존 host라는 이름의 네트워크를 사용한다. docker run -i -t \\ --name network_host \\ --net host \\ ubuntu:14.04 echo "컨테이너 내부입니다." 호스트 머신에서 설정한 호스트 이름도 컨테이너가 물려받기 때문에 컨테이너의 호스트 이름도 무작위 16진수가 아닌 도커 엔진이 설치된 호스트 머신의 호스트 이름으로 설정이 된다. ifconfig 컨테이너의 네트워크를 호스트 모드로 설정하면 컨테이너 내부의 애플리케이션을 별도의 포트 포워딩 없이 바로 서비스할 수 있다. 마치 실제 호스트에서 애플리케이션을 외부.. 2022. 2. 18.
[Docker] : bridge network, 브리지 네트워크 브리지 네트워크 docker0 브리지와 비슷하게 브리지 네트워크는 docekr0이 아닌 사용자 정의 브리지를 생성해 각 컨테이너에 연결하는 네트워크 구조이다. 컨테이너는 연결된 브리지를 통해 외부와 통신할 수 있다. docker0을 사용하는 브리지 네트워크가 아닌 새로운 브리지 네트워크를 생성할 수 있다. docker network create --driver bridge mybridge 이렇게 생성할 수 있는데 위 명령어를 실행하면 브리지 타입의 mybridge라는 네트워크가 생기게 된다. docker run -i -t \\ --name mynetwork_container \\ --net mybridge \\ ubuntu:14.04 이렇게 명령어를 입력하여 mybridge 네트워크를 사용하는 컨테이너를.. 2022. 2. 18.
[Docker] : docker network 기능 컨테이너를 생성하면 docker0 브리지를 통해 외부와 통신할 수 있지만 사용자 선택에 따라 여러 네트워크 드라이버를 사용할 수도 있다. docker network ls 명령어로 기본적으로 사용할 수 있는 네트워크가 무엇인지 확인해 볼 수 있다. 도커의 네트워크를 다루는 명령어는 docker network 로 시작한다. NAME을 보면 bridge, host, none 네트워크가 있는 것을 확인할 수 있다. bridge 네트워크는 컨테이너를 생성할 때 자동으로 연결되는 docker0 bridge를 활용하도록 설정되어 있다. 이 네트워크는 172.17.0.x IP대역을 컨테이너에 순차적으로 할당한다. docker network inspect bridge 위 명령어를 통해 네트워크의 자세한 정보를 확인할 수.. 2022. 2. 17.
[Docker] : docker network 구조 ifconfig 컨테이너 내부에서 명령어를 입력하면 컨테이너 네트워크 인터페이스에 eth0과 lo 네트워크 인터페이스가 있는 것을 확인할 수 있다. 도커는 컨테이너 내부 IP를 순차적으로 할당하고 이 IP는 컨테이너를 재시작할 때마다 변경될 수 있다. 그리고 이 내부 IP는 도커가 설치된 호스트 즉, 내부 망에서만 사용이 가능한 IP이다. 때문에 외부와 연결될 필요가 있다. veth 인터페이스는 사용자가 직접 생성할 필요가 없고 컨테이너가 생성될 때 도커 엔진이 자동으로 생성하게 된다. 도커가 설치된 호스트에서 ifconfig나 ip addr과 같은 명령어로 네트워크 인터페이스를 확인하면 실행 중인 컨테이너 수 만큼 veth로 시작하는 인터페이스가 생성된 것을 확인할 수 있다. 명령어의 출력 결과 중 e.. 2022. 2. 17.
[Docker] : Docker volume , 도커 볼륨 도커 볼륨 docker volume 명령어를 사용해서 볼륨을 활용할 수도 있다. 즉, 도커 자체에서 제공하는 볼륨 기능을 활용해 데이터를 보존할 수도 있다. 볼륨을 다루는 명령어는 docker volume로 시작하고, docker volume create 명령어로 볼륨을 생성할 수 있다. docker volume create --name myvolume myvolume이라는 볼륨을 생성한다. docker volume ls 명령어를 통해 생성된 볼륨을 확인힌다. docker run -i -t --name myvolume_1 \\ -v myvolume:/root/ \\ ubuntu:14.04 echo hello, volume! >> /root/volume 위 코드로 생성되는 컨테이너는 볼륨을 컨테이너의 /r.. 2022. 2. 16.
[Docker] : Volume Container, 볼륨 컨테이너 볼륨 컨테이너 볼륨을 사용하는 두 번째 방법은 -v 옵션으로 볼륨을 사용하는 컨테이너를 다른 컨테이너와 공유하는 것이다. docker run -i -t \\ --name volumes_from_container \\ --volumes-from volume_overide \\ ubuntu:14.04 ls /home/testdir_2/ —volume-from 옵션을 통해 여러 개의 컨테이너가 동일한 컨테이너에 볼륨을 공유해서 사용할 수도 있다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 2. 16.
[Docker] : host volume 공유, 호스트 볼륨 공유 호스트 볼륨 공유 docker run -d \\ --name wordpressdb_hostvolume \\ -e MYSQL_ROOT_PASSWORD=password \\ -e MYSQL_DATABASE=wordpress \\ -v /home/wordpress_db:/var/lib/mysql \\ mysql:5.7 docker run -d \\ -e WORDPRESS_DB_PASSWORD=password \\ --name wordpress_hostvolume \\ --link wordpressdb_hostvolume:mysql \\ -p 80 \\ wordpress 두 명령어를 통해 mysql 데이터베이스 컨테이너와 워드프레스 웹 서버 컨테이너를 생성한다. 워드프레스 컨테이너에 -p 옵션으로 컨테이너의 8.. 2022. 2. 16.
[Docker] 도커 볼륨, docker volume 도커 이미지로 컨테이너를 생성하면 이미지는 읽기 전용이 되고, 컨테이너의 변경 사항만 별도로 저장해서 각 컨테이너의 정보를 보존한다. 즉, 도커 이미지는 읽기만 가능하고 그 위에 컨테이너 레이어가 있어서 도커 컨테이너는 쓰기가 가능하도록 한 구조이다. 이미 생성된 이미지는 어떤 경우에도 변경되지 않는다. 컨테이너 계층에 원래 이미지에서 변경된 파일 시스템 등을 저장하게 된다. 도커 이미지에 mysql을 실행하는데 필요한 애플리케이션 파일이 들어있다면 도커 컨테이너에는 wordpress에서 쓴 로그인 정보, 게시글 등 데이터베이스를 운용하며 쌓이는 데이터가 저장이 되게 되는 것이다. 하지만 단점이 있다. myslq 컨테이너를 삭제하면 컨테이너 계층에 저장되어 있는 데이터베이스의 정보도 삭제가 된다. 도커의.. 2022. 2. 15.
[Docker] : 도커 애플리케이션 구축하기 docker run -d \\ --name wordpressdb \\ -e MYSQL_ROOT_PASSWORD=password \\ -e MYSQL_DATABASE=wordpress \\ mysql:5.7 mysql 이미지를 사용해 데이터베이스 컨테이너를 생성한다. docker run -d \\ -e WORDPRESS_DB_HOST=mysql \\ -e WORDPRESS_DB_USER=root \\ --name wordpress \\ --link wordpressdb:mysql \\ -p 80 \\ wordpress 미리 준비된 워드프레스 이미지를 통해 워드프레스 웹 서버 컨테이너를 생성한다. docker ps 명령어로 호스트의 어느 포트와 연결이 되었는지 확인할 수 있다. docker port word.. 2022. 2. 15.
[Docker] : VMWare Ubuntu Docker 설치 VMWare Ubuntu Docker 설치 📝 ← Ubuntu에 Docker 엔진 설치하는 공식 문서를 참고하면 더 좋다. 저장소를 설치하는 방법으로 도커를 설치한다. sudo apt-get update sudo apt-get install \\ ca-certificates \\ curl \\ gnupg \\ lsb-release curl -fsSL | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io sudo docker version 도커 설치 확인한다. 2022. 2. 10.
[Git] : Git Hub 잔디가 안 심어지는 현상 검정색 배경은 내가 로그인한 계정으로 본 나의 깃 허브 흰색 배경은 로그인하지 않은 채로 본 나의 깃 허브 나는 하루 공부한 코드를 보통 깃 허브에 올리는데 오늘 얼마나 올렸나 확인을 해보니 가득 찍혀 있었다. 이렇게 내 계정으로 로그인한 상태에서는 잘 찍히는데 다른 사람이 접속해서 볼 때에는 좀 달랐다. 시크릿 모드로 접속해서 확인해 보니.. ??.. 이렇게 듬성듬성 무언가가 빠져있는 것을 확인할 수 있다. 난 분명 다 찍었고 커밋 메시지도 확인할 수 있는데 뭐가 문제인가 했더니 private로 설정한 저장소에 올린 코드는 저렇게 보이지 않는 것이였다. 그래도 뭔가 눈에 보이면 좋을 것 같아서 찾아보니 보이게 하는 방법이 있었다. 잔디가 보이는 창에서 위 사진 처럼 설정해 주면 된다. 설정을 완료하면 .. 2022. 2. 8.
[AWS] : AWS Ec2 Ubuntu Mysql 외부 접속하기 AWS Ec2 Ubuntu Mysql 외부 접속하기 aws에서 인바운드 규칙에 3306을 추가해 준다. sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf bind-address 값을 0.0.0.0으로 바꿔준다. sudo mysql restart mysql 재시작을 해준다. sudo mysql -u root -p 1234 mysql에 접속을 해준다. 1234는 비밀번호이다. grant all privileges on *.* to root@'%'identified by '1234'; 계정에 모든 권한을 부여해준다. 퍼블릭 IP를 복사한다. 퍼블릭 IP는 인스턴스를 중지하거나 재시작하면 변경되므로 추후에는 탄력적 IP를 생성하고 연결해서 사용하면 된다. aws에서 복사해 온 IP를 .. 2022. 1. 6.
[AWS] : 리전, 가용 영역, 엣지 네트워크와 AWS 구성 리전, 가용 영역, 엣지 네트워크와 AWS 구성 AWS 리전 AWS는 리전 단위로 배포가 된다. 리전은 데이터 센터를 클러스터링하는 물리적인 위치로 보통 국가 단위로 위치한다. 1개의 리전은 2개 이상의 가용 영역으로 이루어져 있다. 가용 영역 하나 이상의 개별 데이터 센터이다. 가용 영역 끼리는 고속 네트워크로 연결된다. 엣지 네트워크 콘텐츠를 캐싱하는 위치이다. 설명 AWS안에 VPC(가상네트워크)가 있다. VPC안에 서브넷이 생성된다. 서브넷에 라우팅 테이블이 생성이 된다. 네트웍이 어디로 이동될 지 설정해 준다. 라우팅 테이블에 인터넷 게이트 웨이가 연결된다. 인터넷 게이트 웨이가 없다면 VPC 밖으로 나갈 수 없다. 서브넷 안에 EC2를 생성하면 NIC가 생성되고 보안 그룹과 연결이 되어 보안 .. 2022. 1. 1.
[Git] : README.md 작성 방법 및 요령 README.md 작성 방법 및 요령 제목, 글머리 작성법입니다. # H1, 제목 ## H2, 부제목 ### H3, 소제목 #### H4, 제목4 ##### H5, 제목5 ###### H6, 제목6 번호 없는 리스트 작성법입니다. * 리스트1 - 리스트2 + 리스트3 번호 있는 리스트 작성법입니다. 1. 리스트1 2. 리스트2 3, 리스트3 기울어진 글씨 작성법입니다. *텍스트* _텍스트_ 구분선 작성법입니다. *** --- ___ 인용 작성법입니다. >텍스트 >>텍스트 | >기호 하나 추가 = 인용 속 인용 이미지 추가 작성법입니다. ![텍스트](이미지 링크) 링크 작성법입니다. 인라인 링크 작성법입니다. [텍스트](링크 주소) 참조 링크 작성법입니다. [텍스트][참조명] [참조명]:링크 주소 체크박스.. 2021. 12. 3.
[Git] : gitignore 활용하기 .gitignore , 깃 이그노어 활용 .gitignore 파일을 생성해 줍니다. 메타데이터와 서버는 깃 허브에 올리고 싶지 않기 때문에 깃 이그노어를 활용했습니다. 깃 이그노어를 통해 원하지 않는 파일은 깃 허브에 add, commit, push해도 올라가지 않도록 설정할 수 있습니다. 작성 방법은 업로드를 원하지 않는 파트의 경로를 넣어주면 되고 한 줄을 작성하면 한 줄을 띄워주면 됩니다. 깃 허브에 업로드 되길 원하지 않는 파일을 지정하고 깃 허브로 작업을 푸쉬해주면 이렇게 이그노어 파일에 적힌 부분이 제외되고 나머지는 깃 허브에 올라가게 됩니다. 서버와 메타데이터가 제외된 채 나머지 파일이 올라간 것을 확인할 수 있습니다. 2021. 12. 3.
[Ubuntu] : 우분투 18.04버전 다운로드 및 설치 그리고 환경설정 Ubuntu 다운로드 및 설치 그리고 환경설정 https://old-releases.ubuntu.com/releases/18.04.5/ Index of /releases/18.04.5 Select an image Ubuntu is distributed on two types of images described below. Desktop image The desktop image allows you to try Ubuntu without changing your computer at all, and at your option to install it permanently later. This type of image is what mos old-releases.ubuntu.com 위 링크에 접속해 줍니다... 2021. 12. 2.
반응형