docker Swarm에 대하여2 - 8.23

양승현·2022년 8월 23일
0

docker

목록 보기
4/12

복습 -> 클러스터 환경 구성 -> 간단한 평가

복습

가상화

  • 추상화된 자원을 묶음(cpu, ram, disk 등)

hypervisor

  • type1 Baremetal
    리눅스 안에 커널이 있고 커널안에 kvm을 설치, 물리 자원 위에 직접 설치한다.
  • type2 host based Hypervisor
    자원 위에 os가 있고 os 위에 하이퍼바이저가 있다.

컨테이너 생성

  • docker container run
    컨테이너를 생성하고 시작할 수 있다.
  • docker container create
    컨테이너 생성
  • docker container start
    컨테이너 시작
  • docker container run -it --name yang contos:7 /bin/bash
centos:7 --> 로컬 저장소
-it --> -t 는 ssh 와 같은 컨테이너와의 연결 통로를 만들어준다.
    --> -i 는 물어보고 답하는 대화형 옵션을 부여하는 것이다. 이를 통해 /bin/bash 명령어를 전달한다.
-d --> 백그라운드 실행 (일반적으로 compose에서의 서비스는 -d가 가능한 이미지어야 한다.)
--name --> 이름을 부여한다. 
/bin/bash --> 전달할 명령 (/bin/bash 로 이동하여 shell 을 실행시킨다)
이미지는 정적 파일이다.

3-tier

  • Web - Was - DB

docker-compose

Version:
Service:

          --> 컨테이너의 묶음
          --> 하위에 컨테이너를 작성한다.
  web:
  was:
  db:

nerworks:
volumes:


웹 서비스 데몬의 위치

이미지           웹 서비스 경로
httpd           /use/local/apache2/htdocs
nginx           /usr/share/nginx/html
centos+httpd    /var/www/html
ubuntu+nginx    /var/www/html
ubuntu+apache2(httpd)    /var/www/html

저장소

  • public registry
    -> yang/mylab:1.0 -> push (인증정보확인) 로그인 docker login
  • private registry
    -> 10.10.10.10:5000/myweb:1.0 -> push (인증정보확인) 로그인 docker login https://10.10.10.10
  • local registry
    -> mylab:1.0 [repository name]:[tag]

실습1 - Dockerfile

rapa@rapa:~/0823$ vi test1/Dockerfile

FROM ubuntu:18.04

RUN apt update
RUN apt -y install apache2
ADD index.html /var/www/html
EXPOSE 80 8080

CMD apache2ctl -D FOREGROUND
  • index.html 생성
rapa@rapa:~/0823/test1$ echo "hello" > index.html
  • 이미지 생성
rapa@rapa:~/0823/test1$ docker build -t myweb:1.0 .
  • 컨테이너 생성
rapa@rapa:~/0823/test1$ docker container run -d -p 8008:80 --name myweb01 myweb:1.0

실습1 - docker-compose.yml

rapa@rapa:~/0823/test1$ cd ../test2
rapa@rapa:~/0823/test2$ vi docker-compose.yml

version: '3.8'
services:
  wordpress:
    image: wordpress
    networks:
      - testnetwork1
    volumes:
      - /home/rapa/0823/test2/html:/var/www/html # MOUNT USING NFS
    ports:
      - "8881-8882:80"
    links:
      - db:mysql
    depends_on:
      - db
    environment:
      - WORDPRESS_DB_PASSWORD=test123
      - WORDPRESS_DB_USER=root
      - WORDPRESS_DB_NAME=testdb

  db: 
    image: mysql:5.7
    networks: 
      - testnetwork1
    volumes: 
      - testvolume1:/var/lib/mysql # VOLUME USING ISCSI
    environment:
      - MYSQL_ROOT_PASSWORD=test123
      - MYSQL_DATABASE=testdb
      
networks: 
  testnetwork1: 
    external: true
volumes: 
  testvolume1 : 
    external: true
  • network 생성
rapa@rapa:~/0823/test2$ docker network create testnetwork1
  • volume 생성
rapa@rapa:~/0823/test2$ docker volume create testvolume1
  • 컨테이너 생성
docker-compose up --scale wordpress=2 --scale db=2 -d
  • 모든 중인 컨테이너 확인
docker-compose ps

삭제

  • 컨테이너 리스트
rapa@rapa:~/0823/test2$ docker container ls
  • 컨테이너 모두 삭제
rapa@rapa:~/0823/test2$ docker rm -f $(docker ps -aq)
  • 네트워크 리스트
rapa@manager:~$ docker network ls
  • 네트워크 삭제
rapa@manager:~$ docker network rm ID
  • 볼륨 리스트
rapa@rapa:~/0823/test2$ docker volume ls
  • 볼륨 모두 삭제
rapa@rapa:~/0823/test2$ docker volume prume

0개의 댓글