1. 程式人生 > >docker學習教程

docker學習教程

  映象與容器類似於類與物件。Docker image用於建立 Docker Container;Container是獨立執行的一個或一組應用;Docker Registry用來儲存映象。大部分情況下,docker服務端和客戶端執行在一臺機器上。 在這裡插入圖片描述 在這裡插入圖片描述 在這裡插入圖片描述 【container使用】 (1)docker run container command 執行一個應用程式:   docker run ubuntu:15.10 /bin/echo “Hello world”   docker run -i -t ubuntu:15.10 /bin/bash     -t:在新容器內指定一個偽終端或終端     -i:允許你對容器內的標準輸入 (STDIN) 進行互動   docker run -d ubuntu:15.10 /bin/sh -c “while true; do echo hello world; sleep 1; done”     -d:讓容器在後臺執行   docker run -v $PWD/myapp:/usr/src/myapp -w /usr/src/myapp python:3.5 python

helloworld.py     -v $PWD/myapp:/usr/src/myapp:將主機中當前目錄下的myapp掛載到容器的/usr/src/myapp     -w /usr/src/myapp :指定容器的/usr/src/myapp目錄為工作目錄     python helloworld.py :使用容器的python命令來執行工作目錄中的helloworld.py檔案 (2)執行Web應用:   docker run -d -P training/webapp python app.py     -P:將容器內部使用的網路埠隨機對映到主機埠上   docker run -d -p 5000:5000 training/webapp python
app.py
    -p:將容器內部使用的網路埠繫結到主機指定的埠上,前為主機,後為容器   docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py      -p:指定容器繫結的網路地址   docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py     -p:預設都是繫結 tcp 埠,可繫結udp埠   docker run -d -P - -name runoob training/webapp python app.py     - -name:為容器指定名稱

【container檢視】 (1)docker ps 檢視正在執行的容器:     -a:檢視過去所有的容器 (2)docker top 檢視指定容器內部執行的程序:     docker top determined_swanson (3)docker logs 檢視指定容器內的標準輸出:     docker logs -f amazing_cori (4) docker inspect 檢視指定容器的底層資訊:     docker inspect determined_swanson (5)docker port 檢視指定容器的某個確定埠對映到宿主機的埠號:     docker port determined_swanson     docker port determined_swanson 5002 (6)docker stats –help 檢視指令具體使用方法 (7)docker info 顯示 docker 系統資訊,包括映象和容器數 (8)docker version 顯示 docker 版本資訊

【container操作】 (1)docker attach 連線到正在執行中的容器:     docker attach --sig-proxy=false mynginx (2)docker events 從伺服器獲取實時事件:     docker events -f “image”=“mysql:5.6” --since=“1467302400” (3)docker wait 阻塞執行直到容器停止,然後打印出它的退出程式碼:     docker wait CONTAINER (4)docker export 將檔案系統作為一個tar歸檔檔案匯出到STDOUT:     docker export -o mysql-date +%Y%m%d.tar a404c6c174a2 (5)docker cp 拷貝容器與主機之間的資料:源 -> 目標     docker cp /www/runoob 96f7f14e99ab:/www/ #目錄到目錄     docker cp /www/runoob 96f7f14e99ab:/www #目錄到容器後目錄重新命名     docker cp 96f7f14e99ab:/www /tmp/ (6)docker diff 檢查容器裡檔案結構的更改 (7)docker stop / start / restart / rm停止、啟動、重啟、刪除指定容器:     docker stop amazing_cori     docker start amazing_cori     docker restart amazing_cori     docker rm amazing_cori # 刪除不需要的容器,容器必須是停止狀態 (8)docker pause / unpause 暫停、恢復容器:     docker pause db01     docker unpause db01 (9)docker kill 殺掉執行中的容器:     docker kill -s KILL mynginx (10)docker create / exec 建立、執行容器     docker create --name myrunoob nginx:latest # 建立新容器,但不啟動     docker exec -it mynginx /bin/sh /root/runoob.sh

【image建立】 (1)docker images 檢視本地主機的映象。 (2)docker pull 下載本地主機不存在,但倉庫存在的映象:     docker pull ubuntu:13.10 (3)docker search 查詢https://hub.docker.com/上的映象:     docker search httpd     docker pull httpd (4)docker commit 從已建立的容器中更新映象,已得到新映象     docker run -t -i ubuntu:15.10 /bin/bash     sudo apt-get update #等自定義操作     docker commit -m=“has update” -a=“runoob” e218edb10161 runoob/ubuntu:v2       -m:提交的描述資訊       -a: 指定映象作者       e218edb10161: 容器ID       runoob/ubuntu:v2: 指定要建立的目標映象名 (5)docker build 建立新的映象:     編寫或修改Dockerfile檔案     docker build -t runoob/centos:6.7 .       -t:指定要建立的目標映象名       . : Dockerfile 檔案所在目錄

【image管理】 (6)docker tag 為映象新增一個新的標籤:     docker tag 860c279d2fec runoob/centos:dev       860c279d2fec:映象ID       runoob/centos:映象源名       dev:新的標籤名 (7)docker push 將本地的映象上傳到映象倉庫,要先登陸到映象倉庫 (8)docker login / logout 登陸、登出Docker映象倉庫,預設為官方倉庫 Docker Hub:     docker login -u 使用者名稱 -p 密碼 (9)docker rmi 刪除本地映象:     docker rmi -f runoob/ubuntu:v4       -f:強制刪除       --no-prune:不移除該映象的過程映象,預設移除 (10)docker history 檢視指定映象的建立歷史 (11)docker save 將指定映象儲存成 tar 歸檔檔案:     docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3 (12)docker import 從歸檔檔案中建立映象:     docker import my_ubuntu_v3.tar runoob/ubuntu:v4