[생활코딩] 도커 docker 정리본


정리

  • 도커는 가상머신하고 같은 효과인데 OS를 띄우지 않음
  • pull 해서 공식이든 남이만들었든 패키지 관리자를 가져온다.
  • 그 관리로 컨테이너를 만들어 준다.
  • 그 컨테이너는 하나의 가상환경처럼 움직인다.
  • nginx같은 앱 형태도 컨테이너가 가능했다.(어떤 느낌인지는 잘 모르겠다 솔직히)
  • 밖에서도 컨테이너를 조작할수 있다.

전체 강의 요약

  • 도커 : 운영체제 안에서 프로세스를 격리하는 기술. 가상머신과 동일한 효과.(가상머신으로하면 OS위에 OS를 해야한다. 그래서 느리다.)
  • 가상머신과 다른점 : 프로세스를 격리할뿐 OS를 띄우지 않는다. 가상머신의 효과는 낼수 있다.
  • 도커는 리눅스 전용이다.
  • 우분투 환경에서 설치 및 사용해 보자.
    • http://pyrasis.com/Docker/Docker-HOWTO 에서 설치하기
    • sudo wget -q0- 사이트이름 : 도커 패키지 설치(위의 사이트에 코드 다 나와있다.)
    • docker 입력하면 명령어 나옴.
    • 사용할 때 : sudo(관리자권한=루트계정 권한)으로 해야한다. 무조건. 남의 운영체제에서는 불가하다.
    • sudo를 일일히 치지 않아도 되게 하기 : 명령어 쪽 올려서 보다보면 sudo user mod -aG docker 이름 내용을 복사해서 붙어넣기면 된다.(도커 그룹을 이름 계정에 추가한다 라는 뜻). 이걸 입력함으로써 도커계정은 루트계정 권한을 가지고 있다.
    • docker version 이라고 치면 : permission denied가 되는데. exit 입력해서 나갔다가 다시 들어오면 된다.(그룹에 대한 권한 설정이 아직 안되었기 때문에 로그아웃하고 다시 접속)
    • 다시 docker version 입력하면 버젼 내용 등이 나온다.
    • 우분투 이미지를 실행한다.(이미 패키지 관리자가 설치된 이미지를 받아와야한다.)
    • docker images 입력하면 : hello-world라는 이름을 되어있는 파일이 하나 만들어져있다.
    • 도커도 push와 pull이 있다. hub라는 것도 있다.(깃과 깃허브 처럼 도커 도커허브)
    • 우분투의 패키지 관리자 가져오기 : docker pull ubuntu:14.04
    • 최신판으로 패키지 관리자 가져오려면 : docker.com -> browse -> 검색에 ubuntu라고 치면 배포판이 나온다. 센토스도 마찬가지다. 방금 했던거 처럼 dockser pull ubuntu:버젼 하면 된다.
    • 잘 깔렸나 확인 : docker images
    • 도커는 이미지(실행파일과 라이브러리가 포함된 이미지)와 컨테이너(이미지를 실행한 상태) 나뉘어진다.
    • 컨테이너를 생성 동시에 실행(느낌은 OS부팅 느낌이지만 그런 느낌) : docker run -i -t ubuntu:14.04 /bin/bash (bin/bash : 컨테이너안에 있는 실행파일을 실행해서 실행한 상태로 만들어야한다. 그래서 실행 시키는 것)
    • 그러면 ‘root /#’ 라고 되는데 bash를 통해서 들어온거다.
    • ls를 입력하면 리눅스 기본적인 디렉토리 환경이 보인다.(내 리눅스가 아니라 도커안에 환경이다. 바깥과는 별개의 환경. 가상환경가 같지만 가상환경은 아니다.)
    • ps ax 로 보면 우리가 실행한 /bin/bash가 떠있다.(실행중이라는 뜻이다.)
    • 깃 설치 : apt-get update 해주고 apt-get install git(루트권한이니까 sudo는 안붙여줘도 된다.)(강의에서는 용량이 커서 설치 안함)
    • 종료 하려면 : exit를 입력하면 bash 종료(Ctrl+D 라고 쳐도됨)
    • 종료 후 도커가 켜져 있나 보려면 : docker ps 입력하면 아무것도 안나온다.
    • 이전 도커 실행하고 종료했던 내역 보기 : docker ps -a 여기 보면 닉네임(Name)을 자동으로 만들어준다.
    • 실행만하기(들어가진X) : docker start 닉네임 (아깐 run했는데 그건 실행+들어가기)
    • 실행 후 들어가기 : docker attach 닉네임 입력하고 엔터한번 더 누르면 /# 처럼 됨
    • 중단하지 않고 빠져나오기 : ctrl + P + Q (bash의 단축키임), 후에 docker ps 눌러보면 종료되지 않았다는것을 볼 수 있다.
    • 밖에 나온 상태로 도커 정지하기 : docker stop 닉네임 입력 하면 정지. docker ps -a 입력하면 나온 이력 나온다.
    • 다른 운영체제와 다르게 컨테이너는 계속 남아 있다.
    • 컨테이너를 삭제 : docker rm 닉네임를 입력하고 docker ps -a라고 입력해보면 내역조차 없음
    • 그냥 파일 삭제 : docker rmi hello-world 입력하면 헬로월드 지워짐. docker images 입력해보면 사라져있음.
    • nginx를 깔아보기(앱) : docker pull nginx:latest 입력(참고로 latest라고 입력하면 최신버젼으로 됨). 이건 운영체제가 아니라 애플리케이션이라 다르다.
    • 깔았는지 확인하기 : docker images
    • 실행하기 : docker run -d --name hello-nginx nginx:latest(안에서 nginx를 자동으로 실행하기 때문에 bash같이 안해도 된다.)(밖에 있는 nginx하고 포트가 충돌 날 경우는 -p 8000:80처럼 포트포워딩을 해주겠다.)
    • 확인하기 : docker ps
    • 밖에서 컨테이너 안에 파일을 만들어 보기 :
      • 우분투 컨테이너 만들기고 들어가기 : docker run -i -t --name hello ubuntu:14.04 /bin/bash
      • 컨테이너에서 나오기(끄진않고) : ctrl+P+Q
      • 도커 컨테이너 내역 확인 : docker ps
      • 컨테이너 안에 파일 만들어 보기 : docker exec hello touch /hello.txt 라고 하면 만들어져 있을것이다.
      • 컨테이너 들어가기 : docker attach hello
      • 컨테이너 안에 내역 보기 : ls / 그 안에 hello.txt가 있는것을 볼 수 있다.

생활코딩 : Docker 을 보고 정리하였다.




© 2018. by statssy

Powered by statssy