이번 포스트는 지난 포스트인 "[Linux] Docker의 Dockerfile 작성하여 Docker image 만들기"에 이어 image를 다른 컴퓨터로 배포 하는 과정과 image를 통해 구동시킨 container에 외부접속하는 과정을 정리해보았습니다.
2021.12.22 - [OS(운영체제)/Linux] - [Linux] Docker의 Dockerfile 작성하여 Docker image 만들기
01. Docker 소프트웨어 배포
본 포스트에서는 앞서 제작한 Dockerfile을 통해 "flask를 이용한 게시판 프로젝트" 를 배포하고자 합니다.
Ubuntu나 다른 OS 환경에서 CentOS7에서 사용할 수 있도록 만들어진 프로젝트의 어플리케이션을 배포할 때 아래와 같습니다.
01. Dockerfile을 통해 만든 Docker image를 *.tar 파일로 만든다.
일종의 스냅샷처럼 현재 docker image의 환경과 설정을 그대로 저장하는 과정입니다.
docker save [저장할 도커 이미지:버전] -o Name.tar
02. 설치하고자 하는 OS 환경에 docker를 사용할 수 있도록 설치한다.
03. 설치할 docker image.tar 파일을 옴기고 load 한다.
docker load -i Name.tar
04. docker image 확인한다.
docker image ls
주의 사항: 간혹, load된 docker image의 이름과 tag가 <none>으로 표기 될 수 있습니다.
꼭 확인하고, docker tag를 통해 변경하세요!!
05. docker image를 통해 docker container 생성하기
기본 사용법 중 docker image 실행하기 참고하세요.
2021.12.16 - [OS(운영체제)/Linux] - [Linux] Docker 주로 사용하는 명령어 모음!!
02. Docker에 외부 접속 하기
docker 이미지를 load 하고, docker 이미지를 통해 container을 실행할 수 있었습니다.
flask를 이용한 게시판 프로젝트는 외부에서 접속하여 게시판을 사용 할 수 있도록 해야하므로 container를 생성할때, 외부접속과 백그라운드 실행을 해두어야 할것입니다.
01. 포트 포워딩 하기
일단, 외부에서 접속이 가능하도록 외부 ip와 포트번호를 넘겨 받아야합니다. 아래의 링크 참조해주세요.
2021.12.23 - [네트워크] - [네트워크] 외부접속을 위한 포트포워드 하기
02. docker container 외부 접속 및 백그라운드로 실행
포트 포워드를 통해 외부 ip와 포트번호를 알았으니, 이제 docker container 생성시 이를 적용 해야합니다.
docker run -d -it --name test -p [ip주소]:[외부포트번호]:[docker 내부포트번호] dockerimage:version
docker run에서 "-d" 옵션은 백그라운드 실행 "-p" 는 외부접속을 위한 옵션입니다.
해당 예시의 명령어의 마지막에 "flask run"은 프로젝트의 실행을 위한 명령어 이며, dockerifle 생성시 CMD 명령어 대신에 실행되는 부분입니다.
그리고 해당 게시판을 외부에서 열 수 있고, 서버에서는 사진과 같이 외부접속과 행동을 확인 할 수 있습니다.
'OS(운영체제) > Linux' 카테고리의 다른 글
[Linux] Docker의 Dockerfile 작성하여 Docker image 만들기 (0) | 2021.12.22 |
---|---|
[Linux] Docker 주로 사용하는 명령어 모음!! (0) | 2021.12.16 |
[Linux] Docker에 대해 알아보자! (0) | 2021.12.13 |
[쉘스크립트] 사용자 입력 받기 (read/case) (0) | 2021.07.14 |
[Linux] CentOS 7 설치 (0) | 2021.02.23 |