dockers

uwufuwuufudocke:容器的虛擬化,比傳統的虛擬化輕量 linux6.5版本以上 資源利用率很高。更快的交付和部分。不須要的額外hypervisor支持。易遷移,對平臺依賴性不強 以增量的方式進行分發和更該。html


:鏡像,是一個只讀模板(類型於ios)
:容器:相似於os,能夠被啓動,開始,中止,刪除等操做 每一個容器都是相互隔離,
:倉庫:存放鏡像的一個場所,分爲:公開和私有倉庫:最大倉庫docker.hub 國內公開倉庫(dockerpool)linux


https://www.zybuluo.com/zhpro/note/314843 關於docker的一些信息和介紹
https://docs.docker.com/engine/installation/centos/  官網關於Centos系統安裝docker的文檔
Docker 學習筆記 By 枯木  http://blog.opskumu.com/docker.html
http://www.cnblogs.com/cuizhipeng/p/4383919.html  docker 命令介紹的網站ios


centos 6
yum -y install epel-release docker-io
/etc/init.d/docker start
centos 7
yum -y install epel-release docker
systemctl start docker 啓動docker



     docker 的鏡像管理
docker pull centos 從docker.com獲取centos鏡像
docker p_w_picpaths 查看本地有哪些鏡像
docker tag centos  標籤名(aa)  爲centos鏡像設置標籤爲aa 在使用docker p_w_picpaths查看會多出一行,改行的鏡像id和centos的同樣
docker search [鏡像名] 從docker倉庫搜索docker鏡像,後面是鏡像名
docker rmi centos 用來刪除指定的鏡像,其中後面的參數能夠是tag,若是是tag時,其實是刪除該tag,只要改鏡像還有其餘tag,就不會刪除該鏡像。當後面的參數爲鏡像id時,會完全刪除整個鏡像,連同全部標籤一同刪除。
     基於本地模板建立鏡像
在openvz的官網下載一個模板
cat +下載的openvz模板 | docker import - 自定義的鏡像名
docker save -o aa.tar.gz 源鏡像名     把現有的鏡像導成一個文件
利用現有文件恢復現有鏡像
docker load --input 把鏡像文件導入現有鏡像 或者docker load < 鏡像文件
把本身的鏡像傳入docker hub官網 須要註冊一個用戶:docker push 鏡像名centos



docker的容器管理
docker run -t -i centos /bin/bash  用下載到的鏡像開啓容器,-i表示讓容器的標準輸入打開,-t 表示分配一個僞終端,注意:要把-i-t放到鏡像名的前面。
docker start (IMAGE ID)  激活一個虛擬容器
docker exec -it (IMAGE ID)/bin/bash 進入虛擬容器
docker attach 容器id  使用attach這個命令進入的虛擬鏡像,退出時容器也會停止。
docker ps 查看運行的容器,加-a選項能夠查看更多的運行容器
  鏡像使用容器生成新的鏡像
docker run 運行之後,進入容器咱們能夠作一些更該,也能夠根據這個容器建立新的鏡像。
將修改過內容的容器保存爲一個自定義的鏡像
docker commit -m "change something" -a "somebodyinfo" container_id(經過docker ps -a獲取id) 新的鏡像名
-m :表示加一些改動的信息。-a指定特定做者相關信息。
docker rm `docker ps -aq` 刪除容器下的全部進程
docker rm $(docker ps -q) 刪除所有運行的容器
docker stop $(docker ps -q) & docker rm $(docker ps -aq) 一條命令實現停用並刪除容器:bash


docker rm 容器id 刪除一個容器    docker -f rm 容器id   能夠強制刪除一個容器 也能夠同時刪除多個容器
docker create -it 鏡像名  建立一個容器但並不啓動       (在本機鏡像的基礎上)
docker start 鏡像名/p_w_picpath ID  啓動一個容器  也能夠同時啓動多個容器
docker stop  鏡像名/p_w_picpath ID  關閉一個容器
docker stop $(docker ps -q) 中止所有運行的容器
查看容器的日誌輸出信息
docker logs CONTAINER_ID服務器


導入導出容器 -方便遷移
docker export CONTAINER_ID > file.tar
cat file.tar | docker import - 自定義鏡像名網絡



   私有倉庫管理
