Docker入門簡記

Docker的容器環境其實是藉助類Linux命名空間,將各類系統資源按照容器不一樣劃分了不一樣的命名空間進行隔離,爲各個進程提供獨立的運行環境
關鍵概念:容器,鏡像
兩個概念一塊兒看,鏡像比如日常系統中的各個可執行文件exe,每一個可執行文件都會經過一個進程運行起來,容器則比如進程。
鏡像有鏡像倉庫,比如各大應用市場,可經過下載的形式把鏡像拉到本地
知道兩個概念則可使用docker,下面介紹使用中的命令git

鏡像相關命令
鏡像拉取
docker pull [鏡像名]
eg: docker pull jim3me/etcdkeepergithub

鏡像建立
docker build -t[鏡像名稱] [DockerFile文件所在路徑]
建立鏡像的目錄須要包含DockerFile文件,裏面實質包含創建鏡像時須要的操做,以相似於腳本的形式描述,次文件內容暫不在本篇範圍內,通常網上支持docker運行的源碼都會包含這個文件,github的項目尤其顯著,通常能夠cd到該目錄下建立
cd /home/aa/Document/otherProject/proj1
docker build -t myimage .docker

鏡像查看
docker imagesjson

鏡像刪除
docker image rm [鏡像名|鏡像id]
-f 加上此參數使得刪除關聯的卷標網絡

容器相關命令
鏡像運行(建立新的容器並把鏡像丟到容器中運行)
docker run [鏡像名|鏡像id]
run可帶命令自己的參數,也可帶鏡像運行的時候帶的參數。命令的參數:
  -I -t 交互模式
  -privileged=true 以root用戶的身份去運行,默認該值爲false
  -v [hostPath]:[containerPath] 路徑或者文件從宿主機映射到容器中。若是hostPath的對象並不存在,則程序會在宿主中建立一個目錄。這種操做應該是所謂的「持久化」,實際操做跟軟鏈接和文件系統掛載有關係
  --volumes-form [name|Id] 與指定容器共享卷標,可是並不是額能徹底共享,鏡像只讀層的內容則不會共享,僅共享讀寫層的內容。
  -d 以守護模式運行,這樣運行鏡像時就不會同時進入鏡像
  -p [hostPort]:[containerPort] 端口映射
  --name 容器名稱,如不給則會隨機生成一個名稱
  --net= 網絡類型,分4種
    host:與宿主共用網絡
    none:無網絡環境
    bridge:網橋模式,默認
    container: 語法--net=container:[name|id] 與指定容器公共網絡,一旦以這種形式設置,則沒法在本容器中開啓端口映射,全部映射均要在所屬容器中開啓。tcp


容器中止
docker stop [containerId|containerName]ui

容器移除
docker rm [containerId|containerName] rest

容器重啓
docker restart [containerId|containerName]日誌

容器運行
docker start [containerId|containerName]orm

容器日誌
docker logs [Id|Name] --since="yyyy-MM-ddThh:mm:ss" 年月日時分秒

容器重命名

查看全部容器
docker ps -a

查看全部運行的容器
docker ps

進入容器運行命令
docker exec [containerId|containerName] [exeName] [exe parameter]
eg:docker exec prometheus /bin/sh #進入普羅米修斯的容器中打開一個終端,在此命令中加上-it參數則不會由於該容器正在運行而被阻塞sh進程。

查看容器信息,包括端口映射,掛載,運行命令等
docker inspect [containerId|name]

修改容器設置,野蠻方法由於基於Linux一切皆文件的定律,容器自己也是文件,容器信息定由文件記錄,所以修改對應文件則可修改容器的信息。只要找對信息所放的位置,定能修改爲功,1.修改前先關閉容器;2.打開配置文件,存放在/var/lib/docker/containers/{容器完整id}/ 若是是端口映射hostscofig.json 最主要的是config.v2.json,此處包含了諸多配置,端口,環境變量,fs掛載 以修改端口映射爲例,須要修改兩個地方 a.hostconfig.json   「portBindings」:{     "8080/tcp": //容器     [{       「HostIp」:"",       "HostPort":"8080"//宿主     }]   } b.config.v2.json   "ExposedPorts":{"8080/tcp":{}} //這裏填的都是容器3.重啓docker #sudo service docker restart。經過inspece則可看到修改後的結果了

相關文章
相關標籤/搜索