728x90
반응형
컨테이너 실행, 조작 명령어
docker container create
- 이미지를 기반으로 컨테이너를 만든다. 만들기만 하고 시작하지는 않는다.
- 이미지의 실체는, 도커에서 서버 기능을 작동시키기 위해 필요한 디렉토리 및 파일들이며, 구체적으로는 /etc /bin 같은 디렉토리, 파일들이다.
- 컨테이너를 생성하면, 이미지에 포함된 리눅스 디렉토리와 파일들의 스냅샷을 만든다.
- 이 스냅샷으로 컨테이너를 생성한다. 스냅샷이라고 표현했는데, 그냥 복사했다고 봐도 무방하다.
- run이 create를 대체하기 때문에 딱히 혼자 쓰이지 않는다.
- 컨테이너 생성 후 나오는 긴 문자열은 컨테이너 아이디이다. 도커 컨테이너를 고유하게 식별하기 위해 사용된다.
- 예시 : 9f5add6253a20d5a2a807502060dd8c4cbb86a59a5f52e6857ebac58e8634be7
옵션
a, --attach=[STDIN | STDOUT | STDERR] : 표준 입력, 표준 출력, 표준 에러 출력을 연결
--cidfile="파일명" : 컨테이너 아이디를 파일로 출력
# docker container create nginx
docker container attach
- docker container attach 컨테이너명
- 가동 중인 컨테이너에 연결한다. /bin/bash로 연결한 것이 아님.
- attach로 연결하면, 기존에 연결된 터미널이 있으면(예를 들어 bash로 붙은 거라던지, 다른 attach라던지) 똑같이 복제되어 작동한다
- 연결 분리 (종료 아님) ctrl+p, ctrl+q 입력.
- 만약 ctrl+c 를 해버리면, 종료가 되어서 서비스가 down 된다!
- 실행 중인 컨테이너에 붙으면, 그 컨테이너의 상태로 빠진다.
- nginx 컨테이너에 attach 했는데, nginx 만 실행했을 뿐 따로 쉘은 없으므로 프롬프트가 없게 된다.
Docker container exec
- 가동 중인 컨테이너에서 프로세스 또는 명령어 실행.
- 현재 컨테이너 자체에서 실행 중인 프로세스와는 별개다.
- docker container exec 옵션 컨테이너명 실행할 명령 인수
- 컨테이너의 터미널로 들어가는 방법으로 자주 사용된다. /bin/bash 사용. 또한 attach가 안될 때도 사용한다.
- exec 명령은 실행 중인 컨테이너에서만 가능하다.
옵션
--detach, -d : 명령을 백그라운드에서 실행
--interactive, -i : 컨테이너의 표준 입력을 연다.
--tty, -t : pseudo-TTY를 할당한다.
--user, -u : 사용자명을 지정한다.
Ex)
- 배쉬 쉘 실행 : docker container exec -it webserver /bin/bash
- 명령 직접 실행하기 : docker container exec -it webserver /bin/echo "Hello world"
- 다른 컨테이너에 ping 날리기 : docker exec -t web01 ping 172.17.0.6
반응형
'IT Technology > Cloud' 카테고리의 다른 글
Docker 단독 컨테이너 실행 실습하기 (0) | 2021.04.13 |
---|---|
Docker 중요 명령어 (docker run) 운영체제, 소프트웨어 컨테이너 (0) | 2021.04.12 |
Docker Network 기본 명령어 (0) | 2021.03.12 |
Docker Hub Login / Login permission denied 해결방법 (0) | 2021.03.10 |
도커 레지스트리, 도커 허브 란? Docker Registry, Docker Hub ? (0) | 2021.03.05 |