SSH 서버에 Dockerfile 실행하기 (Docker-compose)

파이·2022년 1월 3일
0

할당받은 IP 주소에 Dockerfile을 docker-compose.yml을 통해 실행한 실습입니다.

0. Docker image 저장하기

도커 허브를 이용할 수 있지만 docker save를 통해 저장, 파일을 옮겨주기로 했다.

docker save -o front-img.tar front-img
//도커 / save / 아웃풋방식지정 / 만들파일이름 / save 대상인 이미지파일 

save 할 때 -o (stdout) 출력방식을 지정하지 않으면 오류가 나니, 꼭 옵션 붙이자.
이 방법 외에도 export / import 하는 방식도 있다.
이렇게 옮길 파일들과 컴포즈를 준비 해 주자.



1. FileZila 설치 및 준비하기

파일질라는 서버에 파일을 전송하기 위해 사용하는 FTP(File Transfer Protocol), SFTP (SSH FTP) 이다.
쉽게말해 서버에 파일을 전송해 주는 프로그램이라는 뜻.
아무튼 설치해보자.

검색해서 쉽게 다운로드 가능하다.

다운 후 실행하고

파일의 사이트 관리자를 눌러 뜨는 창에서 아래 New Site를 누르면,

위와 같은 창을 볼 수 있다.
나는 SSH 서버에 SFTP 방식으로 전송하기 때문에 포트를 22번을 지정했지만,
FTP 방식이라면 포트번호를 21번으로 해주면 된다.

나머지 호스트는 파일을 보내거나 수정할 IP주소를,
사용자와 비밀번호는 각각 지정된 유저로 입력 후 연결을 눌러주면 된다.


성공적으로 연결되었다면 왼쪽 내 컴퓨터에서 파일을 찾아 오른쪽으로 옮겨주면 끝이다.
(현재 사진은 연결전이나, 연결이 되었다면 해당 ip로 접속한 서버의 디렉토리를 확인 할 수 있다.)

2. PuTTY로 연결한 ip의 권한과 패키지 설치하기.

PuTTY는 SSH에 접속을 도와주는 클라이언트 프로그램이다.

설치와 이용방법은 인터넷에 검색시 확인이 가능합니다 :)

일단 내가 해야 할 환경에는 Docker는 설치되어 있으나 권한이 없는 상태였다.
때문에 권한을 줄 그룹 생성과 유저를 넣어주면 된다.

sudo groupadd docker 

권한을 추가할 docker 그룹을 생성해준다.
이미 존재할 수도 있는데, 그런 경우 생략해주자 :) (난 이미 그룹은 생성되어 있었다.)

sudo usermod -aG docker $USER
sudo usermod [append group추가옵션] [추가할 권한폴더] [현재 접속한 유저이름]

docker라는 그룹에 사용자를 추가해주는 명령어다.
각 부분은 저렇게 구성되어 있으니 참고하면 된다.

 mkdir -p ~/.docker/cli-plugins/
 curl -SL https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose

도커 컴포즈는 해당 명령어를 통해 설치후,

chmod +x /usr/local/bin/compose-switch

도커 컴포즈 폴더에 권한을 주면 된다.

잘 설치 되었다면, 버전을 확인 할 수 있다.
(다만, 내가 윈도우와 우분투에 설치한 버전은 똑같은 2.2.2 인데 docker-compose 라는 명령어를 쓰고, 이번에 설치한 부분은 docker compose로, - 없이 사용한다. 왜 이런 차이가 있을까?)

3. 도커파일 load하여 실행하기

이제는 어느 환경이나 동일하게 실행하면 된다.

docker load -i front-img.tar
[도커] [로드] [stdin 방식으로] front-img.tar를 압축해제할것

여기도 꼭 -i 명령어를 통해 로드해주고

docker compose up

실행하면 잘 된다.

현재 compose 실행시, 미리 container가 실행중인 상태가 아니라면 웹이 제대로 실행되지 않는 오류가 있습니다. 해결중입니다.

profile
기록

0개의 댓글