Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
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
Tags
more
Archives
Today
Total
관리 메뉴

클라우드 엔지니어 꿈나무

Docker 기본 명령어 및 컨테이너 볼륨 생성 후 haproxy 연결 본문

container

Docker 기본 명령어 및 컨테이너 볼륨 생성 후 haproxy 연결

새싹싹이 2023. 9. 7. 17:01

 

Container 내 복사

docker cp

docker cp cptest/ h1:/ => h1 최상위 디렉토리에 cptest 복사

 

이미지 업로드 및 다운로드

docker save -o hnm.tar httpd:latest nginx:latest mysql:5. (1번 서버)

scp hnm.tar root@10.0.0.3:/root/ docker (1번 서버)

load -i hnm.tar (2번 서버)

 

컨테이너 내 상태 확인

docker diff (상태 확인)

docker cmp (차이 비교)

cmp /etc/services /etc/services.bak

 

컨테이너 업로드 및 이미지로 다운로드 

- 이 경우 오류가 나기 때문에 change 로 지정 필수

- 환경 변수는 복사가 불가하기 때문에 PATH 설정도 필수

docker export -o a.tar a1 docker (1번 서버)

import --change 'CMD ["/bin/sh"}' a.tar alpine:my1 (2번 서버)

docker run -itd -e "PATH=/usr/local/apache2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" -p 60080:80 --name h3 http:kang (2번 서버)

 

 


구성 

Centos7-1

1centos7-1 haproxy 설치

2. ceonts7-1에 httpd 를 이용한 webserver container h1,h2 구성
- 출력은 KANG DOCKER HTTP WEBSERVER1 -> h1
- 출력은 이니셜 DOCKER HTTP WEBSERVER2 -> h2
3. centos7-1에 nginx 를 이용한 webserver container n1,n2 구성
- 출력은 이니셜 DOCKER NGINX WEBSERVER1 -> n1
- 출력은 이니셜 DOCKER+NGINX WEBSERVER2 -> n2
4. Host PC(실제 PC에서)
- 브라우저 실행 후, 10.0.0.1 접속
- 새로고침 했을 때 위에 4개의 페이지 돌아가면서 출력되게 하기
5. index.html 파일은 컨테이너와 동일한 이름의 docker voulum을 연결해서 생성

 

Centos7-2
1. ceonts7-2에 httpd 를 이용한 webserver container h1,h2 구성
출력은 이니셜+DOCKER+HTTP+WEBSERVER1 -> h1
출력은 이니셜+DOCKER+HTTP+WEBSERVER2 -> h2
2. centos7-2에 nginx 를 이용한 webserver container n1,n2 구성
출력은 이니셜+DOCKER+NGINX+WEBSERVER1 -> n1
출력은 이니셜+DOCKER+NGINX+WEBSERVER2 -> n2
3. Host PC(실제 PC에서)
브라우저 실행 후, 10.0.0.1 접속
- 새로고침 했을 때 위에 4개의 페이지 돌아가면서 출력되게 하기
5. index.html 파일은 컨테이너와 동일한 이름의 docker voulum을 연결해서 생성
6. 컨테이너는 2번 서버에 haproxy 1번 구성해서 10.0.0.1 에 접속 시 8개 페이지 모두 출력

 

Centos7-1

docker run -itd -v h1:/usr/local/apache2/htdocs --name h1 httpd

(위 명령어보다는 루트 디렉토리로 지정이 보다 편리)

docker run -itd -v h1:/usr/local/apache2/htdocs --name h2 httpd

docker run -itd -v n1:/usr/share/nginx/html --name n1 nginx

docker run -itd -v n2:/usr/share/nginx/html --name n2 nginx

vi /var/lib/docker/volumes/h1/_data/index.html

(루트 디렉토리에 지정시, 최상위 디렉토리에 생성되어 하기와 같은 디렉토리 지정이 불필요)

vi /var/lib/docker/volumes/h2/_data/index.html

vi /var/lib/docker/volumes/n1/_data/index.html

vi /var/lib/docker/volumes/n2/_data/index.html

firewall-cmd --permanent --add-port=80/tcp

firewall-cmd --reload

vi /etc/haproxy/haproxy.cfg

systemctl start haproxy

haproxy

(참고)

ip address docer inspect 컨테이너명으로 확인

 

Centos7-2

docker run -itd -v /root/h1:/usr/local/apache2/htdocs -p 10.0.0.2:60080:80 --name h1 httpd

(위와 같이 볼륨 자체에 root 디렉토리 지정 시, 추후 도커 내 hmtl 소스 삽입이 보다 편이)

(외부 접속을 위한 포트 지정)

docker run -itd -v /root/h2:/usr/local/apache2/htdocs -p 10.0.0.2:60180:80 --name h2 httpd

docker run -itd -v /root/n1:/usr/share/nginx/html -p 10.0.0.2:60280:80 --name n1 nginx

docker run -itd -v /root/n2:/usr/share/nginx/html -p 10.0.0.2:60380:80 --name n2 nginxx

vi h1/index.html
vi h2/index.html
 vi n1/index.html
vi n2/index.html