Patrick's 데이터 세상
Docker 본문
본문
Docker는 컨테이너 기반의 오픈소스 가상화 플랫폼, 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼입니다.
Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있습니다.
Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행될 것임을 확신할 수 있습니다.
AWS에서 Docker를 실행하면 개발자와 관리자가 어떠한 규모에서든 매우 안정적이며 저렴한 방식으로 애플리케이션을 구축, 제공 및 실행할 수 있습니다.
컨테이너
www.docker.com/resources/what-container
어플리케이션을 구동하는데 필요한 의존은 컨테이너 안에 포함됩니다.
한 컨테이너에 포함된 의존은 다른 컨테이너에 영향을 주지 않습니다.
격리된 환경에서 돌아가므로 한 컨테이너의 어플리케이션에 문제가 발생하더라도 OS나 다른 컨테이너에 주는 영향을 최소화할 수 있습니다.
컨테이너
Command
* docker upgrade
sudo apt-get upgrade docker-engine
* docker 이미지 다운 받기
docker pull kaixhin/cuda-theano
* docker 이미지 생성
docker build --tag elastic .
ex) docker file이 들어있는 폴더에 들어간 다음 다음을 입력한다. (sudo 계정으로 해야만 되는듯)
docker build --rm -t imcomking/bi_tensorflow -f Dockerfile_tensorflow .
docker build --rm -t imcomking/ttsk -f Dockerfile_ttsk .
* docker 기본 명령어
docker info
- docker 가 설치된 환경이나 남은 용량 등을 확인 할 수 있다.
docker -v
- 버전 확인
docker inspect 컨테이너ID
- 해당 컨테이너의 정보 조사(label 등)
# label : 도커에 일종의 태그를 커스텀하게 달 수 있는 기능. 이것을 이용해 ps 할 때 filtering을 하거나 할 수 있음.
docker -H 주소 ps
- 해당 ip의 container를 확인
docker logs --tail 100 ContainerID
- 해당 컨테이너의 로그 출력
exit
- 종료
* docker images 확인
docker images
* docker 컨테이너 생성
docker create -i -t --name mycentos centos:7
ex)
* 생성된 컨테이너 재실행 및 연결
docker start tf_shpark
docker attach tf_shpark
docker exec -it [컨테이너명] /bin/bash
* 생성된 컨테이너 내부에서 커맨드 실행만 하기
docker exec -it -u root [컨테이너명] \
/bin/sh -c "mysqldump -u root -p[패스워드]--where=\"create_date >= [조건]\" --single-transaction [데이터베이스명] [테이블명] > /[테이블명].sql"
* 재부팅 시 컨테이너 자동으로 시작되도록 설정
sudo docker update --restart always [컨테이너명]
참고 사이트