서버를 빌려서 사용하는 종류는 용도에 따라서 나눌 수 있다
웹호스팅: 홈페이지를 운영할 목적이고 웹관련된 폴더에 업로드하여 운영할때 사용하고 비용이 저렵하다.
서버호스팅: 서버를 통째로 임대하여 사용하는 것으로 사용자 마음대로 프로그램 설치등을 할 수 있지만 독립으로 사용하는 만금 사용 비용이 고가이다.
웹서버로서의 역할만이 아니고 요즘 흔하게 사용되어지는 인공지능이라도 사용하려면 비싼 서버호스팅을 할수밖에는 없다. 하지만 다행 스럽게도 크라우드 서버가 출현하여 비용 절감에 큰 몫을 하고 있다.
이번에는 그와 비슷한 실습 환경을 만들기 위해서 Docker를 사용하여 클라우드 서버를 구축하여 실습을 가기로 해서 그 방법을 정리해둔다.
docker 로 ubuntu container 를 생성한 뒤 마치 독립된 서버처럼 putty 를 통해 접속하는 방법이다.
컨테이너 생성
ubuntu:20.04 image 를 pull 받는다.
docker pull ubuntu:20.04
$ docker images
pull 받은 image 로 container 를 생성.
docker run -dit -p777:22 --privileged=true --name "ubuntu_20_04" ubuntu:20.04
apt-get sudo 를 설치한다
옵션 설명
- d : 데몬 프로세스로 실행
- i : 사용자가 입출력 할 수 있는 명령 모드
- t : 가상 터미널 환경 활성화
- p : 연결 포트설정, 777:22 로 지정시 docker 가 실행되는 서버의 777 포트에 접속할 시해당 docker 컨테이너의 22 포트로 포트포워딩 된다.
- -privileged : apt update 에러 대안
- -name : 컨테이너의 이름
서버 포트 또한 개방해야 외부에서 putty 로 접속 할 수 있다.
접속하는 서버에서 하기와 같은 명령을 통해 포트를 개방한다.
$ sudo ufw allow 777
이제 container 내부에서 해야할 작업이 남아있다.
$ docker exec -it ubuntu_20_04 /bin/bash
docker container 의 내부로 진입했을 경우 apt update 를 해야 다른 모듈들을 설치할 수 있다.
아래 명령어를 컨테이너 내부에서 실행한다.
# apt update && apt install net-tools vim openssh-server ufw
# ufw allow ssh
vi /etc/ssh/sshd_config 파일을 수정해야한다.
# vi /etc/ssh/sshd_config
PermitRootLogin 부분을 yes 로 변경한다. (주석 #해제 및 yes로 변경)
## 컨테이너 root 계정 암호 설정
터미널에 다음 명령어를 쳐서 root계정의 암호를 설정한다
passwd root
-> 컨테이너 종료 후 다시시작하면 ssh가 자동으로 안 켜진다...
# service ssh start
# service ssh restart
putty 로 접속하는 서버의 ip 와 지정한 port(해당 포스트에서는 777) 를 입력해 접속 시도한다.
해당 container 도 ubuntu 환경이므로 다른 유저를 생성해서 접속할 수 있다.
이제 파일 전송을 위한 ftp를 설정하면 된다
'코딩교육 > 서버' 카테고리의 다른 글
목동코딩학원, 서버이전.설치작업( 리눅스, 우분투) 과정 (0) | 2023.03.14 |
---|---|
목동코딩학원, ubuntu 서버 이전작업 (0) | 2023.03.10 |
목동코딩학원, docker container에서 curl 사용하는 방법 (0) | 2023.03.09 |
목동코딩학원, curl error, "Fatal error: Uncaught Error: Call to undefined function curl_init()" 원인 (0) | 2023.03.09 |
목동코딩학원, Docker가 실행이 안될때.....결국 재부팅 (0) | 2023.03.08 |