목차
1. 스크립트
2. Script 생성
1. 스크립트
- 스크립트란 컴퓨터가 목표한 바를 달성하기 위해 실행해야하는 명령어의 집합이다.
ex)
* script 파일 생성
- 스크립트 파일을 하나 생성한다.
- 스크립트 파일의 이름은 a.sh이고 내용은 현재 디렉토리의 리스트와 사용자들을 출력하는 내용을 담는다.
- 스크립트를 실행 시키면 해당 a.sh script 파일이 생성된 것을 볼 수 있다.
- a.sh 파일 안에 내용도 생성된 것을 볼 수 있다.
* 시나리오
1. 모든 작업을 스크립트로 처리합니다.
2. Docker 설치 및 실행
3. httpd 및 nginx, centos:9, alpine 이미지 다운로드
4. bridge network 생성
4.1 N1 192.168.11.0/24 192.168.11.254
4.2 N2 192.168.12.0./24 192.168.12.254
5. index.html과 index.html 만들기
5.1 index.html, Container=WEBSERVER_1과 Ncloud Image 출력
5.2 index1.html, Container=WEBSERVER_2과 Ncloud Image 출력
6. Container 생성
6.1 네트워크 N1에 http 웹 사이트 생성, 컨테이너 이름은 h1, 출력 내용은 index.html
6.2 네트워크 N2에 nginx 웹 사이트 생성, 컨테이너 이름은 n1, 출력 내용은 index1.html
7. haproxy 설치
7.1 Host PC의 80port로 서비스
7.2 페이지 새로고침 시 컨테이너 h1과 컨테이너 n1의 내용이 교체 출력 되어야 합니다.
8. 위의 작업을 완벽하게 삭제하는 스크립트도 작성하세요.
2. Script 생성
2.1 시나리오 1~7의 Script
- 확장자가 sh인 파일을 하나 생성한다.
#! /bin/bash
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
systemctl start docker
docker pull httpd
docker pull nginx
docker pull alpine
docker pull centos:7
docker network create --subnet 192.168.11.0/24 --gateway 192.168.11.254 N1
docker network create --subnet 192.168.12.0/24 --gateway 192.168.12.254 N2
cat > index.html << EOF
<html>
<body>
<h1>Container-WEBSERVER-1</h1>
</body>
</html>
EOF
cat > index1.html << EOF
<html>
<body>
<h1>Container-WEBSERVER-2</h1>
</body>
</html>
EOF
docker run -itd --net N1 --name h1 httpd
docker cp index.html h1:/usr/local/apache2/htdocs/index.html
docker run -itd --net N2 --name n1 nginx
docker cp index1.html n1:/usr/share/nginx/html/index.html
curl 192.168.11.1
curl 192.168.12.1
yum install -y haproxy
sed -i 's/5000/80/g' /etc/haproxy/haproxy.cfg
sed -i 's/127.0.0.1:5001/192.168.11.1:80/g' /etc/haproxy/haproxy.cfg
sed -i 's/127.0.0.1:5002/192.168.12.1:80/g' /etc/haproxy/haproxy.cfg
systemctl restart haproxy
firewall-cmd --add-port=80/tcp
- 시나리오에 해당하는 명령들을 스크립트에 작성 후 저장한다.
- 기본적으로 sh 파일이 생성되면 사용자에게 실행 권한이 없기 때문에 sh 파일을 실행시키기 위해 사용자에게 실행 권한을 부여한다.
2.2 시나리오 8의 Script
- 마찬가지로 sh 파일을 하나 생성한다.
#! /bin/bash
systemctl restart docker
docker rm -f $(docker ps -aq)
docker rmi $(docker images -q)
systemctl stop docker service
systemctl stop containerd.service
yum remove -y containerd.io.x86_64
yum remove -y docker-ce-cli.x86_64
yum remove -y haproxy
rm -rf index*
- 시나리오 8에 해당하는 내용을 작성 후 저장한다.
- 마찬가지로 사용자에게 실행 권한이 기본적으로 주어지지 않기 때문에 파일에 사용자 실행 권한을 부여한다.
'Programming > Docker' 카테고리의 다른 글
Docker - Link ( + Scripts) (0) | 2022.06.01 |
---|---|
Docker - Image 생성 (0) | 2022.05.31 |
Docker - HAProxy, Network, Port Forwarding (0) | 2022.05.30 |
Docker - Network (0) | 2022.05.30 |
Docker - Copy, Volume (0) | 2022.05.30 |