티스토리 뷰
여기 두 개의 링크가 있다. 하나는 모범 답안이고 다른 하나는 … 안알랴줌~
- http://blog.docker.com/2014/06/why-you-dont-need-to-run-sshd-in-docker/
- http://stackoverflow.com/questions/17903705/is-it-possible-to-start-a-shell-session-in-a-running-container-without-ssh
그냥 하면 되지!
MACOSX$ ssh core@192.168.xxx.xxx
COREOS$ uname -a
Linux localhost 3.15.5+ #2 SMP Wed Jul 16 02:42:54 UTC 2014 x86_64 Intel(R) Core(TM) i7 CPU M 620 @ 2.67GHz GenuineIntel GNU/Linux
COREOS$ cat /etc/lsb-release
DISTRIB_ID=CoreOS
DISTRIB_RELEASE=379.3.0
DISTRIB_CODENAME="Red Dog"
DISTRIB_DESCRIPTION="CoreOS 379.3.0" <--- 여기는 도커 호스트!
COREOS$ ssh ... <--- 난 누구? 여긴 어디? -_-;;;
이렇게 쉬울 리가 없는데?!
MACOSX$ docker run -t -i ubuntu /bin/bash
root@fad2a805c970:/# uname -a
Linux fad2a805c970 3.15.5+ #2 SMP Wed Jul 16 02:42:54 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
root@fad2a805c970:/# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04 LTS" <--- 여기는 도커 컨테이너!
root@fad2a805c970:/# ^D
MACOSX$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<--- 엉? 어디갔지 -_-?
MACOSX$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fad2a805c970 ubuntu:latest /bin/bash 25 seconds ago Exited (0) About a minute ago goofy_hawking
<--- 헐! 죽었네... -_-;;;
그렇다… 나는… 쉘을 열고 닫은게 아니라 아니라… ubuntu를 켰다 껐다…하고 있었던 거시었다 Orz
… (내가 하루 동안했던 삽질은 생략…) …
- 컨테이너에서 sshd 띄우기
- 컨테이너에서 screen 사용하기
- 컨테이너에서 쉘스크립트로 이렇게 저렇게…. busy loop? Orz
- 세상은 넓고… 삽질거리는 끝이 없다.
풀이 과정을 모르는 정답: nsenter
와 친구들
When they start using Docker, people often ask: “How do I get inside my containers?” and people will tell them “Run an SSH server in your containers!” But, as you’ll discover in this post, you don’t need to run a SSHd daemon to get inside your containers. Well unless your container is an SSH server, of course!
대충 읽어보니... "니네들이 도커 컨테이너에 ssh로 접속할라꼬 컨테이너마다 sshd를 띄우고 있다면 니네들은 분명 뻘짓하고 있는 거시여~"
그래서... 시키는 대로 해 봤다:
MACOSX$ ssh core@192.168.xxx.xxx
COREOX$ docker inspect fad2a805c970
...
"State": {
"ExitCode": 0,
"FinishedAt": "2014-07-24T07:22:21.017769958Z",
"Paused": false,
"Pid": 938, <--- 내가 원하는 거!!!
"Running": true,
"StartedAt": "2014-07-24T07:29:46.166857928Z"
},
...
COREOS$ sudo /usr/bin/nsenter --target 938 --mount --uts --ipc --net --pid
root@fad2a805c970:/# uname -a
Linux fad2a805c970 3.15.5+ #2 SMP Wed Jul 16 02:42:54 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
root@fad2a805c970:/# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04 LTS" <--- 여기는 도커 컨테이너!
root@fad2a805c970:/# ^D
COREOS$ ^D
MACOSX$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fad2a805c970 ubuntu:latest /bin/bash 1 seconds ago Up 1 hours
<--- 살아있네!!
MACOSX$
매번 ssh, docker inspect, nsenter, … 하는게 귀찮으면, 스크립트로 만들… 귀찮… -_-;;;
내가 사용하는 CoreOS에는 nsenter
가 기본으로 포함되어 있지만, 그렇지 않은 경우에는 배포판에 맞게 설치해야 한다. 자세한 내용은 https://github.com/jpetazzo/nsenter 를 참고하시길…
that's all folks
'hacking' 카테고리의 다른 글
맥에서 터미널만으로 docker 사용하기: macox + vmware/vmrun + docker (0) | 2014.07.30 |
---|---|
docker getting started: 왕초보를 위한 docker 입문 (1) | 2014.07.26 |
mac osx + docker + vmware + coreos (0) | 2014.07.18 |
앱 출시를 위해 준비해야 할 이미지들 (1) | 2014.01.23 |
brew로 패키지의 특정 버전 설치하기 (0) | 2014.01.20 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- docker
- 땅끝마을
- 자바스크립트
- 독후감
- 책
- 자전거
- 영화
- DeveloperWorks
- 여행
- **
- maven
- 노래
- ****
- nodejs
- Prototype
- web
- Ajax
- Eclipse
- HTML5
- ***1/2
- JavaScript
- CSS
- ***
- Dojo
- Java
- webapp
- 해남
- 장필순
- jQuery
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함