--help
> docker --help
...
ps List containers
...
> docker ps
지금까지 docker run 으로 이미지를 컨테이너로 실행하고, 실행중인 컨테이너를 docker stop으로 중지시킨것처럼 docker에는 많은 명령어가 존재한다. 도커에는 수많은 명령어와 옵션이 존재하는데 이를 모두 외울수는 없다. 이때 쓸 수 있는것이 --help이다. --help를 명령어와 함께 실행하면 사용할 수 있는 명령어와 옵션을 알 수 있다. docker --help를 통해 컨테이러 리스트를 볼 수 있는 docker ps를 발견하고 실행하였다.
> docker ps --help
...
-a, --all Show all containers (default shows just running)
...
> docker ps -a
docker ps의 결과는 실행중인 컨테이너만 보여준다. 중지된 상태의 컨테이너도 보고싶어서 docker ps --help로 -a 옵션을 달면 모든 컨테이너를 볼 수 있다는 것을 알았다. docker ps -a를 실행한 결과 모든 컨테이너를 볼 수 있었다.
docker run, docker start
> docker run {imageId} // 이미지로 새로운 컨테이너를 실행한다
> docker start {containerId} // 중지된 기존 컨테이너를 재실행한다
> docker ps -a
...
컨테이너 4개
...
> docker run {imageId}
> docker ps -a
...
컨테이너 5개
...
> docker start {containerId}
> docker ps -a
...
컨테이너 5개
...
도커 컨테이너를 시작하는 방법에는 두가지가 있다. docker run 또는 docker start이다. 두 명령어의 차이점은 run의 경우 이미지를 바탕으로 새로운 컨테이너를 띄우는 것이고, start는 중지된 컨테이너를 다시 시작하는 것이다. docker run을 실행하고 docker ps -a의 결과를 보면 새로운 컨테이너가 생긴 것을 알 수 있고, docker start 이후 docker ps -a의 결과를 보면 기존 컨테이너의 상태가 바뀐것을 알 수 있다. 실행할 도커 이미지가 바뀐것이 아니라면 기존 도커 컨테이너를 재시작하는게 자원을 아낄 수 있다.
> docker run {imageId}
새로운 터미널 입력 불가능
> docker start {containerId}
>
새로운 터미널 입력 가능
run과 start의 또다른 차이는 attached/detached 이다. docker run을 실행하면 새로운 터미널 입력이 차단되고 실행중인 컨테이너의 로그(출력)이 나오고 이를 컨테이너에 붙어있다(attached)라고 한다. docker start는 터미널 입력이 차단되지 않고 고 이를 컨터이너에 붙어있지 않다(detached)고 한다.
> docker run -d {imageId}
>
터미널 입력이 차단되지 않는다. (detached)
> docker attach {containerId}
실행중인 컨테이너에 붙고, 터미널 입력이 차단된다.
docker run 명령어를 실행할 때도 detached 상태로 실행하려면 -d 옵션을 붙이면 된다. 또 이미 detached로 실행된 컨테이너에 다시 붙기 위해서는 docker attach 명령어를 사용하면 된다. -d 옵션과 attach 명령어 모두 알고만 있으면 나중에 기억이 안나도 docker run --help, docker --help를 실행하여 다시 찾아볼 수 있다.
docker logs
> docker logs {containerId}
컨테이너의 로그가 출력된다.
> docker logs -f {containerId}
연결이 종료되지 않고 지속적으로 로그가 출력된다.
docker attach로 컨테이너에 붙으면 로그를 볼 수 있지만, 컨테이너에 붙기 이전의 로그를 확인할 수 없다. 실행이후의 모든 로그, 혹은 특정 조건으로 로그를 조회하려면 docker logs 명령어를 실행해서 확인해야 한다.
'STUDY > Docker & Kubernetes: 실전 가이드 -2022년판' 카테고리의 다른 글
6. 도커 데이터 관리1: 데이터 종류와 볼륨 (0) | 2022.09.26 |
---|---|
5. Docker Hub로 이미지 push/pull, 사용하기 (0) | 2022.09.13 |
4. Docker 이미지/컨테이너 관리하기2 (0) | 2022.09.13 |
2. Docker 이미지와 컨테이너: 이미지 빌드하기, 도커 이미지 주의사항, 도커 이미지 레이어 (0) | 2022.09.07 |
1. 시작하기: Docker란, 환경 세팅, Docker 띄워보기 (0) | 2022.09.07 |