Docker? 고래와 난다?

Kay·2020년 4월 5일
0
post-custom-banner


이미지출처 : https://medium.com/withj-kr/docker-%EB%B6%80%ED%84%B0-kubernetes-%EA%B9%8C%EC%A7%80-4-docker-hub%EC%97%90-%EB%A0%88%ED%8F%AC%EC%A7%80%ED%86%A0%EB%A6%AC-%EC%97%85%EB%A1%9C%EB%93%9C%ED%95%98%EA%B8%B0-d6eee0d0ab66

Docker?

docker는 container 가상화 기술의 대명사인 회사!
더 자세한 내용은 아래 블로그 참고!
https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html

Docker 설치하기 (Mac OS, Ubuntu)

For Mac OS :
여기에서 다운 받으면 끝😊 사이트 접속한 김에 회원가입도 해두면 좋다.
https://www.docker.com/get-started

For Ubuntu :
아래 명령어를 한 줄씩 입력한다!

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
apt-cache policy docker-ce
sudo apt install docker-ce

잘 설치 되었는지 확인하고 싶을 때는, docker version을 입력해보자.
에러가 뜨지 않고 client 와 server의 버전 정보가 출력되면 잘 설치된 것!
(혹시 server 정보가 표시되지 않고 daemon 어쩌구저쩌구 하며 에러가 발생하는 경우에는, 앞에 명령어에 sudo를 붙여 실행해 볼 것.)

Docker login 하기

docker login 명령어를 입력한 뒤 유저 네임과 패스워드를 차례로 입력하면 된다.

Dockerfile로 이미지 빌드하기

준비물 : gunicorin이 포함된 requirements.txt

gunicorn은 pip install gunicorn 명령어로 설치 할 수 있으며,
requirements.txt 를 만드는 방법은 pip freeze 포스팅을 참고하여, name을 requirements로 만들면 된다.

Docker로 배포할 프로젝트의 manage.py가 있는 디렉토리에 requirements.txt를 준비한 뒤,
vi Dockerfile로 확장자가 없는 Dockerfile을 만든다.
아래 내용을 넣어주고 저장하면 끝. (제일 마지막줄 '프로젝트 이름' 배포할 프로젝트 이름으로 변경해야하며, 주석처리된 부분은 삭제해도 무방하다.)

#./Dockerfile
FROM python:3 
#기반이 될 이미지
    
WORKDIR /usr/src/app 
# 작업디렉토리(default)설정
    
## Install packages
COPY requirements.txt ./ 
#현재 패키지 설치 정보를 도커 이미지에 복사

RUN pip install -r requirements.txt 
#설치정보를 읽어 들여서 패키지를 설치
    
## Copy all src files
COPY . . 
#현재경로에 존재하는 모든 소스파일을 이미지에 복사
    
    
## Run the application on the port 8080
EXPOSE 8000   
#8000번 포트를 외부에 개방하도록 설정
    
    
#CMD ["python", "./setup.py", "runserver", "--host=0.0.0.0", "-p 8080"]
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "'프로젝트이름'.wsgi:application"] 
#gunicorn을 사용해서 서버를 실행

마지막으로 아래 명령어를 입력하면 작성한 Dockerfile을 사용해 이미지가 빌드된다.
❗️Ubuntu에서는 모든 명령어 앞에 sudo를 붙이는 것을 잊지 말자.

docker build -t '가입한 도커 계정 이름'/'프로젝트 이름(이미지 이름)':'버전' .
ex) docker build -t kay/my_project:0.1 .

버전 다음에 찍는 점 (.)은 현재 디렉토리에 있는 Dockerfile을 사용하겠다는 의미.

빌드한 Docker 이미지 실행하기

sudo docker run --name '컨테이너 이름' -d(지속적으로 실행하기 위한 옵션) -p(포트포워딩 로컬:도커)8000:8000 kay/my_project:0.1
ex)sudo docker run --name my_project01 -d -p 8000:8000 kay/my_project:0.1

유용한 Docker 명령어 모음

docker ps 현재 실행되고 있는 컨테이너 목록
docker ps -a 종료된 컨테이너 까지 포함한 모든 컨테이너 목록 확인
docker stop 컨테이너 이름 실행 중인 컨테이너를 중단
docker start 컨테이너 이름중단 된 컨테이너 다시 실행
docker rm 컨테이너 이름 불필요한 컨테이너를 삭제

Docker repository에 이미지 푸시하기

Docker에도 Git의 remote repository와 같은 개념의 원격 저장소가 존재하여 이미지를 보관할 수 있다.
아래 명령어로 푸시하면 끝.

단, 푸시한 이미지는 퍼블릭에 공개되며 기본계정에서는 프라이빗 레포지토리를 하나만 가질 수 있으니 주의!

docker push '가입한 도커 계정 이름'/'프로젝트 이름(이미지 이름)':'버전'
ex) docker push kay/my_project:0.1

참고 :
Wecode Docker 세션 자료
https://velog.io/@devmin/Docker-deployment
https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html
https://subicura.com/2017/01/19/docker-guide-for-beginners-2.html
https://subicura.com/2017/02/10/docker-guide-for-beginners-create-image-and-deploy.html

profile
new blog✨ https://kay-log.tistory.com/
post-custom-banner

0개의 댓글