1. 程式人生 > >Docker 學習 | 基礎命令

Docker 學習 | 基礎命令

共享數據 ear wrapper 生成 net ges esp 實現 pan

  • 基本概念定義
    • 基本組成
      • 客戶端/守護進程
        • C/S架構
        • 本地/服務器
      • 鏡像
        • 容器基石
        • 只讀文件系統
        • 聯合加載(union mount)
      • 容器
        • 通過鏡像啟動
        • 執行
        • 寫時復制
      • 倉庫
        • 公有
          • docker hub
        • 私有
      • 相關技術簡介
        • 依賴的Linux內核特性
        • Namespace 命名空間 LXC Kernel Namespace
          • 封裝 -> 代碼隔離->資源隔離
          • PID 進程隔離 獨立進程表
          • NET 管理網絡接口 network info
          • IPC 進程通信 額外信息標記
          • MNT 掛載點
          • UTS 隔離內核和版本標識 hostname domain
          • Users 用戶
        • Cgroup 控制組 分配資源 資源限制 CPU 內存
          • 資源限制
          • 優先級設定
          • 資源計量
          • 資源控制
        • chroot 隔離根文件系統
  • 基本操作
    • 啟動容器 docker run Image
      • 交互 docker run -i -t Image /bin/bash
        • -name
      • 查看進程 docker ps/top [-a ] / [-l]
      • 詳細信息 docker inspect +id /+ name
    • 啟動停止容器 docker start -i name/id
    • 刪除容器 docker rm 刪除已停止容器
  • 守護形式運行容器(長期運行)
    • 退出crtl +p ctrl+q
    • 重新進去 sudo docker attach +id/name
    • 後臺執行 docker run -d
    • 查看容器日誌(內部運行情況) docker logs [-f一直跟蹤] [-t 加時間] [--tail最新] 名字
    • 查看運行中容器進程 docker top + id/name
    • 在運行容器(已啟動)中啟動運行新進程 docker exec [-d] [-i] [-name]
    • 停止運行中的容器 docker stop 發結束信號停止 /kill 直接快速停止
  • 部署靜態網站
    • 容器端口映射 run -P 全部 /-p 指定
    • 安裝nginx vim
    • 停止後會重新分配IP
  • 查看和刪除鏡像
    • docker info 查看信息,包含存儲驅動
    • 列出鏡像 docker images -a(所有中間層+其他鏡像)/-f 過濾條件/--no-trunc(完整的ID) /-q 只查看唯一ID
    • 倉庫:REPOSITORY 倉庫 (一系列關聯鏡像集合) 組件倉庫 REGISTRY(一個一個獨立鏡像) 標簽TAG +倉庫名字 =獨立鏡像
    • docker rmi -f 強制/ --no-prune 保留父鏡像
  • 獲取推送鏡像
    • docker search --no-trune/-s 3
    • docker login 應該先登錄
    • docker pull -a / --registry-mirror
      • 1. /etc/default/docker 修改 2 . 添加 DOCKER_OPTS ="-registry-mirror = http://MIRROR-ADDR"
      • http://www.daocloud.io 獲取鏡像連接(更改2)
    • docker push
  • 構建鏡像
    • docker commit -a 作者/ -m 提交信息/-p 暫停
    • docker build -t 標簽 -q 不顯示中間過程 利用Dockerfile創建
  • Docker c/s模式
    • Remote API CS 可遠程
    • 三種連接方式 1.unix :///var/rundocker.sock (默認) 2.tcp://host:port 3.fd://socketfd
      • 命令
      • 服務連接相關 sdocker -d -D - H(host)
      • Remote API相關
      • 網絡設置相關 --ip = 0.0.0.0
      • 倉庫相關
      • 存儲相關
    • 啟動配置文件 /etc/defaut/docker 修改後 要重啟服務
    • 遠程訪問
      • 修改/etc/defaut/docker 添加 - H tcp://0.0.0.0:2375
      • export DOCKER_HOST = "tcp://0.0.0.0:2375" 可修改遠程 export DOCKER_HOST =" " 置空
      • -H 選項可多個添加
  • Dockerfile 指令
    • FROM 基礎鏡像
    • MAINTAINER 作者信息
    • RUN 運行命令
      • shell模式 RUN <command> exec模式 RUN ["executable", "param1", "param2"] 運行其他shell
    • EXPOSE <> 多個端口 不能自動需再添加
    • CMD (指定命令,參數,容器運行時默認行為 類似RUN, 會被覆蓋) ENTERPOINT(跟CMD一樣 )
    • ADD <src> ...<dest> (包含解壓縮功能) COPY<src>..<dest>(普通復制推薦) VOLUME ["/data"] 共享數據
    • WORKDIR /絕對路徑 設置工作目錄 ENV <key><value> <key>=<value> 環境變量
    • USER daemon 用戶/用戶組/默認root ONBUILD [INSTRUCTION] 鏡像觸發器
    • Dockfile 構建過程
      • 運行基礎鏡像 執行指令 提交 刪除中間層容器(不刪鏡像)
      • 可以通過調試中間層鏡像
      • 自動構建緩存 添加--no-cache 不構建緩存 ,刷新 | ENC REFRESH_DATE 2019-05-01修改時間就可刷新
      • docker hsitory 查看鏡像構建過程
  • 網絡連接
    • 互聯
      • 默認允許所有容器互聯
        • --icc =ture 全部可ping 通,同一個虛擬網橋,IP不可靠連接(ip變化)
        • --link = cct1:webtest(別名) 環境變量env自動更新webtest,hosts也自動更新 wetest
      • 拒絕連接
        • --icc =false更改默認配置 全部拒絕
      • 特定連接
        • --icc =false --iptables=true --link 只允許link配置的容器連接
    • 連接外部網絡
      • --ip-forword=true 允許流量轉發 查看 sysctl net.ipv4.all.forwarding
      • iptables linux包過濾防火墻 系統
        • 表table nat fitter mango
        • 鏈chain INPUT FORWARD
        • 規則rule ACCEPT REJRECT DRON
      • 允許端口映射訪問
      • ‘限制IP訪問容器
  • 數據管理
    • 數據卷
      • 獨立於UFS 數據共享 不會因容器關閉而消失 放在host主機中
      • docker run -it -v ~/datavalume:/data ubuntu /bin/bash
      • 添加權限 docker run -it -v ~/datavalume:/data:ro ubuntu /bin/bas
      • dockerfile 生成同名的數據卷是不同地址,故不能共享數據
    • 數據卷容器
      • 掛載數據卷容器 docker run -it --volume-from 鏡像名字
      • 及時刪除了基類數據卷容器 ,不受影響, 數據卷不受容器影響
    • 數據備份還原,遷移
      • docker run -it --volume-from image -v $(pwd)/data:/data: wr ubuntu tar cvf /data/dvt5.tar /data/datavolume1 (壓縮,解壓縮類似)
  • 跨主機連接
    • 使用網橋
      • 兩主機 管理工具bridge-utils 同一網段
      • 修改 /etc/network/interfaces | address network gateway bridge_port( eth0)
      • 修改 /etc/default/docker |-b = br0 --fixed-cidr
      • 優點 配置簡單,不依賴 缺點:同網段 劃分網段,不易實現和管理
    • Open vSwitch 通常使用 apache2.0許可 虛擬開源多層交換機 gre 通用路由協議,隧道技術
      • openvswitch - switch |網橋工具 bridge-utils
      • 建立ovs網橋 |添加gre連接 |配置虛擬網橋 OVS接口
    • weave 開源項目
      • 安裝啟動weave 增加執行權限|weave launch 192.168.59.103(第一臺電腦ip)
      • c2id=$(weave run 192.168.2/24(分配ip地址) -it Ubuntu /bin/bash)

Docker 學習 | 基礎命令