-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Kwangmyung Kim edited this page Sep 11, 2017
·
11 revisions
Welcome to the docker wiki!
docker는 기본적으로 root권한이 필요합니다. root가 아닌 사용자가 sudo없이 사용하려면 해당 사용자를 docker그룹에 추가합니다.
sudo usermod -aG docker $USER # 현재 접속중인 사용자에게 권한주기
sudo usermod -aG docker your-user # your-user 사용자에게 권한주기
사용자가 로그인 중이라면 다시 로그인 후 권한이 적용됩니다.
- 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
컨테이너를 실행하고, 종료 안되게 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)