Docker 입문 기초 용기 사용

Docker 입문 기초 용기 사용
Docker 소개
Docker 는 Go 언어 를 기반 으로 아파 치 2.0 프로 토 콜 을 따 르 는 오픈 소스 응용 용기 엔진 입 니 다.
Docker 는 개발 자 들 로 하여 금 그들의 응용 프로그램 을 포장 하고 경량급,이식 가능 한 용기 에 의존 하 게 한 다음 에 유행 하 는 Linux 기기 에 발표 할 수도 있 고 가상 화 를 실현 할 수 있 습 니 다.
용 기 는 샌 드 박스 체 제 를 완전히 사용 하여 서로 인터페이스(아이 폰 과 유사 한 app)가 없 으 며,더욱 중요 한 것 은 용기 의 성능 비용 이 매우 낮 다 는 것 이다.
우 분투 Docker 설치
1.Docker 공식 설치 방법
Docker 는 Ubuntu 시스템 의 커 널 버 전이 3.10 이상 이 어야 하 며,이 페이지 의 전제조건 을 살 펴 서 Ubuntu 버 전이 Docker 를 지원 하 는 지 확인 하 라 고 요구 합 니 다.설치 패키지 가 져 오기:
root@ubuntu:~# wget -qO- https://get.docker.com/ | sh

설치 완료 후 알림:
 If you would like to use Docker as a non-root user, you should now consider
  adding your user to the "docker" group with something like:
 ​
   sudo usermod -aG docker runoob
  Remember that you will have to log out and back in for this to take effect! 

docker 서비스 시작
root@ubuntu:~# sudo service docker start

2、URLOS 설치 로 획득
URLOS 는 Docker 를 기반 으로 실행 되 고 URLOS 를 설치 한 것 은 Docker 를 설치 한 것 과 같 습 니 다.저 희 는 URLOS 공식 설치 명령 을 사용 할 수 있 습 니 다.
curl -LO www.urlos.com/iu && sh iu

혹시
curl -O https://www.urlos.com/install && chmod 544 install && ./install

Docker 용 기 는 Docker 클 라 이언 트 Docker 클 라 이언 트 를 사용 하 는 것 이 매우 간단 합 니 다.Docker 명령 을 직접 입력 하여 Docker 클 라 이언 트 의 모든 명령 옵션 을 볼 수 있 습 니 다.
 root@ubuntu:~# docker

명령docker command --help을 통 해 지정 한 Docker 명령 사용 방법 을 더욱 깊이 알 수 있 습 니 다.예 를 들 어 우 리 는docker stats명령 의 구체 적 인 사용 방법 을 살 펴 봐 야 한다.
 root@ubuntu:~# docker stats --help

용기 시작(대화 모드)우리 가 버 전 16.04 의 ubuntu 시스템 미 러 를 사용 하여 용 기 를 실행 하려 면 명령 은 다음 과 같 습 니 다.
 root@ubuntu:~# docker run -it ubuntu:16.04 sh

버 전 15.04 의 ubuntu 시스템 미 러 를 사용 하려 면 명령 은 다음 과 같 습 니 다.
root@ubuntu:~# docker run -it ubuntu:15.04 sh

