1. docker 이미지 생성 및 컨테이너 포트 열기
1) docker images 확인하기
docker images
도커 이미지가 잘 생성되었는지를 확인하고, 이미지id를 확인하여 따로 복사해둔다.
2) 실행중인 컨테이너 확인하기
docker run -i -t -p [host port]:22 --name [컨테이너명] nvidia/cuda /bin/bash
- -i : 이 플래그는 interactive를 의미하고, 이는 터미널에 연결하여 컨테이너의 명령줄과 상호 작용할 수 있도록 한다. 컨테이너 내부에서 실행되는 명령이나 스크립트에 입력을 제공한다.
- -t : "pseudo-terminal"을 나타낸다. 터미널 장치를 할당하여 터미널에서 컨테이너의 명령 프롬프트와 터미널 출력을 볼 수 있다.
- -d : ‘background’를 의미하는 용어이다. 이는 컨테이너를 run시키면 해당로그가 바로 보이게 되는데, 이렇게가 아닌 백그라운드에서 돌리면 다른 작업을 혼용해서 할 수 있기에 사용하는 플래그이다.
2. SSH서버 셋팅하기
1) apt-get update & install
/bin/bash
로 하여 쉘로 들어왔으면 아래의 명령어를 쳐서 따라해준다.
apt-get update
update를 해줘야 내가 필요한 유틸리티를 사용할 수 있기 때문에 update를 해준다.
apt-get install vim -y
editor는 여러 개 있으므로 그 중에 내가 편한 에디터를 선택해서 설치해준다. 그리고 -y옵션을 주므로써 중간중간에 설치할 것인지 말 것인지 귀찮게 설정 안 해줘도 된다.
apt-get install openssh-server -y
ssh접속을 위한 유틸리티이다.
2) ssh 접속을 위한 셋팅하기
vim /etc/ssh/sshd_config
파일에 있는 permitRootLogin을 yes로 바꿔준다. 이로써 root 사용자 로그인을 허용한다.
/etc/init.d/sshd restart
/etc/init.d/ssh restart
둘 중 하나의 명령어를 쳐서 변경 사항을 반영되도록 해준다.
root로 접속해도 되지만 내 경우 root 접속이 잘 안되서 유저를 만들어 등록해줬다.
2-1) root가 아닌 유저로 로그인하기
adduser <유저명>
내가 원하는 유저명을 등록하면 이에 id와 password를 등록하면 된다.
usermod -aG sudo <유저명>
유저명에 따른 root권한도 부여한다.
2-2) root로 로그인하기
passwd root
루트로 로그인하려면 root의 패스워드를 등록해줘야 한다. 컨테이너 처음 접속할 때는 이것이 안 되므로 root에 대한 비밀번호를 등록한다.
3. ssh 서비스 시작하기
service ssh start
ssh 서비스를 시작하여 외부에서 ssh 접속을 해주도록 한다.
ssh -l <유저명> -p <포트번호> <ip번호>
ssh를 통하여 접속하고자 하는 ip번호와 포트번호를 입력하여 접속한다.
내 경우 filezilla를 통하여 외부 접속을 하고자 한 것이어서 filezilla에서 제대로 접속되는지 확인해준다. 파일질라에서 프로토콜을 SFTP로 설정하고 위에서 설정한 ip번호와 포트번호, 유저명, 유저명에 따른 비밀번호를 넣어주고 connect 되는지 확인한다.
추가) 자동화
apt-get install ssh -y
ssh 사용을 위하여 설치해준다.
cd ~/
ssh-keygen -t rsa -P '' -f ~/.ssh/id_dsa
최상위 폴더로 가서 ssh를 설치해준다. ssh에 대한 host dsa key를 설치해준다. 그러면 막 이상한 문자 써지면서 설치된다.
mkdir /var/run/sshd
컨테이너 실행시 sshd가 자동으로 실행되도록 ~/.bashrc에 내용을 추가해준다.
nano ~/.bashrc
위의 명령어를 쳐서 아래의 내용을 추가해준다.
# autorun
/usr/sbin/sshd
source ~/.bashrc 변경 사항을 적용해준다.
vim /etc/ssh/sshd_config
위의 명령어를 쳐서 아래의 내용을 적어주면 끝난다.
Subsystem sftp internal-sftp
👇🏻 참고사이트
https://hyeonnii.tistory.com/321
https://willbesoon.tistory.com/37
https://blog.naver.com/kgr2626/222164462187
https://veneas.tistory.com/entry/Linux-리눅스-ssh-동작-방식-설치-및-사용법
1. docker 이미지 생성 및 컨테이너 포트 열기
1) docker images 확인하기
docker images
도커 이미지가 잘 생성되었는지를 확인하고, 이미지id를 확인하여 따로 복사해둔다.
2) 실행중인 컨테이너 확인하기
docker run -i -t -p [host port]:22 --name [컨테이너명] nvidia/cuda /bin/bash
- -i : 이 플래그는 interactive를 의미하고, 이는 터미널에 연결하여 컨테이너의 명령줄과 상호 작용할 수 있도록 한다. 컨테이너 내부에서 실행되는 명령이나 스크립트에 입력을 제공한다.
- -t : "pseudo-terminal"을 나타낸다. 터미널 장치를 할당하여 터미널에서 컨테이너의 명령 프롬프트와 터미널 출력을 볼 수 있다.
- -d : ‘background’를 의미하는 용어이다. 이는 컨테이너를 run시키면 해당로그가 바로 보이게 되는데, 이렇게가 아닌 백그라운드에서 돌리면 다른 작업을 혼용해서 할 수 있기에 사용하는 플래그이다.
2. SSH서버 셋팅하기
1) apt-get update & install
/bin/bash
로 하여 쉘로 들어왔으면 아래의 명령어를 쳐서 따라해준다.
apt-get update
update를 해줘야 내가 필요한 유틸리티를 사용할 수 있기 때문에 update를 해준다.
apt-get install vim -y
editor는 여러 개 있으므로 그 중에 내가 편한 에디터를 선택해서 설치해준다. 그리고 -y옵션을 주므로써 중간중간에 설치할 것인지 말 것인지 귀찮게 설정 안 해줘도 된다.
apt-get install openssh-server -y
ssh접속을 위한 유틸리티이다.
2) ssh 접속을 위한 셋팅하기
vim /etc/ssh/sshd_config
파일에 있는 permitRootLogin을 yes로 바꿔준다. 이로써 root 사용자 로그인을 허용한다.
/etc/init.d/sshd restart
/etc/init.d/ssh restart
둘 중 하나의 명령어를 쳐서 변경 사항을 반영되도록 해준다.
root로 접속해도 되지만 내 경우 root 접속이 잘 안되서 유저를 만들어 등록해줬다.
2-1) root가 아닌 유저로 로그인하기
adduser <유저명>
내가 원하는 유저명을 등록하면 이에 id와 password를 등록하면 된다.
usermod -aG sudo <유저명>
유저명에 따른 root권한도 부여한다.
2-2) root로 로그인하기
passwd root
루트로 로그인하려면 root의 패스워드를 등록해줘야 한다. 컨테이너 처음 접속할 때는 이것이 안 되므로 root에 대한 비밀번호를 등록한다.
3. ssh 서비스 시작하기
service ssh start
ssh 서비스를 시작하여 외부에서 ssh 접속을 해주도록 한다.
ssh -l <유저명> -p <포트번호> <ip번호>
ssh를 통하여 접속하고자 하는 ip번호와 포트번호를 입력하여 접속한다.
내 경우 filezilla를 통하여 외부 접속을 하고자 한 것이어서 filezilla에서 제대로 접속되는지 확인해준다. 파일질라에서 프로토콜을 SFTP로 설정하고 위에서 설정한 ip번호와 포트번호, 유저명, 유저명에 따른 비밀번호를 넣어주고 connect 되는지 확인한다.
추가) 자동화
apt-get install ssh -y
ssh 사용을 위하여 설치해준다.
cd ~/
ssh-keygen -t rsa -P '' -f ~/.ssh/id_dsa
최상위 폴더로 가서 ssh를 설치해준다. ssh에 대한 host dsa key를 설치해준다. 그러면 막 이상한 문자 써지면서 설치된다.
mkdir /var/run/sshd
컨테이너 실행시 sshd가 자동으로 실행되도록 ~/.bashrc에 내용을 추가해준다.
nano ~/.bashrc
위의 명령어를 쳐서 아래의 내용을 추가해준다.
# autorun
/usr/sbin/sshd
source ~/.bashrc 변경 사항을 적용해준다.
vim /etc/ssh/sshd_config
위의 명령어를 쳐서 아래의 내용을 적어주면 끝난다.
Subsystem sftp internal-sftp
👇🏻 참고사이트
https://hyeonnii.tistory.com/321
https://willbesoon.tistory.com/37
https://blog.naver.com/kgr2626/222164462187
https://veneas.tistory.com/entry/Linux-리눅스-ssh-동작-방식-설치-및-사용법