목록DevOps (89)
내 잡다한 노트
컨테이너 이미지를 저장하고 배포하기 위해 Registry와 Repository를 사용한다. Registry는 도커 이미지를 저장하는 서버이다. Repository는 레지스트리 내에서 특정 이미지의 버전들을 관리하는 단위이다. 각 레포지토리는 여러 버전(태그)을 저장한다. 예를 들어, nginx 라는 레포지토리 안에는 nginx:latest, nginx:1.19, nginx:1.18 등과 같은 여러 버전의 이미지가 있을 수 있다. Registry에는 하나 이상의 Docker Repository를 포함할 수 있다. 이미지를 저장하고 관리하며, 이미지의 push 및 pull 요청을 처리한다. Docker hub가 유명한 공용 Registry이다. 우리가 도커 명령어로 pull을 해올 때 여기서 이미지를 다운받..
docker를 자주 사용하다보니 dangling image들이 존재한다.dangling은 none:none 처럼 이름도 태그도 달려있지 않은 이미지이다.이게 생기는 원인은 이미지 빌드를 하는데 기존 이미지 이름과 태그가 동일할 경우, 기존 이미지가 이렇게 바뀌게 된다. 쓰지 않으므로 삭제하면 된다. docker images를 통해 확인할 수 있다.(만약 none 으로 된 image들이 있다면)docker image prune 를 해주자. 이렇게 되면 가동중인 컨테이너의 이미지를 제외하고 안쓰이는 것들을 삭제할 수 있다.docker images -f "dangling=true" 로 none들이 어떤게 있는지 확인할 수 있다. dangling 이미지들을 정리해도 용량이 크게 확보되지 않을 수 있다.docke..
먼저, swarm 실습을 위해서는 여러 호스트가 필요하다. vm을 사용하는 방법도 있고, 하나의 컴퓨터만 사용해야한다면 docker in docker(DinD)라는 이미지가 있는데 도커 컨테이너안에서 컨테이너를 또 만드는 방식을 통해 여러 호스트를 만든 것처럼 할 수 있다. 나는 aws도 연습할 겸 Auto scaling을 활용하여 3개의 인스턴스를 만들고 보안그룹으로 포트를 열어놓은 뒤 실습을 진행하였다. swarm 관련해서 열어두어야 할 포트는 2377, 7947, 4789 포트이다. 3개의 인스턴스가 같은 vpc에 있고 같은 서브넷에 있으므로 내부ip를 통하여 연결하였다. swarm에는 매니저노드, 워커노드가 존재한다. 매니저노드의 역할은 worker 노드들을 관리하는 역할이다.좀 더 정확히 말하..
버추얼박스 같은 가상화 소프트웨어에 등록시키는 os를 편하게 만드는 프로그램이다. 도커파일의 경우 도커 이미지를 빌드해서 작은 용량으로 편하게 컨테이너를 배포할 수 있다. Vagrant도 비슷한 개념으로, 가상화 OS를 vagrantfile로 만들어서 셋팅된 os를 편하게 배포할 수 있다. 이를 통해, 버추얼박스에 OS를 까는게 번거롭고 귀찮은 과정을 거치는데 편하게 설치할 수 있다. 어려운 말로하면, 베이그런트는 시스템 자원을 할당, 배치, 배포해두었다가 필요할 때 시스템을 사용할 수 있는 상태로 만들어주는데 이걸 provisioning이라고 한다. 자주쓰는 vagrant 명령어 vagrant init // 프로비저닝을 위한 기초 파일을 생성 vagrant up vagrant halt vagrant d..
https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/?ref=seongjin.me
docker 네트워크는 컨테이너가 서로 통신하고, 외부 네트워크와 통신할 수 있는 방법을 제공한다. 여러 네트워크 유형이 존재한다. - bridge 기본적인 도커 컨테이너의 네트워크이다. 도커 호스트와 컨테이너 간의 사설 내부 네트워크를 제공하며, 컨테이너가 서로 통신할 수 있게 해준다. NAT를 활용해 호스트 IP를 가지고 외부와 통신할 수도 있다. - none 이걸 사용하면 컨테이너에는 네트워크가 존재하지 않게 된다. - host 컨테이너가 호스트의 네트워크 스택을 직접 사용할 수 있게 된다. 따라서 호스트의 IP 주소와 포트번호를 사용할 수 있고 네트워크 환경을 공유한다. - overlay 다중 호스트에서 실행되는 컨테이너의 경우에 자주 사용된다고 한다. 연관된 개념이 docker swarm과 오케..
포스팅은 안하고 공부만 했지만 복습한다는 차원에서 포스팅을 해보려고 한다. # whoami 현재 로그인한 사용자가 누구인지 확인하는 명령어 # 사용자 추가 명령어 adduser 또는 useradd 형식은 adduser 옵션은 -d : 홈 디렉터리 변경 -g : -G : 으로 사용자의 그룹을 지정할 수 있다. sudo cat /etc/passwd 명령어를 통해 사용자 정보가 담긴 파일을 cat 으로 출력할 수 있다. 사용자명:비밀번호:사용자 ID:그룹 ID:코멘트:홈 디렉터리:기본 쉘 # 사용자 삭제 userdel # 사용자 설정 변경 설정이라 함은 홈 디렉터리, 비밀번호, 그룹명 등을 뜻한다. 실행 형식 : usermod 옵션 -d : 홈 데릭터리 변경 -g : 그룹 id 변경 -p : 비밀번호 변경 #..
리눅스에는 다양한 디렉터리가 많이 존재하는데 각각 무슨 역할을 하는지 적어볼 것이다. / : 루트 디렉토리로, 전체 파일 시스템의 시작점이다. /bin : 필수적인 사용자 바이너리가 저장된다. 예를 들어 ls, cp 등의 명령어가 여기에 포함된다. /sbin : 시스템 바이너를 저장한다. 시스템 관리와 관련된 명령어가 있다. /etc : 시스템의 설정 파일들이 위치한다. 사용자 계정 정보, 부팅 스크립트, 서비스의 설정 파일 등이 포함된다. /dev : 디바이스 파일들이 위치한다. 리눅스에서는 하드웨어 장치를 파일로 취급하기 때문이다. 예를 들어 /dev/sda 는 첫 번째 SATA 하드 드라이브를 나타낸다. /proc : 가상 파일 시스템으로써 실행 중인 커널 및 프로세스에 대한 정보를 제공한다. /v..