ìí´ë¡ ì§ê¸ë²¨ë½
차례:
실행중인 Docker 컨테이너에 연결하면 컨테이너 내부에서 무슨 일이 일어나고 있는지 확인할 때 도움이됩니다. Docker 컨테이너가 예상대로 작동하지 않으면 컨테이너에 연결하거나 컨테이너에 쉘을 가져 와서
ps
또는
top
과 같은 명령을 실행할 수 있습니다. 컨테이너에 들어가서 새 패키지를 설치하고 새 Docker 이미지를 만들 수도 있습니다.
이 튜토리얼에서는 컨테이너의 기본 실행 프로세스에 연결하는 방법과 실행중인 컨테이너에 셸을 얻는 방법을 설명합니다.
컨테이너에 부착
컨테이너에서 여러 프로세스를 실행할 수 있지만 대부분의 도커 컨테이너는 단일 프로세스 만 실행합니다. 컨테이너를 시작할 때 실행되는 명령은
ENTRYPOINT
및 / 또는
RUN
명령을 사용하여 지정됩니다.
docker attach
명령을 사용하면 터미널을 실행중인 컨테이너에 연결할 수 있습니다. 이는 표준 출력으로 작성된 내용을 실시간으로 보거나 프로세스를 대화식으로 제어하려는 경우에 유용합니다.
attach
명령이 어떻게 작동하는지 더 잘 이해하기 위해 공식 Nginx 이미지를 사용하여 분리 된 새로운 Nginx 컨테이너를 실행 해 봅시다.
docker container run --name my_nginx -d -p 8080:80 nginx
-p 8080:80
옵션은 Docker에게 컨테이너의 포트 8080을 호스트 시스템의 포트 80에 바인딩하도록 지시합니다.
“my_nginx”컨테이너가 실행 중인지 확인하기 위해 컨테이너를 나열하십시오.
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8e1c4974a8d8 nginx "nginx -g 'daemon of…" 3 minutes ago Up 2 seconds 0.0.0.0:8080->80/tcp my_nginx
컨테이너의 ID 또는 이름을 사용하여 컨테이너에 연결하십시오.
docker container attach my_nginx
컨테이너를 실행할 때 실행되는 nginx 이미지의 기본 명령은
CMD
로 설정됩니다.
attach
명령을 실행하면 터미널이
nginx
프로세스에 연결됩니다.
브라우저에서
127.0.0.1:8080
을 열고 nginx 프로세스의 출력을 실시간으로 볼 수 있습니다.
192.168.33.1 - - "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36" "-" 192.168.33.1 - - "GET /favicon.ico HTTP/1.1" 404 555 "http://192.168.33.71:8080/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36" "-"
컨테이너 로그에 액세스하려면
docker logs
명령을 사용하는 것이 좋습니다.
컨테이너를 멈추지 않고 컨테이너에서 분리하려면
CTRL-p
CTRL-q
키 조합을 사용하십시오.
CTRL-c
누르면 컨테이너가 중지됩니다.
연결중인 실행중인 프로세스가 입력을 승인하면 명령을 보낼 수 있습니다.
컨테이너에 쉘 가져 오기
docker exec
명령을 사용하면 실행중인 컨테이너 내에서 명령을 실행할 수 있습니다.
exec
명령이 작동하는 방식과 컨테이너 쉘을 입력하는 데 사용되는 방법을 보려면 먼저 새 컨테이너를 시작하십시오. 공식 MySQL 이미지를 사용합니다:
docker container run --name my_mysql -d mysql
“my_mysql”이라는 컨테이너가 생성됩니다.
컨테이너 내에서 명령을 실행하려면 다음 명령을 실행하십시오.
docker container exec -it my_mysql ls /var
-i
옵션은 대화식을 나타내며
-t
는 Docker에게 의사 TTY 장치를 할당하도록 지시합니다.
ls
명령은 컨테이너의
/var
디렉토리에있는 모든 파일과 디렉토리를 나열합니다.
backups cache lib local lock log mail opt run spool tmp
컨테이너에 쉘을 가져 오려면, 즉 컨테이너 내부에 들어가려면 쉘 바이너리를 실행하여 새 쉘 세션을 시작하십시오.
sh
,
bash
또는 이미지에 포함 된 다른 쉘을 사용할 수 있습니다.
아래 명령은 컨테이너 내에 새 Bash 세션을 만듭니다.
docker container exec -it my_mysql /bin/bash
명령 프롬프트가 변경되어 컨테이너 셸에서 작업 중임을 나타냅니다.
여기에서 다른 Linux 서버에서와 동일한 방식으로 명령을 실행할 수 있습니다. 예를 들어, 현재 환경 변수 목록을 얻으려면
env
:
env
결과는 다음과 같습니다.
HOSTNAME=e0214d97e0fe MYSQL_ROOT_PASSWORD=my-secret-pw PWD=/ HOME=/root MYSQL_MAJOR=8.0 GOSU_VERSION=1.7 MYSQL_VERSION=8.0.17-1debian9 TERM=xterm SHLVL=1 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin _=/usr/bin/env
결론
docker exec
및
docker attach
명령을 사용하면 실행중인 컨테이너에 연결할 수 있습니다. 컨테이너에 대화식 쉘을 가져 오려면
exec
명령을 사용하여 새 쉘 세션을 시작하십시오.
attach
명령은 터미널을 실행중인 컨테이너에 연결합니다.
일본을 연결하는 새로운 케이블, 러시아가 서비스에 나선다

이번 주에 러시아와 러시아를 연결하는 새로운 해저 케이블이 가동되었다.
Yahoo는 새로운 iPhone 응용 프로그램을 도입하고 Blueprint 개발자 환경에서 새로운 기능을 선보였습니다. 하나의 인터페이스에서 인기있는 소셜 네트워크의 긴 목록을 연결하는 iPhone 용 새로운 응용 프로그램.

IPhone 용 OneConnect는 인스턴트 메시징과 단문 메시지를 하나의 응용 프로그램에 통합하는 Apple App Store에서 무료로 제공되는 응용 프로그램입니다.
컨테이너에 개체를 열거하지 못했습니다.

개체의 사용 권한을 변경할 수 없으며 컨테이너에서 개체를 열거하지 못했습니다. , Windows 10 / 8.1에서 액세스가 거부되었습니다.이 수정 사항을 참조하십시오.