도커란?
- 리눅스의 응용프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈소스 프로젝트
컨테이너
>도커 컨테이너는 일종의 소프트웨어의 실행에 필요한 모든것을 포함하는 완전한 파일 시스템안에 감싸 실행중인 환경에 관계없이 언제나 동일하게 실행될 것을 보증
도커설치
-우아하게 (windows 10pro이상)
-무식하게
-버츄얼박스를 이용해서 설치
도커툴박스
https://github.com/docker-archive/toolbox/releases/tag/v19.03.1
버츄얼박스
PC > 꺼짐, 켜짐
도커
image(이미지)
-컨테이너 실행에 필요한 파일과 설정을 포함하고 있는 것
nginx포트를 연결
도커 기초명령어들
docker images
-다운로드 된 이미지들 리스트를 찾는 명령어
docker search 이미지이름
-이런 이름의 이미지가 도커 허브에 있는지 찾는 명령어
docker pull 이미지이름
-이미지 다운로드하는 명령어
docker ps
-현재 실행중인 이미지들을 확인 하는 명령어
docker rm -f 컨테이너 ID
- 도커 컨테이너 하나만 종료하는 명령어
docker rm -f $(docker ps -q -a)
- 도커 컨테이너 전체 종료하는 명령어
docker run 옵션 이미지이름
run : 이미지 실행, 컨테이너 이름이 랜덤하게 정해짐
옵션 종류
-p : 호스트와 컨테이너의 포트를 연결(포워딩)
-p 호스트넘버:컨테이너내에서 사용되는 포트넘버/프로토콜
--rm : 프로세스를 종료시 컨테이너 자동 제거
-v : 호스트와 컨테이너의 디렉토리를 연결
docker run --name 컨테이너이름 이미지이름 : 컨테이너 시작, 컨테이너 이름이 지정한 이름으로 정해짐
docker ps 옵션
ps : 컨테이너 목록확인
-a : 실행했다가 종료된 컨테이너도 보임
컨테이너 아이디를 이용해서 컨테이너 제거
docker rm 옵션 컨테이너이름 or 컨테이너id
rm : 컨테이너 제거
컨테이너 아이디를 입력할때 앞부분이 겹티지 않는다면 2글자 정도만 입력해도 됨.
docker rm -f $(docker ps -a -q) : 모든 컨테이너를 삭제
docker rmi -f 이미지이름 : 이미지 삭제
docker rmi -f $(docker images -aq) :모든 이미지를 삭제
docker stop docker옵션 컨테이너 아이디
stop : 도커컨테이너 중지 스스로 꺼지도록 기다림
docker stop kill 컨테이너이름 or 컨테이너 ID
kill : 컨테이너 중지 무식하게 바로 끄기
docker run nginx > 연결이 안됨
docker run -p 8020:80 nginx
-포트포워딩 이름/TCP/0.0.0.0/8020/ /호스트포트와 동일하게 작성
실행중인 image 멈추는 방법(ID이름은 앞의 2~3글자만 적어도 가능)
파일 경로 확인
도커 컴포즈란?
- 여러개의 컨테이너를 하나로 묶어주는 역할을 하는 툴
도커 컴포즈의 장점
- 명령어가 굉장히 간단하다.
- 컨테이너가 여러개 실해되야 하는 시스템 구성을 할때 깔끔하게 정리를 할 수 있음
- 도커 설치 명령어 (putty에서 설치)
- 필요한 종속성을 설치
sudo yum install yum-utils device-mapper-persistent-data lvm2 -y - 도커 안정적 리포지토리를 시스템에 추가
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo -y - 도커 리포지토리가 사용되도록 설정되었으므로 yum을 사용해서 최신 버전의 도커-ce를 설치
sudo yum install docker-ce -y - 도커 실행
sudo systemctl start docker - 도커를 시작하고 부팅할때 도커가 자동으로 시작되도록 설정
sudo systemctl enable docker
- 필요한 종속성을 설치
- 도커 컴포즈 설치 명령어
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
!!!명령어 입력 후 putty 재시작 해야함!!!
sudo usermod -aG docker ${USER}
8011 => /web/site1/public
8012 => /web/site2/public
8013 => /web/site3/public
pureftpd => 사용자관리 MariaDB(pureftpd/it123414)
버츄얼박스
---------------
centos7
---------------
nginx
pureftpd
mariadb
마리아DB를 끈 상황
도커로 마리아DB를 실행
기존처럼 pureftpd가 잘 작동해야함