docker 로 ubuntu container 를 생성한 뒤 마치 독립된 서버처럼 putty 를 통해 접속하는 방법을 기록한다.
우선 docker container 에 접속하는 서버, 즉 docker 가 설치되는 서버가 필요하다.
서버에 docker 가 설치된 이후의 과정을 기록한다.
docker pull ubuntu:20.04 를 통해 ubuntu:20.04 image 를 pull 받는다.
pull 이 완료가 되면
$ docker images
상기 커맨드를 통해 ubuntu:20.04 images 가 제대로 다운로드 되었음을 확인할 수 있다.
이제 이 image 로 container 를 생성할 것이다.
docker run -dit -p 32777:22 --privileged=true --name "ubuntu_20_04" ubuntu:20.04
상기 명령어에서
상기 명령어대로 입력시 ubuntu:20.04 image 를 통해 container 가 생성되며, 접속하는 서버 32777 번 포트로 진입시 해당 컨테이너의 22 번 포트로 포트포워딩 되도록 지정된다.
사전 작업으로 접속하는 서버의 포트 또한 개방해놓아야 외부에서 putty 로 접속 할 수 있다.
접속하는 서버에서 하기와 같은 명령을 통해 포트를 개방한다.
$ sudo ufw allow 32777
이제 container 내부에서 해야할 작업이 남아있다.
$ docker exec -it ubuntu_20_04 /bin/bash
상기 명령어를 통해 docker container 의 내부로 진입할 수 있다.
처음 생성했을 경우 apt update 를 해주어야 다른 모듈들을 설치할 수 있다.
하기의 코드를 실행한다.
# apt update && apt install net-tools vim openssh-server ufw
apt update 후 net-tools, vim, openssh-server, ufw 를 설치한다.
설치 중 나오는 프롬프트에는 알맞게 입력해준다.
설치가 끝나면 우선 ufw 를 통해 ssh 를 allow 해준다.
# ufw allow ssh
우선 putty 를 통해 root 로 진입 시도를 해볼 것이기 때문에
/etc/ssh/sshd_config 파일을 수정해야한다.
# vi /etc/ssh/sshd_config
상기 명령을 통해 진입 후, PermitRootLogin 부분을 yes 로 변경한다. (주석 해제 및 yes 로 변경)
service ssh start 혹은 이미 ssh 를 시작한 경우라면 service ssh restart 를 통해 ssh 를 시작한다.
# service ssh start
# service ssh restart
putty 로 접속하는 서버의 ip 와 지정한 port(해당 포스트에서는 32777) 를 입력해 접속 시도한다.
해당 container 도 ubuntu 환경이므로 다른 유저를 생성해서 접속할 수 있다.