사전 네트워크 정보
- docker 호스트는 Virtual Box 가상머신이고, 네트워크는 내 컴퓨터 어댑터에 브릿지를 했음.
- 내 컴퓨터는 공유기 밑에서 192.168.1.X 이고, docker 호스트는 192.168.1.61 이다.
- 어댑터에 브릿지를 했으므로, docker 호스트 가상머신은 내 컴퓨터와 동일한 네트워크의 서버로 이해할 수 있다.
nginx 컨테이너 생성하기
nginx는 대량의 요청을 처리하는 대규모 사이트에서 주로 이용하며, 리버스 프록시나 로드밸런서와 같은 기능도 갖고 있다.
docker container run --name webserver -d -P nginx
- nginx의 포트를 호스트의 임의 포트에 할당하여 백그라운드로 nginx 실행. 컨테이너 이름은 webserver 이다.
- 이미지가 없으면 알아서 자동으로 받는다.
2. 현재 상태 확인
docker ps
- 컨테이너의 80번 포트와 호스트의 32805 포트가 연결된 것을 확인할 수 있다.
3. 직접 접속 테스트
node.js 컨테이너 생성하기
1. 컨테이너 생성
docker run -d -it -p 9000:8000 --name=nodejs_test2 node:latest
- 최신 node.js 컨테이너를 생성함. 백그라운드로 생성하고 인터렉티브 쉘을 열며, 이름은 nodejs_test2 이다.
2. 현재 상태 확인
docker ps
- 컨테이너에서 8000번포트를 사용하고, 호스트에서는 9000번 포트를 사용하여 컨테이너의 8000번 포트와 연결
3. 예시파일 만들기
var http = require('http');
var content = function(req, resp) {
resp.end("Welcome to Kubernetes~!" + "\n");
resp.writeHead(200);
}
var w = http.createServer(content);
w.listen(8000);
- 위 내용을 vi로 호스트 서버에서 nodejs_test.js 로 생성한다.
- 이 예시는 8000번 포트를 listen 하도록 설정하였다. (컨테이너의 열린 포트가 8000이므로)
4. 예시파일을 컨테이너에 복사하기
docker cp nodejs_test.js nodejs_test2:/nodejs_test.js
5. 컨테이너에 진입 후 node.js 실행
docker exec -it nodejs_test2 /bin/bash
- 진입 후, ls 명령으로 확인하면 nodejs_test.js 가 있는것을 확인할 수 있다.
- 해당 파일 위치를 확인후, 아래와 같이 실행한다.
node nodejs_test.js
- 아래와 같이 프롬프트가 떨어지지 않고 유지된다.
6. 직접 접속 테스트
httpd (Apache) 컨테이너 생성하기
1. 컨테이너 생성
docker run -d -p 8080:80 --name httpd-basic httpd:2.4
- httpd를 백그라운드로, 이름은 httpd-basic, 버전은 2.4 버전으로 컨테이너를 생성한다.
2. 현재 상태 확인
docker ps
- 포트는 컨테이너 80번, 호스트OS는 8080번으로 포트를 연결하였음.
3. 직접 접속 테스트
'Docker Advanced' 카테고리의 다른 글
Docker 예제 : 단독 컨테이너 실행 예제 (0) | 2020.07.16 |
---|---|
[Docker Advanced] Docker Swarm network 개념 이해 (5) | 2020.07.08 |
[Docker Advanced] Docker Swarm Cluster 명령어와 작업 예시 (0) | 2020.07.02 |
[Docker Advanced] Docker Swarm Cluster 구축 (0) | 2020.07.02 |