클라우드 엔지니어 꿈나무
Docker 기본 명령어 및 컨테이너 볼륨 생성 후 haproxy 연결 본문
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
(참고)
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
'container' 카테고리의 다른 글
Docker Haproxy를 활용한 LoadBalancer (1) | 2023.10.03 |
---|---|
Docker network - CentOS7 (0) | 2023.10.03 |
Docker hub에 이미지 올리기 - CentOS7 (0) | 2023.10.03 |
Docker Container Loadbalancer + php + wordpress + mysql - Centos7 (0) | 2023.09.10 |
Docker 설치 및 기본 명령어 - CentOS (0) | 2023.09.06 |