Docker
[Kaniko] Gitlab CI를 위해 Docker 대신 사용할 수 있는 이미지 빌드 툴
Docker 대신 Kaniko로 빌드 테스트를 하게 된 이유 Helm을 사용하여 쿠버네티스에 Gitlab을 배포하면, GItlab 내부에서 공유 가능한 Gitlab Runner(Option)가 같이 설치됩니다. Gitlab Runner에서 컨테이너 이미지 빌드를 위해 보통 docker를 사용하지만,쿠버네티스의 CRI가 containerd인 환경에서는 Docker를 사용한 이미지 빌드를 사용할 수 없기 때문에 Kaniko로 빌드 테스트를 진행하게 되었습니다. Kaniko를 이용한 Docker 이미지 빌드 Kaniko는 쿠버네티스 클러스터나 컨테이너 내에서 Dockerfile을 사용하여 컨테이너 이미지를 빌드하기 위한 도구입니다. Kaniko는 Docker-in-Docker를 사용한 빌드에서 발생하는 두가지..
[Docker] 트랜스미션 재시작시 생성되는 폴더 없애기
증상 도커를 이용한 트랜스미션 컨테이너 재시작시 complete, incomplete가 생긴다. 나는 해당 옵션과 폴더를 사용하지 않기 때문에 트랜스미션 재시작 후 직접 폴더들을 삭제시켜줬다. 해결 나의 경우 트랜스미션의 /config 경로가 /home/gustjd887/docker/config/transmission 경로로 매핑되어 있다. /home/gustjd887/docker/config/transmission 경로에서 custom-cont-init.d 디렉토리를 생성 후 auto_rmdir.sh 스크립트를 생성했다. #!/usr/bin/with-contenv bash # clean up default directories echo '[10-cleanup] *** Removing unused dir..
[kubeadm] Hyper-V를 사용한 Kubernetes 설치
Windows의 Hyper-V를 사용하여 Ubuntu 운영체제를 설치하고, Docker와 Kubeadm을 사용한 Kubernetes의 설치를 다룹니다. 개요 kubeadm을 사용한 설치 방법입니다. kubernetes의 주요 구성요소들을 Pods로 배포하고 실행합니다. Windows Hyper-V VMs(ControlPlane, Node01, Node02) Ubuntu Kubeadm Kubernetes Docker Hyper-V 이미지 다운로드 Get Ubuntu Server | Download | Ubuntu Get Ubuntu Server one of three ways; by using Multipass on your desktop, using MAAS to provision machines in ..
[Docker] 윈도우10 도커 데스크탑 설치(WSL2)
기존 도커 데스크탑은 윈도우10 버전에 따라 다른 설치 방법을 제공해왔습니다. Windows 10 Home : VirtualBox Windows 10 Pro : Hyper-V 하지만 2020년 5월 WSL(Linux용 Windows 하위 시스템)이 WSL2로 업데이트 되면서 파일 시스템 성능이 높아지고 호환성이 개선되었고, 현재 도커 데스크탑은 Windows 10 Home 버전과 Pro 버전 모두 WSL2를 사용한 설치를 제공하고 있습니다. WSL2 설치 사전작업 업데이트 : 시작 > 설정 > 업데이트 및 보안 > 업데이트 확인 > 버전 2004까지 업데이트 버전확인 : 시작 > 설정 > 시스템 > 정보 > Windows 사양 > 버전 2004 확인 WSL2 기능 사용 설정 설정창 열기 : 시작 > 앱 ..
[WakeOnLan] Docker로 wol 이미지 빌드하여 사용
1. Dockerfile을 생성 FROM python:latest RUN pip install --upgrade pip RUN pip install wakeonlan ENTRYPOINT ["/usr/local/bin/wakeonlan"] 2. Image를 빌드 docker build -t gustjd887/wol . 3. Container 실행(켜려고 하는 컴퓨터의 MAC 입력) docker run --rm --net=host -t gustjd887/wol 11:11:11:11:11:11 4. 스크립트로 만들기 #!/bin/bash echo `docker run --rm --net=host -t gustjd887/wol 11:11:11:11:11:11` 5. 스크립트에 권한 주기 chmod 764 wol..
[Docker] Docker 저장공간 마운트하여 사용하기
라즈베리파이4에 우분투 19.10.1 설치 후 도커 설치까지 완료하였다. 라즈베리파이4 저장공간을 늘리기 위해 외장하드디스크 1TB짜리를 연결해 둔 상태인데, 파티션을 둘로 나누었다. /dev/sda1은 /home에, /dev/sda2는 /var/lib/docker에 마운트 하여 도커 저장공간으로 쓰기로 한다. blkid vi /etc/fstab UUID=0f79b311-228e-4af5-b371-c43f766e2014 /var/lib/docker ext4 defaults,noatime 0 0 blkid 명령어로 uuid를 확인 후 fstab에 도커 저장공간으로 사용할 부분을 위와 같이 추가하였다. 이후 재부팅 후 도커가 시작되면서 마운트 된 폴더에 필요한 디렉토리와 파일들을 자동으로 생성한다. /var..
[Postgres] postgres 이미지 사용 시 시간 설정
python script에 psycopg2 패키지를 사용하여 postgres 데이터베이스에 자료를 저장하게 세팅이 되었다. 잘 동작하나 보다가 시간 설정이 한국 시간 설정이 꼬여서 이상하게 나오는 것을 확인하였다. 그래서 docker-compose.yml 파일의 environment 설정을 확인해 보니 TZ=Asia/Seoul으로 이미 설정이 되어 있었다. environment: - TZ=Asia/Seoul 알고보니 postgres 데이터 볼륨을 db라는 이름으로 생성한 도커 볼륨을 사용하고 있어서 설정 변경이 되지 않았던 것 volumes: - db: {} services: postgres: volumes: - db:/var/lib/postgresql/data 아래와 같이 postgres를 위해 생성된..
[Nginx] nginx.conf alias 설정 시 주의사항
docker-compose.yml 파일 세팅을 끝내고 작동을 시켜보니 페이지에서 static 파일들을 받아오지 못하는 현상이 있었다. 확인 해 보니 nginx.conf 파일의 static 경로 설정이 잘못되어 있었던 것. server { location /static/ { alias /static;