본문 바로가기

AWS

AWS Ubuntu에서 Docker 설정, 이미지 파일 생성 및 실행, 공유

Mac Terminal에서 AWS ubuntu 접속하기

pem 키 권한 부여해야 사용 가능. chmod 400 (내 키).pem
이후 다음과 같이 입력하면 접속할 수 있다.
ssh -i (키페어 이름) ubuntu@(aws주소) 


이미지 생성 및 배포

# docker build -t <dockerhub 아이디>/<프로젝트이름> <dockerfile 경로> : Dockerfile로 이미지를 생성
# docker login : 도커허브 아이디,비밀번호로 로그인
# docker push 이미지이름:태그(버전)


컨테이너 및 이미지 삭제

지정 컨테이너 중지, 삭제, 이미지 삭제

// 컨테이너 정지
docker stop (컨테이너 해쉬)

// 컨테이너 삭제
docker rm (컨테이너 해쉬)

// 이미지 삭제
docker rmi (이미지 해쉬)

모든 도커 컨테이너 중지

docker stop $(docker ps -a -q)


모든 도커 컨테이너 삭제

 docker rm $(docker ps -a -q)


모든 도커 이미지 삭제

docker rmi $(docker images -q) 

이미지 생성 예시(Build 완료된 React Survey Page)

1. Survey 메인 폴더 안에.dockerignore파일을 만들어, node_modules를 내용에 입력해 이미지 파일에 업로드 시 제외시킨다.(.gitignore와 비슷하다)

 

2. Dockerfile를 상위 폴더에서 만든다. 메모장, Vim Editor 등 어떤 곳이든 상관 없다.(.txt 안 되도록 주의!!)

FROM node:latest
WORKDIR /app
COPY (이미징 하려는 폴더 이름) ./
RUN npm install
EXPOSE 4000(다른 포트로 설정했으면 해당 포트번호)
CMD ["node", "(서버 돌리는 js파일).js"]

 

3. Docker Image를 생성한다.

docker build -t (아이디)/(이미지명) .

 

4. docker images를 입력해 만들어졌는지 확인한다.

 

5. docker run (이미지명)으로 이미지가 돌아가는지 확인한다.
** 특정 포트를 포워딩해야 밖에서 접속할 수 있으므로,

docker run -p (내가 지정한 포트):(내가 지정한 포트) (이미지 해쉬) 이런 식으로 접속한다.
↓예시
docker run -p 4000:4000 -d --rm b3f1f38ea3fc


-d는 Background에서 실행하는 것이며, --rm은 종료 뒤 컨테이너를 자동으로 삭제해준다.
여기서도 안되면 aws의 보안 규칙을 확인해본다.


DockerHub에 올리고 공유하기

  1. docker login으로 DockerHub 아이디와 비번 입력하면 접속된다.
  2. docker images로 만들어진 이미지 저장소와 TAG를 확인한다.
  3. docker push (아이디)/(이미지 저장소 이름):(TAG)로 로컬에 있는 이미지를 DockerHub에 저장한다.
  4. DockerHub 사이트에 보면, 잘 저장되어 있는 것을 확인할 수 있다.
  5. 다른 컴퓨터에서 다음과 같은 방식으로 실행하면 Docker image를 자동으로 받아 실행한다.
docker run -p (지정 포트):(지정 포트) (상대방 아이디/이미지 이름)
↓예시
docker run -p 4000:4000 -d --rm chaarles/survey

여기서 다른 컴퓨터에서 내 프로젝트가 잘 실행되면 완성!