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 :
前為主機,後為容器
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