2021년 11월 7일 일요일

[ Docker ] 기본 명령어


[ 도커 실행 ]

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

댓글 없음:

댓글 쓰기