728x90
반응형

안녕하세요. r-son입니다.


오랜만에 인사드리네요.


오늘은 도커(docker) 명령어에 대해서 간략히 알아볼까해요


그럼 아래 표를 보시죠~!


기능

명령어

도커 정보 확인

Docker info

도커 버전 확인

docker version

컨테이너 목록 확인

Docker ps

Ex) docker ps -a (중지된 컨테이너)

Ex) docker ps (실행 중인 컨테이너)

컨테이너 실행하기

Docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG…]

Ex) docker run ubuntu:16.04

Ex) docker run --rm -it ubuntu:16.04 /bin/bash

  /bin/bash 명령어를 통해 ubuntu:16.04 컨테이너 실행

  컨테이너 내부로 들어가기 위해 bash 실행 키보드 입력을 위해 -it 옵션을 부여

  추가적으로 프로세스가 종료되면 컨테이너가 자동으로 삭제되도록 --rm 옵션 부여

Ex) docker run -d -p 1234:6379 redis

  redis 메모리기반의 다양한 기능을 가진 스토리지. 6379포트로 통신하며 telnet 명령어로 테스트 가능(telnet localhost 1234)

  redis 컨테이너는 detached mode(백그라운드 모드) 실행하기 위해 -d 옵션을 추가하고 -p 옵션을 추가하여 컨테이너의 포트를

  호스트의 포트로 연결한다.

  -d 옵션이 없다면 프로세스가 폴그라운드로 실행되어 아무키도 입력할 없으며 컨테이너 종료는 ctrl+c 입력한다.

  -d 옵션을 줘서 컨테이너의 ID 보여주고 바로 쉘로 돌아왔다. 컨테이너는 종료된 것이 아니라 백그라운드 모드로 동작

  -p 옵션을 이용하여 호스트의 1234포트를 컨테이너의 6379 포트로 연결하였고 localhost 1234 포트로 접속하면 redis 사용할 있다.

Ex) docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql \ mysql:5.7

  mysql -h127.0.0.1 -uroot

  -e 옵션은 환경변수를 설정하고 --name 컨테이너에 읽기 어려운 ID대신 쉬운 이름을 부여한다.

  -e 옵션 패스워드 없이 root 계정을 만들기 위해 MYSQL_ALLOW_EMPTY_PASSWORD 환경변수를 설정한다.

Ex)

# before
docker run -d -p 3306:3306
\
  -e
MYSQL_ALLOW_EMPTY_PASSWORD=true \
  --name mysql
\
  mysql:5.7

# after
docker run -d -p 3306:3306
\
  -e
MYSQL_ALLOW_EMPTY_PASSWORD=true \
  --name mysql
\
  -v /my/own/datadir:/var/lib/mysql
\ # <- volume mount
  mysql:5.7

 

  -v 옵션은 호스트의 디렉토리를 마운트해서 사용하는 방법 : MysQL이라면 /var/lib/mysql 디렉토리에 모든 데이터베이스 정보가 담기므로

   호스트의 특정 디렉토리를 연결해주어야 한다. 위의 샘플은 호스트의 /my/own/datadir 디렉토리를 컨테이너의 /var/lib/mysql 디렉토리로

   마운트하였다. 이제 데이터베이스 파일ㅇ느 호스트의 /my/own/datadir 디렉토리에 저장되고 컨테이너를 삭제해도 사라지지 않는다.

 

컨테이너 중지하기

Docker stop [OPTIONS] CONTAINER [CONTAINER…]

Ex) docker stop ${CONTAINER_ID}

컨테이너 제거하기

Docker rm [OPTIONS] CONTAINER [CONTAINER…]

Ex) docker rm ${CONTAINER_ID}

Ex) docker rm -v $(docker ps -a -q -f status=exited)  -- 중지된 컨테이너 ID 가져와서 한꺼번에 삭제

컨테이너 로그 보기

Docker logs [OPTIONS] CONTAINER

Ex) docker logs --tail 10 ${CONTAINER_ID}

Ex) docker logs ${CONTAINER_ID}

 

컨테이너 명령어 실행하기

Docker exec [OPTIONS] CONTAINER COMMAND [ARG…]

Ex) docker exec -it mysql /bin/bash

이미지 목록 확인

Docker images [OPTIONS] [REPOSITORY[:TAG]]

Ex) docker images

이미지 다운로드(pull)

Docker pull [OPTIONS] NAME[:TAG|@DIGEST]

Ex) docker pull ubuntu:14.04

이미지 삭제하기(rmi)

Docker rmi [OPTIONS] IMAGE [IMAGE…]

Docker rmi ${IMAGE_ID}


728x90
반응형

'Development > Docker' 카테고리의 다른 글

도커 허브에 이미지 푸시 방법  (0) 2019.04.03
도커 네트워크(Docker network) 길라잡이  (0) 2019.03.13

+ Recent posts