Nginx 컨테이너의 배경과 전경 전환

3526 단어 nginxMac도커

환경


  • MBP
  • Catalina
  • Docker for Mac

  • Nginx 컨테이너 시작



    -dit 로 하는 것으로 최초는 백그라운드에서 기동.
  • -d detach의 의미. 백그라운드에서 시작하는 옵션
  • -i Interactive의 의미. 표준 I/O와 표준 오류 출력을 컨테이너에 연결합니다
  • -t 아마 tty의 의미. 의사 단말기를 할당하는 키보드와 모니터를 접속하기 위한 옵션이라고 생각하면 좋다.
  • % docker run -dit -p 8000:80 nginx
    Unable to find image 'nginx:latest' locally
    latest: Pulling from library/nginx
    6f28985ad184: Pull complete 
    29f7ebf60efd: Pull complete 
    879a7c160ac6: Pull complete 
    de58cd48a671: Pull complete 
    be704f37b5f4: Pull complete 
    158aac73782c: Pull complete 
    Digest: sha256:d2925188effb4ddca9f14f162d6fba9b5fab232028aa07ae5c1dab764dca8f9f
    Status: Downloaded newer image for nginx:latest
    293061505e4dd0c96897c80cdef2231bb76db50c21b516ae8f326592cdd0d1bb
    



    전경으로 전환



    docker attach로 전환이 가능하다.
    명령 실행 후 브라우저 측 페이지를 다시로드하여 로그가 출력되는 것 (전경)에서 움직이고 있는지 확인.
    % docker attach 293061505e4d
    172.17.0.1 - - [12/Mar/2021:15:08:11 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36" "-"
    172.17.0.1 - - [12/Mar/2021:15:08:13 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36" "-"
    

    배경으로 전환



    Ctrl+p Ctrl+q를 차례로 누릅니다.
    이 조작은 -i -t 옵션이 없으면 허용되지 않습니다.
    이것은 -i -t 의 옵션이 없으면 Ctrl 키의 조작을 받아들이지 않기 때문이다.
    docker attach 293061505e4d
    172.17.0.1 - - [12/Mar/2021:15:08:11 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36" "-"
    172.17.0.1 - - [12/Mar/2021:15:08:13 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36" "-"
    read escape sequence
    %
    

    「read escape sequence」라고 표시되어 프롬프트가 돌아왔다.
    docker ps를 보면 STATUS가 「UP」이 되어 있어 브라우저를 리로드해도 Nginx의 초기 페이지가 표시되는 것을 확인할 수 있다.
    % docker ps -a              
    CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                  NAMES
    293061505e4d   nginx     "/docker-entrypoint.…"   15 minutes ago   Up 15 minutes   0.0.0.0:8000->80/tcp   modest_diffie
    



    -i -t 옵션 정보



    -i 옵션을 지정하지 않는 경우



    표준 입출력과 표준 에러 출력을 컨테이너를 연결하는 옵션이다.
    파일로부터의 입력을 컨테이너에서 실행되는 명령에 건네주고 싶을 때 등에 필요하다
    또, 이쪽의 옵션이 없으면 Nginx의 로그도 출력되지 않고, 호스트로부터의 키 입력을 해도 효과가 없습니다.
    ...라고 책에는 쓰고 있었지만, 검증하면 보통 로그 출력되었습니다.
    그런 설정이 되어 있는 것일까? 수수께끼입니다.

    호스트 측에서 프로세스를 종료(Ctrl+c)할 수 있습니다.

    -t 옵션 정보



    의사 단말기를 할당하는 키보드와 모니터를 접속하기 위한 옵션이라고 생각하면 좋다.
    Ctrl이나 ESC등을 커서등의 조작을 받아들이지 않는다고 합니다.
    Ctrl을 사용할 수 없기 때문에 attach에서 detach로 전환할 수 없습니다.

    TIPS



    apache (httpd)의 경우는 다시 부착 할 수없는 사양 같다.

    좋은 웹페이지 즐겨찾기