Docker Orientation, Container
도커란?
도커는 개발자, 시스템관리자를 위한 플랫폼이다. 애플리케이션을 컨테이너를 사용해 개발하고 배포할 수 있는 시스템.
컨테이너?
컨테이너는 이미지를 실행한 런타임 인스턴스
이미지?
이미지는 실행 가능한 패키지.
https://blog.hanumoka.net/2018/04/28/docker-20180428-windows10pro-install-docker/
도커의 구성
하이라키의 맨아래는 컨테이너이고 그 위는 서비스 그위에는 스택이 있다,스택
- 서비스들간 어떻게 동작해야 하는지 (yml 파일의미)서비스
- 어떻게 컨테이너들이 프로덕트에서 동작하는지 정의 (yml안에서 정의됨 )컨테이너
- 이미지를 실행한 런타임 인스턴스
과거엔 파이선을 시작할때 환경을 설치하는것 부터 시작했다. 이를 위해 로컬에 완벽한 환경을 세팅했어야헀다.
도커는 포터블한 파이썬 이미지를 가져와 빌드를 가능하게 했다. 이는 도커 파일로 정의한다.
도커파일은 컨테이너 안에 있는 파일들을 어떻게 구성해야하는지에 정의하는것이다. 네트워크 환경, 디스크 드라이브 등.
도커파일을 한번 세팅해서 빌드하면 어디서 하든 동일하게 동작한다.
https://docs.docker.com/get-started 를 참고하여 진행
도커 이미지 빌드 및 컨테이너 실행.
한 디렉토리에 app.py , Dockerfile, requirements.txt 를 만들고
docker build –tag=friendlyhello .
를 입력하여 이미지를 빌드한다.
docker image ls
를 입력하여 확인가능
docker run -p 4000:80 friendlyhello
를 입력하여 파이썬은 80번을 통해 서비스하고 로컬에서는 4000을 통해 접속할 수 있게된다.
http://localhost:4000
를 입력하여 접속하여 보자
docker run -d -p 4000:80 friendlyhello
detacth모드로 실행하는 것이다.
docker container ls
현재 돌아가고 있는 컨테이너를 확인할 수 있다.
docker container stop 1fa4ab2cf395
를 입력하여 돌아가고 있는 컨테이너를 중지시킬 수 있다.
docker container ls
를 입력하여 돌아가고 있는 컨테이너 확인
이미지 publish
docker login
을 통해 로그인
docker tag friendlyhello tkdgjs1501/get-started:part2
(docker tag image username/repository:tag) 형태
를 통해 도커 태그를 생성한다.
docker image ls
태그된 이미지 확인
docker push tkdgjs1501/get-started:part2
(docker push username/repository:tag) 형태
를 통해 push 진행
컨테이너, 이미지 제거.
docker container rm
docker image rm
원격에서 레파지토리에서 pull받고 image run하기
docker run -p 4000:80 tkdgjs1501/get-started:part2
(docker run -p 4000:80 username/repository:tag) 형태