Docker容器管理

Docker容器管理

Docker網絡鏈接

單機Docker網絡配置

  • linux虛擬網橋的特色:linux

    • 能夠設置IP地址
    • 至關於擁有一個隱藏的虛擬網卡
  • docker0的地址自動劃分nginx

    • 分配IP地址172.17.X.X
    • 分配MAC地址
    • 子網掩碼255.255.0.0
  • 每個docker主機都對應一個docker容器網卡
  • 自定義docker0地址web

    sudo ifconfig docker0 192.168.200.1 netmask 255.255.255.0
  • 自定義虛擬網橋docker

    • 添加虛擬網橋ubuntu

      sudo brctl addbr br0
      
      sudo ifconfig br0 192.168.100.1 netmask 255.255.255.0
    • 更改docker守護進程的啓動配置vim

      sudo vim /etc/default/docker
      
      DOCKER_OPTS="-b=br0"
      
      sudo service docker restart

Docker容器互聯

  • 默認:容許全部容器間互聯bash

    • --icc網絡

      sudo docker run -it --name cct1 ubuntu bash

      默認--icc=true,可是IP地址會發生變化學習

    • --link設計

      sudo docker run -it --name cct2 --link=cct1:webtest ubuntu bash

      連接容器,不會因IP變化致使連接不到

  • 拒絕全部容器間互聯

    sudo docker run -it --name cct3 --icc=false ubuntu bash
  • 容許特定容器間互聯

    sudo docker run -it --name cct4 --icc=false --iptables=true --link=cct1:webtest ubuntu bash

Docker容器與外部網絡鏈接

  • iptables配置

    sudo iptables -I DOCKER -s 10.X.X.X -d 172.17.X.X -p TCP -dport 80 -j ACCEPT
    或者
    sudo iptables -I DOCKER -s 10.X.X.X -d 172.17.X.X -p TCP -dport 80 -j DROP
  • docker端口映射

    sudo docker run -it --name cct5 -p 80 ubuntu bash
    apt-get update
    apt-get install -y nginx
    nginx
    ctrl+p
    sudo docker port cct5

Docker數據管理

數據卷

  • 概念:通過特殊設計的目錄,能夠繞過聯合文件系統,爲一個或者多個容器提供訪問。
  • 設計目的:

    • 數據持久化
    • 獨立於容器生命週期
    • 不存在回收機制
  • 存在Docker宿主機中,可利用容器技術與宿主機共享數據,能夠是目錄或文件,同一個目錄或文件支持多個容器訪問,實現容器間數據共享與交換
  • 特色

    • 在容器啓動時初始化
    • 能夠在容器間共享和重用
    • 容器能夠對數據卷中的內容直接修改
    • 數據卷的變化不會影響鏡像的更新
    • 數據永久存在
  • 掛載數據卷並添加訪問權限,權限默承認讀寫

    sudo docker run -it -v ~/datavolume:/data:權限 ubuntu bash

數據卷容器

  • 概念:數據卷容器就是掛載了數據卷的容器,其餘容器經過掛載這個容器實現數據共享
  • 掛載數據卷容器並添加訪問權限,權限默承認讀寫

    sudo docker run -it -v ~/datavolume:/data --name dv1 ubuntu bash
    sudo docker run -it --volume-from dv1 --name dv2 ubuntu bash
  • 數據卷容器僅僅做爲數據傳遞,即便刪除,數據仍然存在
  • 備份

    sudo docker run -it -v ~/datavolume:/data --name dv1 ubuntu bash
    sudo docker run -it --volume-from dv1 -v ~/backup:/backup --name dv2 ubuntu tar cvf /backup/dv1.tar /data
  • 還原

    sudo docker run -it -v ~/datavolume:/data --name dv1 ubuntu bash
    sudo docker run -it --volume-from dv1 -v ~/backup:/backup --name dv2 ubuntu tar zxvf /backup/dv1.tar /data

Docker跨主機鏈接

網橋配置

  • 主機配置

    sudo vim /etc/network/interfaces
    
    auto br0
    iface br0 inetstatic
    address 10.211.55.3
    netmask 255.255.255.0
    gateway 10.211.55.1
    bridge_ports eth0
  • Docker容器配置

    sudo vim /etc/default/docker
    
    DOCKER_OPTS="-b=br0 --fixed-cidr='10.211.55.128/20'"

Open vSwitch配置

  • 創建ovs網橋
  • 添加GRE(通用路由協議封裝)鏈接
  • 配置Docker容器虛擬網橋
  • 爲虛擬網橋添加ovs接口
  • 添加不一樣Docker容器網段路由
sudo ovs-vsctl add-br obr0
sudo ovs-vsctl add-port obr0 gre0
sudo ovs-vsctl set interface gre0 type=gre options:remote_ip=192.168.1.100
sudo ovs-vsctl show

sudo brctl addbr br0
sudo ifconfig br0 192.168.1.1 netmask 255.255.255.0
sudo brctl addif br0 obr0
sudo brctl show

sudo vim /etc/default/docker
DOCKER_OPTS="-b=br0"

sudo ip route add 192.168.2.0/24 via 192.168.1.100 dev eth0
route

weave配置

  • 安裝
  • 啓動

    weave launch
  • 鏈接不一樣主機
  • 經過weave啓動容器

    weave run 192.168.1.2/24 -it --name wv1 ubuntu bash

總結

經過極客學院中Docker容器的學習,對Docker容器有了一個初步的認識,之後會逐步深刻,容器化技術會愈來愈好。

相關文章
相關標籤/搜索