[ 도커 실행 ]
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
$ docker run ubuntu:16.04
컨테이너 시작, 해당 컨테이너가 없다면 다운로드 후 컨테이너 생성 후 시작
$ docker run --rm -it ubuntu:16.04 /bin/bash
--rm : 프로세스가 종료되면 컨테이너도 삭제
-it : 터미널 입력을 위한 옵션
/bin/bash : 해당 컨테이너의 Bash Shell 접속
$ docker run -d -p 1234:6397 redis
-d : 백그라운드로 실행
-p : 포트연결, 1234의 호스트 포트를 6379의 컨테이너 포트로 연결
- redis test example
$ telnet localhost 1234
set mykey hello
+OK
get mykey
$2
hello
$ docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql mysql:5.7
-e : 컨테이너 내에서 사용할 환경변수 (위 옵션 내용 = pwd없이 root계정 접속 )
--name : 컨테이너 이름 설정
[ 컨테이너 목록 확인 ]
docker ps [OPTIONS]
$ docker ps : 실행 중인 컨테이너 목록
$ docker ps -a : 실행 중 + 실행 종료된 컨테이너 목록
[ 컨테이너 중지 ]
docker stop [OPTIONS] CONTAINER [CONTAINER...]
$ docker stop ${DOCKER_CONTAINER_ID} : 다른 ID랑 중복되지 않는다면 64글자 다 적지 않아도 됨
[ 컨테이너 삭제 ]
docker rm [OPTIONS] CONTAINER [CONTAINER...]
$ docker rm ${CONTAINER_ID_1} ${CONTAINER_ID_2} : 여러 컨테이너 동시 삭제 가능
$ docker rm -v $(docker ps -a -q -f status=exited) : 중지된 컨테이너 전체 삭제
[ 이미지 목록 확인 ]
docker images [OPTIONS] [REPOSITORY[:TAG]]
$ docker images : 다운로드한 이미지 목록 확인
[ 이미지 다운로드 ]
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
$ docker pull ubuntu:14.04 : 이미지가 중복되면 최신버전으로 재 다운로드
[ 이미지 삭제 ]
docker rmi [OPTIONS] IMAGE [IMAGE...]
$ docker rmi ${IMAGE_ID}
[ 컨테이너 로그 보기 ]
docker logs [OPTIONS] CONTAINER
$ docker logs --tail 10 ${CONTAINER_ID}
$ docker logs -f 10 ${CONTAINER_ID} : 실시간 로그 생성 확인
[ 컨테이너 명령어 실행하기 ]
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
: 실행 중인 컨테이너에 명령어 실행
$ docker exec -it mysql /bin/bash
$ mysql -uroot
mysql> show databases;
$ docker exec -it mysql mysql -uroot : 바로 mysql command line에 connect
[ 컨테이너 정보 보기 ]
docker inspect CONTAINER_ID
[ 볼륨 옵션 ]
mysql같은 경우 컨테이너가 삭제되면 해당 데이터도 삭제되기 때문에
데이터 볼륨을 컨테이너 외부 저장소( local, S3 등 )에 link연결
# before
$ docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql
# after
$ docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true \
-v /my/local/datadir:/var/lib/mysql mysql
[ Compose ]
설정파일을 이용한 도커컴포즈
https://docs.docker.com/compose/
$ curl -L "https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose : 권한변경
$ docker-compose version : 버전 확인
$ docker-compose up : 작성된 docker-compose.yml 파일 실행
참조 : https://subicura.com/2017/01/19/docker-guide-for-beginners-2.html