docker環(huán)境的搭建與使用
發(fā)布時(shí)間:2022-05-12 13:38
來(lái)源:新網(wǎng)
閱讀:118
作者:網(wǎng)絡(luò )
欄目: 服務(wù)器
歡迎投稿:712375056
??設想是交付運行環(huán)境如同海運,OS如同一個(gè)貨輪,每一個(gè)在OS基礎上的軟件都如同一個(gè)集裝箱,用戶(hù)可以通過(guò)標準化手段自由組裝運行環(huán)境,同時(shí)集裝箱的內容可以由用戶(hù)自定義,也可以由專(zhuān)業(yè)人員制造。Docker中的容器,可以看作是將程序 運行環(huán)境的打包后的新程序。這時(shí)候,你就不用關(guān)心你的程序的運行環(huán)境了,因為容器里面的環(huán)境就是你當時(shí)開(kāi)發(fā)環(huán)境的一個(gè)拷貝。下面就由小編和大家講一講docker環(huán)境的搭建與使用。
??一、Docker環(huán)境搭建
??我是Ubuntu16.04(64位),先在終端執行lsb_release -cs(我的輸出結果是xenial),訪(fǎng)問(wèn)下載地址,依次選擇xenial/pool/stable/amd64/,選擇要下載的版本,復制鏈接地址,
??$ wget http://wap.friendlycc.com.cn/ -cs)/pool/stable/amd64/docker-ce_18.06.1~ce~3-0~ubuntu_amd64.deb $ dpkg -i docker-ce_18.06.1~ce~3-0~ubuntu_amd64.deb $ sudo usermod -aG docker $USER #將用戶(hù)加入docker組,避免每次都要sudo
??重啟終端,不然還是需要sudo
??$ docker run hello-world
??docker-hello-world.png
??注:可能會(huì )保存因為依賴(lài)包沒(méi)有安裝,根據錯誤信息安裝即可
??添加鏡像源
??主要是加速作用,不然可能有時(shí)候會(huì )卡半天。
??$ sudo vi /etc/docker/daemon.json $ sudo cat /etc/docker/daemon.json { "registry-mirrors": ["http://wap.friendlycc.com.cn/ #國內鏡像源 } $ sudo systemctl enable docker #設置開(kāi)機啟動(dòng) $ sudo systemctl daemon-reload #重新加載配置 $ sudo systemctl restart docker #重啟docker
??docker-compose
??這個(gè)Python程序可以方便地管理多個(gè)Docker實(shí)例組成的分布式服務(wù)。
??$ sudo apt install python3-pip $ sudo pip3 install docker-compose
??二、Docker簡(jiǎn)單使用
??運行容器
??$ docker run hello-world
??這個(gè)命令首先會(huì )檢查本地是否有hello-world容器
??如果沒(méi)有就通過(guò)image創(chuàng )建,其中image就是容器的模板(一個(gè)二進(jìn)制文件),docker run image_name,實(shí)際上就是創(chuàng )建一個(gè)image實(shí)例,最后容器也就是一個(gè)文件。(也就是說(shuō),image就像相當于類(lèi),容器相當于類(lèi)實(shí)例)
??如果本地沒(méi)有image就從docker的倉庫下載下來(lái)
??創(chuàng )建一個(gè)新的容器,并且啟動(dòng)容器
??列出運行中容器
??$ docker container ls #列出運行中的容器 $ docker container ls -all #列出全部容器
??docker-containers.png
??第一個(gè)字段是ID,用來(lái)標識容器實(shí)例,因為一個(gè)image可以生成多個(gè)容器。
??結束容器運行
??$ docker container kill $Container_ID #強行結束運行中的容器,這個(gè)主要用來(lái)針對作為服務(wù)運行的容器
??刪除容器
??容器在結束運行后,一般不會(huì )自動(dòng)刪除,除非image中進(jìn)行了配置,或者在run的使用使用了-rm。那么刪除容器的命令是:
??$ docker container rm $Container_ID
??清理命令
??docker 1.13開(kāi)始 的清理命令
??$ docker container prune -f #刪除所有停止容器 $ docker image prune -f -a #刪除所有鏡像
??刪除none鏡像
??none 鏡像是一些沒(méi)有成功build的臨時(shí)鏡像,刪掉即可。
??$ docker rmi $(docker images -f "dangling=true" -q)
??Docker還有很多強大功能,暫時(shí)我也只用到這幾個(gè)而已了。
??Docker核心解決的問(wèn)題是利用LXC來(lái)實(shí)現類(lèi)似VM的功能,從而利用更加節省的硬件資源提供給用戶(hù)更多的計算資源。同VM的方式不同,LXC其并不是一套硬件虛擬化方法 - 無(wú)法歸屬到全虛擬化、部分虛擬化和半虛擬化中的任意一個(gè),而是一個(gè)操作系統級虛擬化方法, 理解起來(lái)可能并不像VM那樣直觀(guān)。所以我們從虛擬化到docker要解決的問(wèn)題出發(fā),看看他是怎么滿(mǎn)足用戶(hù)虛擬化需求的。小伙伴們要想獲得更多docker環(huán)境的內容,請關(guān)注特網(wǎng)!