1. MYSQL 서비스 구축 : PC1

 1.1. 설치 : dnf install -y mysql

 1.2. docker mysql 이미지 가져오기 : docker pull mysql  

 1.3. docker mysql 볼륨 만들기 : docker volume create mysql

 1.4. mysql 컨테이너 실행 : docker run [run 옵션] -v [볼륨 명]:[마운트하고자 하는 컨테이너 디렉토리] -e [mysql 비밀번호 환경 변수]  --name [컨테이너 명] mysql:5.7

  ex) docker run -itd -v mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=It12345! --name m1 mysql:5.7

 1.5. mysql 데이터베이스 만들기

   step1) 접속 : mysql -uroot -p[root 비밀번호] -h [mysql 서버 ip 주소]

    ex) mysql -uroot -pIt12345! -h 172.17.0.2

   step2) 데이터베이스 만들기 : create database word;

   step3) 나가기 : exit

 1.6. 방화벽 설정 :  firewall-cmd --add-port=3306/tcp

 

2. WORDPRESS 서비스 구축 : PC2

 2.1. wordpress 이미지 가져오기 : docker pull wordpress

 2.2. wordpress 컨테이너 실행 : docker run [run 옵션] -e WORDPRESS_DB_HOST=[mysql 서버 ip 주소] -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=[mysql root 계정 비밀번호] -e WORDPRESS_DB_NAME=[mysql 데이터베이스 명] --net host --name [컨테이너 명] wordpress:5.8

  ex) docker run -itd -e WORDPRESS_DB_HOST=172.16.0.22 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=It12345! -e WORDPRESS_DB_NAME=word --net host --name w1 wordpress:5.8

 2.3. 방화벽 설정 : firewall-cmd --add-port=80/tcp

 

3. 연동 확인 : PC2 IP 주소 URL 입력 

1. HTTPD 웹 서비스 구축 : PC1

  1.1. HTTPD 이미지 가져오기 : docker pull httpd

  1.2. HTTPD 컨테이너 실행 : docker run [실행 옵션] --name [컨테이너 명] -p [호스트 포트 번호:컨테이너 포트 번호]/tcp httpd

   ex) docker run -itd --name h1 -p 60001:80/tcp httpd

  1.3. HTML 파일 만들기

   step1) 열기 : vi index.html 

   step2) 코드 예시 

<html>
<body>
<h1>DOCKER-WEB-HTTPD</h1>
</body>
</html>       

 

   step3) 저장   

  1.4. HTML 파일 로컬에서 컨테이너로 보내기 : docker cp index.html [컨테이너명]:[컨테이너 html 디렉토리]

   ex) docker cp index.html h1:/usr/local/apache2/htdocs/

 

2. NGINX 웹 서비스 구축 : PC2

  2.1. NGINX 이미지 가져오기 : docker pull nginx

  2.2. NGINX 컨테이너 실행 : docker run [실행 옵션] --name [컨테이너 명] -p [호스트 포트 번호:컨테이너 포트 번호]/tcp nginx

   ex) docker run -itd --name n1 -p 60001:80/tcp nginx

  2.3. HTML 파일 만들기

   step1) 열기 : vi index.html 

   step2) 코드 예시 

<html>
<body>
<h1>DOCKER-WEB-NGINX</h1>
</body>
</html>       

 

   step3) 저장   

  2.4. HTML 파일 로컬에서 컨테이너로 보내기 : docker cp index.html [컨테이너명]:[컨테이너 html 디렉토리]

   ex) docker cp index.html n1:/usr/share/nginx/html/

 

3. HAPROXY 로드밸런서 구축 : PC3

  3.1. HAPROXY 설치 : dnf install -y haproxy

  3.2. HAPROXY 설정 

   step1) 열기 : vi /etc/haproxy/haproxy.cfg 

   step2) 웹 서버 IP주소, 포트 번호 입력 

 

   step3) 저장 

 

  3.3. HAPROXY 구동 (부팅시에도) : systemctl enable --now haproxy

  3.4. 방화벽 설정 : firewall-cmd --add-port=80/tcp

 

 

 

 

 

1. docker 설치 

 1.1. docker 엔진 설치 

  step1) dnf 플러그인 설치 : dnf -y install dnf-plugins-core

  step2) 레포지토리 추가 : dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

  step3) docker 엔진 설치 : dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

 1.2. docker 서비스 구동 (부팅시에도) : systemctl enable --now docker

 1.3. 로그인 : docker login -u [아이디]

 

2. docker 활용 

 2.1. 이미지 다운로드 : docker pull [이미지 명(레포지토리)]

 2.2. 다운받은 이미지 확인 : docker images

 2.3. 이미지 실행 : docker run -itd -p [포트번호] --name [컨테이너 명] [이미지 명(레포지토리)]

    * ex) docker run -itd -p 65080:80 --name h1 httpd

    * 이름을 정해주지 않으면 자동으로 생성되기 때문에 정해주는 것이 좋음

 2.4. 컨테이너 실행 상태 확인 : docker ps 
 2.5. 로컬 파일을 컨테이너로 복사 : docker cp [로컬 파일] [컨테이너 명:컨테이너 디렉토리]
    * ex) docker cp index.html h1:/usr/local/apache2/htdocs
 2.6. 컨테이너 상태를 이미지로 저장 : docker commit [컨테이너 명] [저장할 이미지 명]

    * ex) docker commit h1 httpd:1.0
 2.7. 이미지 ID로 이미지 삭제 :  docker rmi [이미지 ID]

    * ex) docker rmi 2582cc6739c6

 2.8. 이미지 파일들 하나의 아카이브 파일로 저장 : docker save -o [아카이브 파일명.tar] [이미지 파일명] [이미지 파일명] ...

    * ex) docker save -o test.tar httpd:1.0 alpine:latest
 2.9. 컨테이너를 아카이브 파일로 저장 : docker export -o [아카이브 파일명.tar] [컨테이너 명]

    * ex) docker export -o test1.tar a1

    * export는 환경 변수가 초기화 되므로, 컨테이너를 이미지 파일로 저장하고 save 해서 파일 이동하는 것을 권장 

 2.10. 아카이브 파일을 이미지 파일로 저장 : docker import [아카이브 파일명] [저장하고자 하는 이미지 명]
    * ex) docker import test1.tar alpine:1.0
 

+ Recent posts

# 드래그 금지