Cloud/Docker

도커(docker) 기본 commands

jinmc 2020. 12. 7. 17:57
반응형

출처 : subicura.com/2017/01/19/docker-guide-for-beginners-2.html

 

컨테이너 목록 확인하기 (ps)

docker ps [-a]

ps는 실행 중인 컨테이너 목록, -a 옵션은 실행 중이지 않은 컨테이너 목록도 보여줍니다.

 

 

컨테이너 중지하기 (stop)

$ docker stop [OPTIONS] CONTAINER [CONTAINER...]

option은 별거 없고 container id를 여러 개를 띄어쓰기를 이용해서 입력하면 됩니다.

$ docker ps # get container ID
$ docker stop ${TENSORFLOW_CONTAINER_ID}
$ docker ps -a $ show all container

도커 id 는 64자리인데, 앞에 4자리만 해도 됩니다. (앞부분이 겹치지 않는다면)

 

컨테이너 제거하기 (rm)

$ docker rm [OPTIONS] CONTAINER [CONTAINER...]

종료된 컨테이너를 하나 또는 여러개 삭제할 수 있습니다.

$ docker ps -a # get container ID
$ docker rm ${UBUNTU_CONTAINER_ID} ${TENSORFLOW_CONTAINER_ID}
$ docker ps -a # check exist

여러 개의 중단된 컨테이너를 한꺼번에 삭제하는 커맨드도 있습니다.

$ docker rm -v $(docker ps -a -q -f status=exited)

 

이미지 목록 확인하기 (images)

$ docker images [OPTIONS] [REPOSITORY[:TAG]]

이미지가 상당히 용량이 많이 잡아먹기 때문에 사용하지 않는 이미지는 지우는 것이 좋습니다

 

이미지 다운로드하기 (pull)

$ docker pull [OPTIONS] NAME[:TAG|@DIGEST]

 

이미지가 없을 때 run으로 다운받을 수 있지만, pull 은 최신 버전으로 다시 다운받을 때 사용합니다.

 

이미지 삭제하기 (rmi)

$ docker rmi [OPTIONS] IMAGE [IMAGE...]

이미지 목록에서 이미지 id를 입력하면 삭제가 됩니다. 컨테이너가 실행 중인 이미지는 삭제되지 않습니다.

 

컨테이너 둘러보기

 

컨테이너 로그 보기 (logs)

$ docker logs [OPTIONS] CONTAINER

옵션 -f 는 실시간으로 로그 업데이트 하는 걸 보여줍니다. --tail 옵션이면 마지막 몇줄만 나옵니다. ex) --tail 10 

아무 옵션도 주지 않으면 모든 로그가 다 보입니다.

 

$ docker logs --tail 10 ${WORDPRESS_CONTAINER_ID}

 

도커는 로그파일을 자동으로 알아채는게 아니라 표준 스트림 중 stdout, stderr를 수집합니다. 따라서 컨테이너 실행되는 프로그램의 로그 설정을 파일이 아닌 표준출력으로 바꿔야 합니다. 단지 출력 방식만 바꾸는 것으로 모든 컨테이너는 로그에 대해 같은 방식으로 관리할 수 있게 됩니다.

 

컨테이너의 로그파일은 json으로 저장이 됩니다. 로그가 많으면 파일이 차지하는 용량이 커지므로 주의해야 합니다. 앱의 규모가 커지면 로그 서비스를 사용하는 걸 고려해야 합니다.

 

컨테이너 명령 실행하기 (exec)

 

컨테이너에 들어가서 파일을 실행하고 싶을 때, SSH 를 설치하지 말고, exec을 활용하는 걸 추천합니다. 

$ docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

예를 들어, mysql 컨테이너를 실행하면,

 

$ docker exec -it mysql /bin/bash

# MySQL test
$ mysql -uroot

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| wp                 |
+--------------------+
5 rows in set (0.00 sec)

mysql> quit
exit

console에 입력을 해야되니 -it 명령어를 주었습니다. 또는, 바로 mysql 명령어를 실행할 수도 있습니다.

 

$ docker exec -it mysql mysql -uroot
반응형