Programming/Docker

Docker - Scripts

잇(IT) 2022. 5. 31. 12:49

 

목차

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에 해당하는 내용을 작성 후 저장한다.

 

- 마찬가지로 사용자에게 실행 권한이 기본적으로 주어지지 않기 때문에 파일에 사용자 실행 권한을 부여한다.

728x90

'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