[생활코딩] 도커 docker 정리본
in Development on 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 을 보고 정리하였다.