블록체인 개발 공부 01 - 리눅스 우분투 환경에 Docker 설치 및 기초 실습

in #docker6 years ago

Docker 개요


       1.  Docker 개념

  • 항상 게스트 OS를 설치해야하는 가상머신의 단점을 image와 container 개념으로 보완.
  • image  : 서버운영 위한 프로그램과 라이브러리만 격리해서 설치한 것. ex)OS 실행파
  • container : image를 바로 메모리에 올려서 사용하는 개념. image가 실행되고 있는 격리된 상태 .
  • 정리 : Docker의 핵심 -> 하드웨어 가상화가 아닌 실행 환경 분리(Isolation) 


      2.  Docker의 구조

  • docker engine : 도커 코어기능
  • docker machine : 도커 실행 환경 구축
  • docker hub : Public, Private 이미지 저장소
  • docker registry : 이미지 공개 및 공유
  • docker kitematic : Docker GUI tool
  • docker compose : 여러 컨테이너 통합관리
  • docker swarm : 클러스터 관리


Docker 실습

       1.  Docker 설치

  • # apt update
  • # apt install curl
  • # curl -fsSL https://get.docker.com | sudo sh설치 후 버전 확인# docker version
  • # docker info


        2.  Docker 이미지 생성

  • # docker search 이미지명// docker hub웹에서 이미지를 찾는다.
  • # docker pull 이미지명 // 이미지를 다운로드 한다.
  • # docker images // 현재 다운된 이미지 확인
  • # docker inspect 이미지명 //이미지 혹은 컨테이너의 세부정보를 json 형태로 출력


        3.  Docker 이미지 편집

  • # docker tag 이미지명 태그명 // 이미지의 태그를 수정. image id는 동일하다. 보이는 태그만 바뀜.
  • # docker history 이미지명 // 이미지의 history 출력
  • # docker rmi 이미지명 // 이미지 삭제
  • # docker rmi $(docker images -q) -f // 전체이미지 삭제 q(quite, 내부명령) / f(force, 강제)


       4. Docker 컨테이너 생성

  • # docker run -it --name=컨테이너명 이미지명 // run 명령어 : 컨테이너 생성. 이미지 있을 경우 이미지 사용. 이미지 없을 경우 이미지 자동 pull 후 사용. install과는 다른 개념.
  • # ctrl+p + ctrl+q // 컨테이너 살려두고 빠져나오기
  • # docker run -d centos /bin/ping localhost // -d 백그라운드 프로세스 옵션, centos 이미지 실행후 로컬호스트에 핑 보내기
  • # docker ps -a // 현재 생성된 컨테이너 보여주기 , -a 옵션 (all) , -f  옵션 (filter)
  • # docker logs -t 컨테이너명 // 컨테이너의 로그 출력
  • # docker run -p 8080:80 httpd // 로컬포트 8080을 컨테이너포트 80로 포워딩
  • # netstat -nlp | grep 8080 //  포트넘버 8080의 네트워크 상태를 확인한다.
  • # docker run -it --add-host=test.com:192.168.1.1 centos // 컨테이너의 /etc/hosts에 호스트 이름과 주소를 추가


       5. Docker 컨테이너 응용

  • # docker start,stop,kill ,restart 컨테이너명 // 컨테이너 시작, 정지, signal, 재시작
  • # docker pause,unpause 컨테이너명 // 컨테이너의 모든 프로세스 일시정지
  • # docker rm -f 컨테이너명 //컨테이너 강제삭제
  • # docker container prune // 프로세스 중이지 않은 컨테이너 만 제거
  • # docker start,stop,kill ,restart 컨테이너명 // 컨테이너 시작, 정지, signal, 재시작
  • # docker pause,unpause 컨테이너명 // 컨테이너의 모든 프로세스 일시정지
  • # docker attach 컨테이너명 // 실행되고 있는 컨테이너의 표준 입력과 표준 출력을 연결.
  • # docker top 컨테이너명 // 컨테이너에서 실행되고있는 프로세스 출력.


       6. Docker  포맷 변화

  • # docker commit -a 관리자명 컨테이너명 이미지명 // 컨테이너-> 이미지
  • # docker export 컨테이너명 > 파일명.tar // 컨테이너 -> 파일
  • # cat 파일명.tar | docker import - 이미지명 // 파일 -> 이미지
  • # docker save -0 파일명.tar 이미지명 // 이미지->파일
  • # docker load -i 파일명.tar // 파일-> 이미지

 


Sort:  

Congratulations @boybuddha! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!