실행중인 docker container에 shell에 접속하기
docker run -it jenkins /bin/bash
docker exec -it jenkins /bin/sh
- -i docker 컨테이너의 STDIN을 open한다
- -t docker 컨테이너에 psuedo tty를 지정해준다.
TTY(teletypewriter) : 리눅스 디바이스 드라이브중에서 콘솔이나 터미널을 의미합니다.
psuedo(가상) + tty : 원격접속을 의미합니다.
Docker ps
현재 실행중인 docker 컨테이너들을 볼 수 있다.
- -a 전체 실행중인 컨테이너
- -l 가장 최근에 실행한 컨테이너
- -q 컨테이너의 id 값만 보여준다
docker ps -a && docker ps -l && docker ps -a -q
Daemonized docker containers
- -d : 데몬 모드
데몬 모드 : docker에서 말하는 데몬이란 백그라운드 실행을 의미합니다.
Production 환경에서 실행될 docker container는 대부분 daemonized 된 상태로 실행될것이다.
Logging
이용 : 컨테이너의 로그를 보기 위해 사용 합니다.
docker logs <데몬 컨테이너 ID OR 이름>
기본 명령어
docker logs -f <데몬 컨테이너 ID OR 이름>
--tailng 하는 옵션(실시간으로 로그가 올라옴)
docker logs -ft <데몬 컨테이너 ID OR 이름>
-t: 각 로그에 timestamp가 추가된다. 디버깅에 용이하다.
Docker inspect
dokcer 명령어 중 inspect 명령어는 컨테이너와 이미지의 세부 정보를 JSON 형태로 출력하는 명령어 입니다.
docker inspect --format='{{.NetworkSettings.IPAddress }}' <daemonized_containe>
위의 명령어는 해당 컨테이너 또는 이미지의 ip를 얻는 명령어 입니다.
이미지가 OS일 경우 유횽하게 쓰이겠군요..
To run additional process inside a running container
docker exec -d <daemonized_container> /bin/bash
위의 명령어는 컨테이너나 이미지의 명령어를 실행 시킵니다.
위의 같은 경우 /bin/bash를 실행 시켜 shell을 실행 시킵니다.
To delete a container
docker container을 삭제 시키는 명령어 입니다.
docker rm -f `sudo docker ps -a -q`
-f : --force옵션 이므로 이미 컨테이너가 실행 되고 있는 상태여도 강제로 삭제 시키는 명령어 입니다.
명령어 뒤에 `~`로 있는 부분은 따로 명령어를 입력 해서 한번에 모든 컨테이너를 지울때 사용 합니다.
`` 안에는 docker 명령어가 실행 될 수 있습니다.
To stop & kill docker container
- stop은 docker를 중단 할 수 있습니다.
- kill은 docker를 중단 할 수 있습니다.
kill과 stop명령어의 차이점은 다음과 같습니다.
- docker stop : 실행중인 컨테이너를 중지합니다 ( SIGTERM을 보낸 다음 유예 기간 후 SIGKILL 전송 ) [...] 컨테이너 내부의 주요 프로세스는 SIGTERM을 받고 유예 기간 후 SIGKILL을받습니다. [강조 광산]
- docker kill : 실행중인 컨테이너를 종료합니다 ( SIGKILL 전송 또는 지정된 신호 전송 ) [...] 컨테이너 내부의 주요 프로세스에는 SIGKILL 또는 --signal 옵션으로 지정된 신호가 전송됩니다. [강조 광산]
Automatic restart
- --restart flag 설정으로 docker container가 멈추었을때 다시 자동으로 시작하게 할 수 있다.
- always: 컨테이너가 멈출 경우 마다 항장 재실행을 합니다.
- service docker restart : docker 서비스를 재시작 합니다. 이때 always가 있는 컨테이너는 재실행을 실시 합니다.
'DevOps' 카테고리의 다른 글
[Docker] Docker-Compose (0) | 2020.08.27 |
---|---|
[Docker] 네트워크 사용법 (0) | 2020.08.26 |
[Docker] 기본 개념 (0) | 2020.08.22 |
댓글