Docker 실행 방법과 포트 포워딩에 대하여...
가상머신의 문제점인 로딩, 부팅 속도의 문제를 해결하기 위한 Docker, 가상 머신과 비슷하지만 가상머신보다 훨씬 빠르고, 자원을 효율적으로 사용하는 프로그램이다. 오늘은 이 Docker와 Docker의 포트 포워딩에 대해 배웠고 실습해 보았다.
Docker란 Go언어로 작성된 리눅스 컨테이너 기반으로하는 오픈소스 가상화 플랫폼이다.
노드나 Mysql 등 프로그램이 이미 설치된 Docker(Dockerfile)은 공유가 가능해서 한 번만 Dockerfile 을 만들면 누구나 한 번에 개발 환경을 공유 받을 수 있다.
FROM
COPY
WORKDIR
CMD
FROM 리눅스:최신버전
: 리눅스의 최신 버전이 깔린 컴퓨터가 한대 만들어진다.
FROM node:14
: node, npm, yarn이 모두 설치된 리눅스 컴퓨터가 하나 생기게 된다.
COPY ./index.js /myfolder/
: index.js
파일에 있는 모든 소스 코드를 가상 컴퓨터 안의 myfolder
폴더로 복사하여 해당 폴더에 저장한다.
WORKDIR /myfolder/
가상 컴퓨터가 만들어지면 명령어를 실행할 작업 폴더를 지정해준다.
CMD node index.js
명령어를 통해서 복사하여 저장된 파일을 실행해 준다.
docker build .
docker images
Port-Forwarding
docker build .
: Doclerfile을 하나로 묶여진 이미지로 만든다.
docker images
: 생성된 이미지 확인
docker run -p num:num 이미지 아이디
: 포트 번호와 포워드 번호를 지정해준다.
docker run 이미지ID
docker ps
docker exec -it 컨테이너 아이디 /bin/bash
ls
mkdir myfolder
exit
docker stop 컨테이너 아이디
docker run 이미지ID
: 이미지 실행 (컨테이너 생성)
docker ps
: 프로세스 목록 확인 (컨테이너 아이디 확인 가능)
docker exec -it 컨테이너 아이디 /bin/bash
: 컨테이너 내부에 접속
ls
컨테이너 내부 리스트 보기
mkdir myfolder
: 컨테이너에 myfolder 폴더 만들기
exit
: 컨테이너 나가기
docker stop 컨테이너 아이디
: 컨테이너 종료하기
Docker ps -a
Docker rm 컨테이너 아이디
docker ps -a -q
Docker rmdocker ps -a -q
Docker images -q
Docker rmidocker images -q
docker system prune -a
Docker ps -a
: 누적된 모든 이미지 데이터 가져오기
Docker rm 'docker ps -a -q'
: 모든 값 삭제(백틱으로 감싸줌)
docker ps -a -q
: 누적된 모든 데이터 중 컨테이너 아이디만 가져오기
docker rm 컨테이너 아이디
: 해당 컨테이너 삭제
docker images -q
: 누적된 모든 이미지 아이디
docker rmi 'docker images -q'
: 누적된 모든 이지미 삭제(백틱으로 감싸줌)
docker system prune -a
: 모든값 한번에 삭제