· MongoDB
다른 몽고DB 인스턴스에 연결 어떤 몽고DB 인스턴스든 셸을 연결할 수 있다. 다른 장비나 포트에 mongod를 연결하려면 셸을 시작할 때 호스트명, 포트, 데이터베이스를 명시해야 한다. 몽고DB 컨테이너를 하나 더 띄우고 다른 한쪽에서 접속을 해보자. 접속을 위해서는 IP를 확인해야 하므로 컨테이너의 IP를 알아내야 한다. $ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mongodb2 172.17.0.3 mongodb2 컨테이너의 IP는 172.17.0.3이다. 이제 다시 mongodb 컨테이너로 접속해 mongodb2 컨테이너 안에 몽고DB에 접속해보자. 접속할때는 mongo {IP}:{PORT}..
· MongoDB
몽고DB는 명령행에서 몽고DB 인스턴스와 상호작용하는 자바스크립트 셸을 제공한다. 셸은 관리 기능이나, 실행 중인 인스턴스를 점검하거나 간단한 기능을 시험하는데 매우 유용하다. mongo 셸은 몽고DB를 사용하는 데 매우 중요한 도구다. 셸 실행 먼저 몽고DB 컨테이너에 접속한다. $ docker exec -it mongodb bash 정상적으로 접속되었으면 아래 명령어를 통해 셸을 실행한다. $ mongo 위와 같은 문구가 출력됬다면 정상적으로 셸을 실행한 것이다. 셸은 완전한 자바스크립트 해석기이며 임의의 자바스크림트 프로그램을 실행한다. 연산 및 표준 자바스크립트 라이브러리의 모든 기능을 활용할 수 있다. 심지어 함수도 정의하고 호출할 수 도 있다. > x = 200; 200 > x / 4 50 >..
여러 터미널에서 조작하기 2개 이상의 터미널에서 하나의 컨테이너에 접속하여 작업을 수행하는 것도 가능하다. 이처럼 같은 컨테이너에 여러 터미널이 접속하여 작업하는 것이 가능하다. 인증 과정도 없기 때문에 가상 서버보다 더 편리하게 사용할 수 있다. 이때 보안을 위해 호스트 외부에서 접속은 막혀 있다. 또한 컨테이너 내에는 외부에서 로그인하기 위한 sshd를 기동시키지 말아야 한다는 의견도 있다. 로그인을 관리하지 않는 컨테이너 리눅스 서버에서는 w 명령어로 동시에 로그인한 다른 유저의 정보를 얻을 수 있다. 하지만 아무것도 출력되지 않는다. 이유는 컨테이너에 로그인을 통한 유저 인증 기능도 없고, 유저 자체를 관리하지 않기 때문이다. 리눅스는 기본적으로 멀티 유저용으로 개발되었지만 컨테이너는 싱글 유저용..
대화형 모드로 컨테이너 기동 및 정지 일반적인 리눅스 서버에서는 유저가 로그인에 성공하면 이어서 셸이 기동된다. 그러면 터미널을 통해 셸에 명령어를 전달하고 수행 결과가 터미널에 출력된다. 도커에서도 컨테이너에서 셸을 실행할 수 있다. 대화형 모드로 컨테이너 기동(docker run -it) 대화형 모드로 컨테이너를 기동하기 위해서는 docker run -it 리포지터리명:[태그] 셸 과 같이 명령어를 실행해야 한다. 여기서 옵션 -i는 키보드의 입력을 표준 입력(STDIN)으로 셸에 전달하고 옵션 -t는 유서 터미널 디바이스(pts)와 셸을 연결한다. 옵션 --name은 컨테이너의 이름을 지정할 수 있다. 이로써 셸은 터미널과 접속되어있다고 인식하여 셸의 프롬프트를 출력하게 된다. 우분투나 CentOS..
beekei
'셸' 태그의 글 목록