도커(Docker)에서 자주 사용하는 명령어 노트

Apr 23, 2017

Docker를 사용하면서 자주 사용하는 내용을 정리했다.

docker-machine 커맨드

# 머신 시작하기
docker-machine start MachineName

# 환경 변수 지정
eval "$(docker-machine env MachineName)"

# 머신 업그레이드
docker-machine upgrade MACHINE_NAME

docker 커맨드

# Dockerfile로 빌드하기
docker build -t ImageName .

# 이미지를 컨테이너로 만들기
docker run \
    --detach=true \
    --privileged=false \
    --interactive=true  \
    --tty=true \
    --publish=80:80 \
    --volume=`pwd`:/myvol \
    --name=ContainerName \
    --entrypoint=/bin/bash \
    --add-host="gitlab:192.168.99.100" \
    ImageName

# 컨테이너 커맨드 실행
docker exec -i -t ContainerName /bin/sh

# 이미지 리스트
docker images

# 실행 중인 컨테이너 리스트
docker ps

# 모든 컨테이너 리스트
docker ps -a

# 컨테이너 삭제하기
docker rm ContainerName

# 이미지 삭제하기
docker rmi ImageName

# 태그로 이미지 삭제하기
docker rmi ImageName:Tag

# 컨테이너를 이미지로 저장
docker commit Container ImageName:TagName

Dockerfile 사용 예제

# 이미지 가져오기
FROM centos:6.6

# 파일을 복사
COPY FILE_NAME /CONTAINER_PATH

# 커맨드 실행
RUN yum install -y gcc

# 작업 디렉터리
WORKDIR /tmp

# --entrypoint으로 이 설정을 오버라이드 할 수 있음.
ENTRYPOINT ["/usr/local/bin/gitlab-startup.sh"]

맥에서 80 포트로 접근 안 될 경우

가상 아이피를 통해 접근한다.

# 가상 아이피 확인
docker-machine ip default
192.168.99.100

# 가상 아이피로 접근
curl -XGET http://192.168.99.100

또는 포트 포워딩을 사용한다.

우선 Virtualbox에서 8000 -> 8000으로 포트 포워딩을 설정한다. 다음 커맨드를 입력한다.

# SSH 포트 포워딩 사용
sudo ssh user_id@localhost -L \*:80::8000