매개 변수 분석:
  • docker:Docker 의 바 이 너 리 실행 파일 입 니 다.
  • run:앞의 docker 와 조합 하여 용 기 를 실행 합 니 다.
  • -it:사실은 두 개의 매개 변수 로 구성 되 어 있 습 니 다.-i 와-t,-i:용기 안의 표준 입력(STDIN)과 상호작용 을 할 수 있 습 니 다.-t:새 용기 에 가짜 터미널 이나 터미널 을 지정 합 니 다.
  • ubuntu:15.04:실행 할 미 러 를 지정 합 니 다.Docker 는 먼저 로 컬 호스트 에서 미 러 가 존재 하 는 지 찾 습 니 다.존재 하지 않 으 면 Docker 는 미 러 창고 Docker Hub 에서 공공 미 러 를 다운로드 합 니 다.
  • sh:명령 을 집행 합 니 다.

  • 위의 명령 을 약간 수정 하고 끝 에 명령 을 추가 하여 실행 한 후:
    root@ubuntu:~# docker run -it ubuntu:16.04 sh -c "while true; do echo hello urlos; sleep 1; done"
    hello urlos
    hello urlos
    hello urlos
    hello urlos
    hello urlos
    hello urlos
    ^Croot@ubuntu:~#

    우 리 는 터미널 에서 끊임없이 출력hello urlos하 는 것 을 볼 수 있 는데,이때 키보드Ctrl+c를 누 르 면 출력 을 중지 할 수 있다.용기(백 스테이지 모드)를 시작 합 니 다.위의 명령 을 조금 만 더 수정 하고-it-d로 바 꾸 어 결 과 를 보 겠 습 니 다.
    root@ubuntu:~# docker run -d ubuntu:16.04 sh -c "while true; do echo hello urlos; sleep 1; done"
    0cf141fd0745fb4dc104bec1a3238a1bd8dad7aa72926dea0a39ddc7ba54fe32

    출력 에서 우 리 는 기대 하 는'hello World'를 보지 못 하고 긴 문자0cf141fd0745fb4dc104bec1a3238a1bd8dad7aa72926dea0a39ddc7ba54fe32를 보 았 다.
    이 긴 문자열 은 용기 ID 라 고 하 는데 모든 용기 에 유일한 것 입 니 다.용기 ID 를 통 해 해당 용기 에 무슨 일이 일 어 났 는 지 볼 수 있 습 니 다.우선,용기 가 작 동 하고 있 는 지 확인 해 야 합 니 다.docker ps 을 통 해 확인 할 수 있 습 니 다.
    root@ubuntu:~# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                     NAMES
    0cf141fd0745        ubuntu:16.04        "sh -c 'while true; …"   2 minutes ago       Up 2 minutes                                  hopeful_matsumoto

    그리고docker logs [ID ]명령 을 사용 하여 용기 안의 표준 출력 을 봅 니 다.
    root@ubuntu:~# docker logs hopeful_matsumoto
    hello urlos
    hello urlos
    hello urlos
    hello urlos
    hello urlos
    hello urlos
    hello urlos
    hello urlos

    우 리 는 용기 내부 에서 이미 매우 많은hello urlos을 출력 한 것 을 볼 수 있다.이것 은 용기 가 배경 에서 운행 하 는 모드 에 있다 는 것 을 설명 한다.
    WEB 응용 용 기 를 실행 합 니 다.현재 docker 용기 에서 nginx 응용 프로그램 을 실행 하여 웹 응용 프로그램 을 실행 할 것 입 니 다.
    먼저 Docker Hub 공공 미 러 원본 에서 미 러 를 끌 어 옵 니 다.
    root@ubuntu:~# docker pull nginx

    그리고 이 미 러 를 실행 합 니 다:
    root@ubuntu:~# docker run -d -p 8080:80 nginx

    매개 변수 설명:
  • -d:용 기 를 배경 에서 작 동 시 킵 니 다.
  • -p:호스트 의 8080 포트 를 용기 내부 의 80 포트 에 비 추 게 합 니 다.

  • WEB 응용 용기 보기docker ps를 사용 하여 우리 가 실행 중인 용 기 를 봅 니 다.
    root@ubuntu:~# docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
    b394756b6c5d        nginx               "nginx -g 'daemon of…"   3 seconds ago       Up 2 seconds        0.0.0.0:8080->80/tcp                elastic_babbage

    우 리 는 포트 정보0.0.0.0:8080->80/tcp를 보 았 는데,숙 성 호스트 의 8080 포트 가 용기 내부 의 80 포트 에 비 친 다 는 뜻 이다.
    이 때 우 리 는 브 라 우 저 를 통 해 WEB 응용 프로그램 에 접근 할 수 있 습 니 다.
    포트 를 보 는 단축 키docker ps명령 을 통 해 용기 의 포트 맵 을 볼 수 있 습 니 다.docker 는 또 다른 단축 키docker port를 제공 합 니 다.docker port를 사용 하면 지정 한(ID 또는 이름)용기 의 특정한 포트 가 호스트 에 비 치 는 엔 드 구 호 를 볼 수 있 습 니 다.
    위 에 저희 가 만 든 웹 응용 용기 ID 는 b394756b6c5d 용기 이름 은 elastic 입 니 다.babbage。
    docker port b394756b6c5d 또는 docker port elastic 을 사용 할 수 있 습 니 다.babbage 는 용기 포트 의 매 핑 상황 을 봅 니 다.
    root@ubuntu:~# docker port b394756b6c5d
    80/tcp -> 0.0.0.0:8080
    root@ubuntu:~# docker port affectionate_montalcini
    80/tcp -> 0.0.0.0:8080

    WEB 프로그램 로그 사용docker logs [ID ]을 보면 용기 내부 의 표준 출력 을 볼 수 있 습 니 다.
    root@ubuntu:~# docker logs b394756b6c5d
    192.168.43.131 - - [04/Jun/2019:06:28:42 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0" "-"
    2019/06/05 06:28:42 [error] 6#6: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.43.131, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.43.122:8080"
    192.168.43.131 - - [04/Jun/2019:06:28:42 +0000] "GET /favicon.ico HTTP/1.1" 404 153 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0" "-"

    WEB 응용 프로그램 용기 의 프로 세 스 를 볼 수 있 습 니 다.용기 내부 에서 실행 되 는 프로 세 스 를 볼 수 있 습 니 다.
    root@ubuntu:~# docker top b394756b6c5d
    UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
    root                2069                2050                0                   23:24               ?                   00:00:00            nginx: master process nginx -g daemon off;
    systemd+            2100                2069                0                   23:24               ?                   00:00:00            nginx: worker process

    WEB 용기 사용 정지docker top명령 용기 정지
    root@ubuntu:~# docker stop b394756b6c5d
    b394756b6c5d

    WEB 응용 용기 시작docker stop [ID ]정지 한 용기 시작 명령
    root@ubuntu:~# docker start b394756b6c5d
    b394756b6c5d

    WEB 용 기 를 다시 시작 합 니 다.실행 중인 용 기 를 다시 시작 하 라 는 명령 을 사용 할 수 있 습 니 다.
    root@ubuntu:~# docker restart b394756b6c5d
    b394756b6c5d
    docker start [ID ]마지막 으로 만 든 용 기 를 조회 합 니 다.
    root@ubuntu:~# docker ps -l
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
    b394756b6c5d        nginx               "nginx -g 'daemon of…"   12 minutes ago      Up 12 minutes       0.0.0.0:8080->80/tcp   elastic_babbage

    WEB 용 기 를 삭제 하려 면 필요 하지 않 은 용 기 를 삭제 하 라 는 명령 을 사용 할 수 있 습 니 다.용 기 를 삭제 할 때 용 기 는 정지 상태 여야 합 니 다.그렇지 않 으 면 다음 과 같은 오 류 를 보고 할 수 있 습 니 다.
    root@ubuntu:~# docker rm b394756b6c5d
    Error response from daemon: You cannot remove a running container b394756b6c5d95f1d43f11393c169cc73de40938d8f09db81077c8bce6e5881a. Stop the container before attempting removal or force remove

    실행 중인 용 기 를 삭제 하려 면docker restart [ID ]인자 만 추가 하면 됩 니 다.
    root@ubuntu:~# docker rm -f b394756b6c5d
    b394756b6c5d

    좋은 웹페이지 즐겨찾기