## image 생성
- Dockerfile 작성
FROM ubuntu:16.04
WORKDIR /app
- 이미지 빌드
> docker build -t 이미지_이름 Dockerfile_경로
## container 실행
실행> docker run -it --name 컨테이너_이름 이미지_이름
-d : 데몬으로 실행
-p : 포트 바인딩 (ex. -p 80:80)
-it : 출력 표시
중지> docker stop [컨테이너_이름 | 컨테이너_ID]
시작> docker start [컨테이너_이름 | 컨테이너_ID]
## 실행중인 container 연결
> docker exec -it [컨테이너_이름 | 컨테이너_ID] bash
## cloud.docker.com 업로드
(public 무제한, private 1개 무료)
태그 달고 업로드
> docker login
> docker tag 이미지_이름 사용자_ID/레파지토리명:태그명
> docker push 사용자_ID/레파지토리명:태그명
이후 실행시 다운로드하여 실행 가능(ex. docker run -it 사용자_ID/레파지토리명:태그명)
## Services
여러 이미지를 구동시킴
https://docs.docker.com/get-started/part3/#understanding-services
docker-compose.yml 작성
# 기능 활성
> docker swarm init
# 디플로이
> docker stack deploy -c docker-compose.yml 서비스_이름
# 조회
> docker stack ps 서비스_이름
# 삭제
> docker stack rm getstartedlab
## Swarms
여러 머신에 Services 구동(클러스터)
https://docs.docker.com/get-started/part4/#create-a-cluster
hyper-v 관리자 > 가상 스위치 관리자 > "외부" 가상 스위치 만들기
이름 : myswitch
체크 : "관리 운영 체제에서 이 네트워크 어댑터를 공유할 수 있도록 허용(M)"
> docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm1
> docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm2
# 명령 실행시 docker swarm join 문이 출력됨
> docker-machine ssh myvm1 "docker swarm init"
# myvm2에 대해 docker swarm join 문 실행
> docker-machine ssh myvm2 "docker swarm join --token <token> <ip>:<port>"
# 설정 복사시 scp 가 없어서 에러 나는 경우
# C:\Program Files\Git\usr\bin 의 Path 등록하여 scp.exe 사용하도록 실행
> docker-machine scp docker-compose.yml myvm1:~
# 실행
> docker-machine ssh myvm1 "docker stack deploy -c docker-compose.yml getstartedlab"
# 조회
> docker-machine ssh myvm1 "docker stack ps getstartedlab"
## 명령어
# 모든 정지한 컨테이너 삭제
> docker container prune
# 모든 사용되지 않은 볼륨 삭제
> docker volume prune
# 모든 컨테이너로 사용되지 않는 이미지 삭제
> docker rm -f $ ( docker ps -a -q )
PS> docker rm -f @(docker ps -aq)
# 태그가 붙지 않은 이미지 삭제 (<none>:<none>)
> docker rmi $ ( docker images -f 'dangling = true' -q )
PS> docker rmi @( docker images -f "dangling = true" -q )
# 정지 컨테이너, 사용하지 않는 이미지/볼륨 일고라 삭제
> docker system prune
# 파일 복사
> docker cp 파일 컨테이너명:경로
# commit : dev 컨테이너를 dev:latest 에 커밋
> docker commit dev dev:latest
# export image
> docker save 이미지이름 > ./image.tar
# import image
> docker load < ./image.tar
# export container
> docker export 컨테이너명 > ./container.tar
# import container
> docker import ./container.tar
# docker 컨테이너 생성
> docker run -it -p 1980:1980 --name 컨테이너명 --security-opt seccomp=unconfined 이미지명:태그
'가지가지' 카테고리의 다른 글
hadoop 2.7.3 - ubuntu docker + compile + pseudo-distributed (0) | 2017.06.12 |
---|---|
hadoop 2.7.3 - maprduce eclipse 프로젝트 및 디버깅 (0) | 2017.06.07 |
hadoop 2.7.3 - 소스 개발환경 (windows, eclipse) (0) | 2017.06.05 |
hadoop 2.7.3 - windows 컴파일 (use visual studio 2017) (0) | 2017.06.05 |
scala + play 설치 (0) | 2017.02.06 |
redmine 서비스 여러개 띄우기 (0) | 2016.03.16 |
[redmine] redmine_ckeditor 1.1.3 사용시 이미지 업로드 문제 (0) | 2016.03.10 |
redmine plugin Unable to autoload ... define it (0) | 2016.03.07 |