下載私有倉庫鏡像:docker pull registry
依託registry鏡像來建立容器:docker run -d -p 5000:5000 registry
-d 放到後臺運行 -p 作一個端口映射,宿主機端口:容器端口 訪問宿主機5000端口,就至關於訪問該容器
當 docker ps的時候,會在 PORTS 列顯示 0.0.0.0:5000->5000/tcp
用 curl 127.0.0.1:5000 測試 會顯示"\"docker-registry server\""curl


上傳一個鏡像到私有倉庫
首先要給這個鏡像作tag  必須帶有私有倉庫的 ip:port 要否則會上傳到共有倉庫裏面去
docker tag 鏡像名 私有庫ip:port/鏡像名
其次更改https爲http -- 在 /etc/init.d/docker 中加入 --insecure-registry 本機ip地址:5000
$exec -d $other_args &>> $logfile &
修改成: $exec -d --insecure-registry 192.168.3.4:5000 $other_args &>> $logfile &
 重啓 docker 並啓動 registry 容器tcp



上傳--docker push 私有庫ip:port的鏡像名
使用 Docker 的 RESTful API 能夠查看倉庫服務器中的鏡像::curl http://ip:port/v1/search 也能夠用 docker search ip:port 命令


拉取私有庫的鏡像,須要指定私有庫的地址端口::docker pull ip/centos




docker的網絡管理:
. docer 的 4 種網絡模式
1   host 模式 : 在 docker run 時,用 --net=host 指定 。這種模式下容器複用了宿主機的網卡,容器內的 ip 和宿主機的 ip 是一致的。包括主機名都是同樣的
2  container 模式: 使用--net=container:CONTAINER_ID/CONTAINER_NAME 指定。多個容器使用共同的網絡。
CONTAINER_ID/CONTAINER_NAME 指複製哪一個容器的網絡模式。
 以下面這個示例:這個新建的test容器就複用了zhpro這個容器的網絡模式。ip和test容器的ip是一致的。
1.例: #docker run --it --name=test --container:zhpro centos bash
3  none 模式 : 使用 --net=none 指定,這個模式下的容器會不配置任何網絡,只有一個lo網卡
4  bridge 模式 : 使用 --net=bridge 指定。模式不指定就是這樣模式,相似於 vmware 的 NAT 模式。同一個宿主機的容器在一個網段下,之間能夠相互通訊。


bridge 模式是 Docker 默認的網絡設置,此模式會爲每個容器分配 Network Namespace、設置 IP 等,並將一個主機上的 Docker 容器鏈接到一個虛擬網橋上。當 Docker server 啓動時,會在主機上建立一個名爲 docker0 的虛擬網橋,此主機上啓動的 Docker 容器會鏈接到這個虛擬網橋上。虛擬網橋的工做方式和物理交換機相似,這樣主機上的全部容器就經過交換機連在了一個二層網絡中。接下來就要爲容器分配 IP 了,Docker 會從 RFC1918 所定義的私有 IP 網段中,選擇一個和宿主機不一樣的IP地址和子網分配給 docker0,鏈接到 docker0 的容器就從這個子網中選擇一個未佔用的 IP 使用。如通常 Docker 會使用 172.17.0.0/16 這個網段,並將 172.17.42.1/16 分配給 docker0 網橋(在主機上使用 ifconfig 命令是能夠看到 docker0 的,能夠認爲它是網橋的管理接口,在宿主機上做爲一塊虛擬網卡使用)


2.1 列出當前主機網橋# brctl show或brctl show docker0brctl 工具依賴bridge-utils 包2.2 查看當前 docker0 ip    # ifconfig docker0或者ip addr show docker02.3 自定義 docker0 網橋的網段默認狀況下 docker0 會分配172.1.42 或者192.168.42 這個網段。 咱們也能夠手動更改這個網段爲 192.168.10.0/24。 要注意順序:1.# /etc/init.d/docker stop                    #停掉docker服務2.# ip link set dev docker0 down               #停掉網橋docker03.# ip addr add 192.168.10.1/24 dev docker0    #給docker0添加地址4.# ip addr del 192.168.42.1/24 dev docker0    #刪除docker0原有的地址5.# ip link set dev docker0 up                 #啓動網橋docker06.# /etc/init.d/docker start                   #啓動服務

相關文章
相關標籤/搜索