首先一句話表達我的對docker的理解:與傳統虛擬技術基於硬件及物理資源的虛擬化相比,Docker更加輕量化,docker爲基於操做系統或內核級別的虛擬化,而且提供了從各類機制與操做以知足從開發環境到生產環境的各類定製化須要。
我的認爲對前端而言,docker的意義在於:知足了前端環境的構建便利性與一致性的同時,下降了FE上手linux以及虛擬化技術的難度,同時docker借鑑了git的部分優勢,更便於類比進行理解。
Docker爲什麼如此好玩 !!! 自此開始分享前端工程化與docker相結合的各類玩法與姿式!!關於docker的FE相關環境也會及時更新到github上(頂部有傳送門),請持續關注
坑會繼續挖繼續填,持續更新中。。。
首先記錄一下常規操做:html
Docker主要圍繞倉庫、鏡像、容器三者展開,容器爲核心。實際使用的時候也是主要與容器打交道。
linux基礎,docker的安裝等等非乾貨內容請自行學習,在此不作贅述。前端
docker images
docker tag ubuntu:18.04 myubuntu
docker inspect ubuntu:18:04
docker inspect -f {{".Architecture"}} ubuntu:18.04
docker history ubuntu:10.04
docker search [option] keywords
docker rmi 鏡像名或id
或者 docker image rm 鏡像名或id
docker image prune -f
docker rmi $(docker images | awk '/^<none>/ { print $3 }')
docker run -it ubuntu:18.04
docker commit -a pomelott -m 'test commit' 9a9283d556f6 newubunto:v1
cat ubuntu-18.04-x86_64-minimal.tar.gz I docker import - ubuntu:l8.04
docker build -t 建立的鏡像名稱 dockerfile存放目錄
docker save -o ubuntu_18_04.tar ubuntu:18.04
docker load -i ubuntu_18_04.tar
docker tag myubuntu:latest pomelott/myubuntu:18.04
docker push pomelott/myubuntu:18.04
docker create -it ubuntu:18.04
, 能夠經過 docker ps -a
查看docker start [containerID]
能夠經過 docker ps
查看docker run [containerID/鏡像名]
docker run -itd ubuntu:18.04 /bin/bash
docker logs [containerID/name]
docker pause [containerID/name]
, 取消暫停 docker unpause [containerID/name]
docker stop [containerID/name]
,此時經過 docker ps
沒法看到已終止的容器docker stop $(docker ps -aq)
docker restart [containerID/name]
docker kill [containerID/name]
docker container prune
docker attach [containerID/name]
,經過exit退出後,容器即終止。docker exec -it [containerID/name] /bin/bash
, 經過exit退出後,容器不會終止。docker rm [containerID/name]
docker export -o export_ubuntu.tar ce5
docker import export_ubuntu.tar tate-ubuntu:v1.0
docker inspect [containerID/name]
docker top [containerID]
docker stats [containerID]
docker cp test.js 385e9dfbf889:/root/
docker diff [containerID]
docker port [conainerID]
docker update [container]
主要作本地與容器、容器與容器之間的數據通訊
— mount 項支持三種類型的數據卷,包括
volume 普通數據卷,映射到主機/var/ lib /docke /volumes 徑下;
bind :綁定數據卷,映射到主機指定路徑下;
tmpfs :臨時數據卷,只存在於內存中linux
docker run -idt -P --name web --mount type=bind,source=/root/file,destination=/root ubuntu:18.04
docker run -it -v /root/file --name filedata ubuntu:18.04
, filedata爲數據卷容器的名字docker run -it --volumes-from filedata --name test_db1 ubuntu:18.04
,進入容器後能夠查看 /root/file是否存在docker run -it --volumes-from filedata --name test_db2 ubuntu:18.04
, 進入任意容器後,在掛載點 /root/file
下作部分操做,而後再其餘容器中看是否作出響應docker run --volumes-from filedata -v /root/backup:/root/file --name backup-container ubuntu:18.04 tar cvf /root/file/backup.tar /root/file
,分爲如下幾步:、root/backup
目錄掛載至容器的/root/file
/root/file
目錄壓縮爲backup.tar並輸入至 容器的/root/file/
目錄下/root/backup
與數據卷容器 filedata 的 /root/file
與 備份容器的 /root/file
三者相互掛載,至此本地的 /root/backup
目錄下就會出現backup.tar文件了,備份完成!docker run -idt -p --name testport2 8888:9999 ubuntu:18.04
docker run -itd -p 127.0.0.1:8888:9999 --name specific-map ubuntu:18.04
docker run -idt -p 127.0.0.1::8899 --name any-map ubuntu:18.04
docker run -idt --name link1 ubuntu:18.04
and docker run -idt --name link2 --link link1:link1-alias ubuntu:18.04
, 在進入容器後能夠經過env 查看以link1_alias(連接的別名)