Docker 작업 총화

3945 단어 Docker
Docker 작업 의 총화
host 이 컴퓨터 와 container 용기 사이 에 파일 복사:
~$ docker cp index.html 4f17cbaacfb8://usr/share/nginx/html
index.html      
4f17cbaacfb8    ID
://usr/share/nginx/html copy       

미 러 에 있 는 파일 을 수정 하면 변경 사항 을 저장 하여 새로운 미 러 를 만 듭 니 다.
docker commit -m '   ' 4f17cbaacfb8 nginxName
(        ,            ,        none)

dockerfile 미 러 생 성:
  • mkdir testDocker 폴 더 만 들 기
  • touch Dockerfile 에서 Dockerfile 만 들 기
  • vim Dockerfile 편집 내용 은 다음 과 같 습 니 다.
  • 간단 한:
    FROM alpine:latest
    MAINTAINER wy
    CMD echo "this is content!"
    

    비교적 복잡 한 것:
    FROM ubuntu
    MAINTAINER wy
    RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
    RUN apt-get update
    RUN apt-get install -y nginx
    COPY insex.html /var/www/html
    ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]
    EXPOSE 80
    
  • $docker build - t testdocker. (dockerfile 을 만 듭 니 다. - t 지정 탭 을 만 듭 니 다. 태그 이름 은 대문자 일 수 없고 뒤에 있 습 니 다. 현재 디 렉 터 리 를 컨 텍스트 로 표시 합 니 다)
  • parkin@parkindeMacBook-Air:~/testDocker$ docker build -t mydockerfile .
    Sending build context to Docker daemon  4.096kB
    Step 1/8 : FROM ubuntu
     ---> 7698f282e524
    Step 2/8 : MAINTAINER wangyan
     ---> Running in 509556e69806
    Removing intermediate container 509556e69806
     ---> c24c9ead5fe2
    Step 3/8 : RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
     ---> Running in 8e7519e9e5b9
    Removing intermediate container 8e7519e9e5b9
     ---> 904b6b7b4d64
    Step 4/8 : RUN apt-get update
    ..........
    
  • build 성공 후 docker images 에서 방금 생 성 된 미 러
  • 를 볼 수 있 습 니 다.
  • $docker run testdocker 이 미 러
  • 주의:
               dockerfile,  build     Dockerfile   .
    

    Docker 문법:
    FROM             
    RUN                   
    ADD                (    ,          )
    COPY               ,       
    CMD              ,      
    EXPOSE           
    WORKDIR            
    MAINTAINER     
    ENV                
    ENTRYPOINT         (     CMD         ,         ,   CMD      ,      CMD    ,CMD               )
    USER                   
    VOLUME       mount point(      )
    

    미 러 레이 어 링:
  • Dockerfile 의 줄 마다 한 층 씩 생 성
  • 이미 이미지 에 존재 하 는 층 은 읽 기 전용 입 니 다.용기 에서 imags 를 실행 할 때 용기 층 이 라 고 하 는 새로운 층 이 생 깁 니 다. 이 층 은 읽 고 쓸 수 있 습 니 다.
  • $ curl http://localhost
  • parkin@parkindeMacBook-Air:~/testDocker$ docker run -d -p 80:80 mydockerfile
    d80e44f76d09edd9fad9c5d3a66e2ce67af32d6ace9d54ddd586d67f15d3da36
    parkin@parkindeMacBook-Air:~/testDocker$ curl http://localhost
    hello wy  !
    

    층 을 나 누 는 장점: 층 을 공유 하고 스트레스 를 줄인다.
    docker 저장 기술 Volume:
    용기 이외 의 지구 화 저장 소 를 제공 합 니 다.
    $ docker run -d --name volumetest -v /usr/share/nginx/html nginx
    

    what ??가상 층 에서 alpine 호스트 를 실행 하고 그 안에서 docker 를 실행 합 니 다. 저 는 이 디 렉 터 리 를 찾 을 수 없습니다. 바로 아래 명령 입 니 다. 잉잉.
    $ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
    
  • $ docker run -p 80:80 -d -v $PWD/testhtml:/usr/share/nginx/html nginx

  • 데이터 만 있 는 용기:
    1. $ docker create -v $PWD/data:/var/mydatas --name mydata ubuntu
    2. $ docker run -it --volumes-from mydata ubuntu /bin/bash
    3. root@81116e0444d9:/# mount(      )
    

    용기 에 있 는 디 렉 터 리 를 통 해 파일 을 만 들 고 용 기 를 종료 합 니 다. 호스트 마 운 트 사용자 정의 디 렉 터 리 에서 도 파일 생 성 을 볼 수 있 습 니 다.
    root@81116e0444d9:/# cd /var/mydatas 
    root@81116e0444d9:/var/mydatas# ls
    root@81116e0444d9:/var/mydatas# touch sureIsMe.txt
    root@81116e0444d9:/var/mydatas# ls  
    sureIsMe.txt
    root@81116e0444d9:/var/mydatas# exit
    exit
    parkin@parkindeMacBook-Air:~/testDocker/vo3$ ls
    data
    parkin@parkindeMacBook-Air:~/testDocker/vo3$ cd data
    parkin@parkindeMacBook-Air:~/testDocker/vo3/data$ ls
    sureIsMe.txt
    

    좋은 웹페이지 즐겨찾기