Skip to content
Kwangmyung Kim edited this page Sep 11, 2017 · 11 revisions

Welcome to the docker wiki!

sudo 없이 사용하기

docker는 기본적으로 root권한이 필요합니다. root가 아닌 사용자가 sudo없이 사용하려면 해당 사용자를 docker그룹에 추가합니다.

sudo usermod -aG docker $USER # 현재 접속중인 사용자에게 권한주기
sudo usermod -aG docker your-user # your-user 사용자에게 권한주기

사용자가 로그인 중이라면 다시 로그인 후 권한이 적용됩니다.

Dockerfile 만들기

  • Dockerfile 을 만들어 이미지를 만들수 있다.
  • && 로 연결하면 Docker 이미지를 만들때 용량을 줄일수 있다.
  • 이유는 RUN 하나당 하나의 이미지를 만드므로.

Dockerfile

FROM ubuntu:14.04
RUN apt-get update \
&& apt-get install vim wget sudo -y

#Build 하기.

tag 이름을 달아 주는것이 나중에 관리하기 용이함

docker build --tag kmkim-image.

build.sh

#!/bin/bash
NAME=$1

run(){
	docker build --tag $NAME .
}


usage(){
	echo "-------------------------------------------------------------------------"
    echo "[ Usage ] $0 <TAG_NAME>"
    echo "$0 TAG_NAME"
    echo "-------------------------------------------------------------------------"
}


if [ $# -eq 1 ]
        then
                run
        else
                usage
                exit
        fi

Run

컨테이너를 실행하고, 종료 안되게 cat 이 유지되게 컨테이너를 실행할 수 있다.

run.sh

#!/bin/bash
CONTAINER_NAME_NUM=$1
echo test$CONTAINER_NAME_NUM | docker run -i --name test$CONTAINER_NAME_NUM kmkim-image cat
  • 여러개를 생성하여 테스트 할 때 loop 문을 이용하면 많은 Container 를 한꺼번에 쉽게 만들수 있음.

loop.sh

#!/bin/bash
CONTAINER_NAME_NUM=0
END=1
while [  $CONTAINER_NAME_NUM -lt $END ]; do
   ./run.sh $CONTAINER_NAME_NUM
   docker start agent$CONTAINER_NAME_NUM;docker exec -i -t test$CONTAINER_NAME_NUM bash -c "touch test.sh"
   let CONTAINER_NAME_NUM=CONTAINER_NAME_NUM+1
done

#전체 이미지와 Docker 컨테이너 삭제

#!/bin/bash
# Delete all containers
docker rm -f $(docker ps -a -q)
# Delete all images
docker rmi $(docker images -q)

Clone this wiki locally