SERVER SETTING AND RELATED DEVELOPMENT TOPIC

서버구축 진행순서

1. Linux ubuntu 20.04.5 LTS 설치


[Ubuntu] 홈 서버 구축 - (0)Ubuntu 18.04 Server 부팅 USB 만들기
20.04 LTS server 설치-1
20.04 LTS server 설치-2
22.04 LTS server 설치

우분투 22.04 LTS 처음 설치 후 해야할 작업
ubuntu server 설치 후 인터넷 연결 확인방법
ubuntu server 설치 후 ssh 동작 확인 방법 및 설치
ubuntu server 설치 후 git bash로 원격 접속[chrome검색]
Ubuntu 18.04 : SSH 키 : 설정 방법
ubuntu server 설치 후 openssh설치 후 ssh로 접속하기
ubuntu 24.04 LTS 이전 버전 설치 후 ssh 접속 포트 변경하기
ubuntu 24.04 LTS version SSH 포트 변경
ubuntu server 설치 후 putty로 ssh 연결하기

Ubuntu 버전 확인하는 방법, 예제, 명령어
ubuntu server 서버 공장초기화 하는 법 + .sh 파일로 한번에 실행

리눅스 파일시스템 비교(ext4 & xfs)-1
리눅스 파일시스템 비교(ext4 & xfs)-2
[Linux] Ubuntu Server 20.04 RAID 구성하기
[리눅스 (Linux) 명령어] 하드 디스크 파티션 확인 및 마운트 시키기(fdisk -l / df -h / mount 명령어)
[Linux] 디렉토리 관련 명령어 총정리(확인, 이동, 생성, 삭제, 복사, 잘라내기)

sudo -i
apt-get update
apt-get upgrade
apt-get install net-tools
ifconfig

2. sudo ufw status

sudo ufw enable
sudo ufw deny 80
sudo ufw delete allow 80
sudo ufw delete deny 80
sudo ufw status

우분투 터미널 창에서 포트를 열어주는 것은 내부 IP(192.168.0.3) 포트를 여는 것이다.
터미널에서 여는 내부IP 포트는 외부IP포트와 포워딩시켜줘야 한다. iptime 공유기의 외부 IP(112.166.186.238)에 포트포워딩
KT공유기 로그인(ktuser/homehub)하고 난후, ID, 비밀번호 변경하는 페이지가 나온다. PC나 아이폰으로 로그인하더라도, 어떻게 입력해도 변경이 안되더라...
그래서, 결국은 핸드폰으로 로그인하고, http://172.30.1.254로 후진한다. 그러면 KT WiFi home 설정화면이 나온다. 여기서부터 그림데로,,,,
그리고, 내부 IP 주소는, ubuntu 서버에 ifconfig 해서 확인(172.30.1.17)하면 된다.

KT (케이티) 공유기 포트포워딩 설정하기

port 순서:

     외부IP포트(포트포워딩) ===> 내부IP포트(터미널 포트열기) ===> 컨테이너포트(yml파일: 내부IP포트:컨테이너포트)

docker run -d -p 50009:9000 --name portainer . . . 에서는 내부IP포트:portainer(컨테이너)포트


[linux] ubuntu에 ssh 접속 포트 변경하기


디렉토리 생성하기:

mkdir test : 디렉토리가 만들어진다.

sudo mount /dev/sdb1 test : 하드디스크(/dev/sdb1)에 test디렉토리를 mount한다.

     이렇게 마운트한 디렉토리는 rmdir test 혹은 rm -rf test로도 지워지지 않는다. : rm: cannot remove 'test': Device or resource busy

     이때는 마운트를 해제한 다음에 삭제: sudo umount test ===> rmdir test 혹은 rm -rf test로 삭제

[Ubuntu] USB 마운트(mount)/언마운트(unmount) 하는 방법

Linux : 파일 시스템 Mount, Unmount 하는 방법, 예제, 명령어


3. apt install docker.io -y

docker container에 접속하기
[Docker] 컨테이너 안에 파일 수정하기 (container config)
리눅스 Docker 저장 위치 확인 및 변경[기존 컨테이너 & 이미지 구동이 안된다. 지워지지는 않지만..... docker설치후 저장위치 변경]
[Docker] 도커 저장소 변경하기(Root Dir) - 온실 속 선인장(아래 방법이랑 좀 다르다...이걸로 하자)
vi /vim 편집기 명령어 정리 (단축키 모음 / 목록)
===> sudo docker info | grep Root (Docker 데이터 저장 위치 확인하기)
===> systemctl stop docker
===> /home 으로 이동후 [docker 데이터 저장할 폴더 생성하기] mkdir docker
===> vi /lib/systemd/system/docker.service (저장 위치 변경하기 위해 서비스 설정 파일 열기)
===> ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --data-root=/home/docker/ [여기 추가...붉은색]

===> systemctl daemon-reload
===> systemctl stop docker
===> systemctl start docker
===> sudo docker info | grep Root

docker volume create portainer_data
docker run -d -p 50009:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
docker run -d -p 50009:9000 --name portainer --restart=always --privileged -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
docker restart portainer

docker swarm init

docker container ls
docker rm -f portainer-container-ID

docker images
docker image rm portainer-image-ID

docker volume ls
docker volume rm portainer_data

4. stack을 빌드하기전에. . . 반드시, FTP로 nginx.conf를 옮겨놔야 한다.

nginx container 빌드시에 컨테이너가 만들어지지 않는다.


FDKproject0.1
     ├── flask_www
     │ ├── uwsgi.ini
     │ ├── route
     │ ├── apps . . .
     │ ├── templates
     │ ├── requirements.txt
     │ └── Dockerfile
     ├── nginx
     │ └── nginx.conf
     ├── docker-stack.yml
     ├── app.py
     └── venv

pip install gunicorn 빼먹지 말라
pip freeze > requirements.txt
pip freeze > flask_www/requirements.txt

5. stack 빌드 후에 받드시 db migrate!!!

docker exec -it [flask app container ID] /bin/bash 로 플라스크 앱 컨테이너 내로 진입

flask db init ===> flask db migrate ===> flask db upgrade 시행

(위와 같은 명령: docker exec [app 혹은 container ID] flask db init/migrate/upgrade)

docker logs -t flask_www(app 혹은 container ID)
docker logs -tf flask_www(app 혹은 container ID)


해당 IP의 포트 open check Site
git + ssh 연계시 22 번 포트가 아닌 다른 포트 사용할 경우 앞에 ssh:// 를 적고 id@host:포트번호를 적어줌