您好,登錄后才能下訂單哦!
本篇內容介紹了“Ubuntu中如何安裝Docker”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
1. docker是什么?
在互聯網圈混,如果還不知道docker你就out了。從2014年開始,docker技術在互聯網技術中異軍突起,2015-2016年很多公司已經對docker開始大量研究和應用。
docker是什么?docker是一個開源的應用容器引擎,系統級的輕量虛擬化技術,為應用程序的自動化部署提供解決方案。
你可以快速創建一個容器,并在容器上開發和運行你們的應用程序,通過配置文件可以輕松實現應用程序的自動化安裝、部署和升級。
docker的優勢
docker倍受業界追捧,必然有它非常明顯的優勢和特點。
輕量級資源:容器是在進程級別隔離,并使用宿主機的內核,而不需要虛擬化整個操作系統。不需要虛擬化和系統調用復雜的操作。因此節省了很大的額外開銷。不需要額外的hypervisor(虛擬化技術)支持,不需要虛擬硬件,不需要額外完整的系統。
可移植性:所需要的應用都在容器中,可以在任意一臺docker主機上運行
可預測性:宿主機和容器相互不關心對方都運行什么。只考慮所需的接口標準化
再不動手把docker用上,你就真的out了。
2. 在linux ubuntu中安裝docker
安裝docker只需3步,下載docker, 安裝docker,檢查docker是否成功。
docker目前支持主流的3種操作系統的linux, mac, windows的環境,本文使用的linux系統環境為:linux ubuntu 14.04.4 lts 64bit。在ubuntu中下載和安裝docker可以直接用apt-get搞定。
由于docker在1.7.1以后的版本指定了自己的源,所以我們需要先在apt中配置docker的源。
更新apt的源,安裝https和ca證書的庫,默認這2個庫都已經裝了。
~ sudo apt-get update ~ sudo apt-get install apt-transport-https ca-certificates
添加秘鑰gpg到apt配置中。
~ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118e89f3a912897c070adbf76221572c52609d
增加docker的源到/etc/apt/souces.list文件中,我的版本是14.04對應ubuntu-trusty。
~ sudo vi /etc/apt/sources.list # 增加到最后一行 deb https://apt.dockerproject.org/repo ubuntu-trusty main
接下來,就可以用可以用apt-get直接安裝docker了。
~ sudo apt-get update ~ sudo apt-get install docker-engine
安裝完成,默認會啟動docker。
# 檢查docker服務 ~ service docker status docker start/running, process 10013 # 檢查docker進行 ~ ps -aux|grep docker root 10013 0.0 1.0 424948 40584 ? ssl 22:29 0:00 /usr/bin/dockerd --raw-logs root 10022 0.0 0.2 199680 10280 ? ssl 22:29 0:00 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --shimdocker-containerd-shim --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --runtime docker-runc # 檢查docker版本 ~ sudo docker version client: version: 1.12.1 api version: 1.24 go version: go1.6.3 git commit: 23cf638 built: thu aug 18 05:22:43 2016 os/arch: linux/amd64 server: version: 1.12.1 api version: 1.24 go version: go1.6.3 git commit: 23cf638 built: thu aug 18 05:22:43 2016 os/arch: linux/amd64
檢查docker是否成功,運行hello-world。如果出現下面的信息,表示docker引擎安裝成功。
~ sudo docker run hello-world
unable to find image 'hello-world:latest' locally
latest: pulling from library/hello-world
c04b14da8d14: pull complete
digest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9
status: downloaded newer image for hello-world:latest
hello from docker!
this message shows that your installation appears to be working correctly.
to generate this message, docker took the following steps:
1. the docker client contacted the docker daemon.
2. the docker daemon pulled the "hello-world" image from the docker hub.
3. the docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
4. the docker daemon streamed that output to the docker client, which sent it to your terminal.
to try something more ambitious, you can run an ubuntu container with:
$ docker run -it ubuntu bash
share images, automate workflows, and more with a free docker hub account:
for more examples and ideas, visit:
注意:我們在執行上面的命令的時候,經常會遇到一個錯誤。cannot connect to the docker daemon. is the docker daemon running on this host?
比如,直接輸入 docker run hello-world 命令。
~ docker run hello-world
docker: cannot connect to the docker daemon. is the docker daemon running on this host?.
see 'docker run --help'.
這是由于權限的問題,docker默認和root權限綁定,如果不加sudo時則沒有權限。
3. docker鏡像倉庫
對于上面我們執行的docker run hello-world命令,是什么意思呢?
把3個詞分開來看,docker代表docker程序,run代表命令,hello-world代表鏡像。就是用docker啟動hello-world鏡像。由于我們剛裝好的docker,本地并沒有鏡像,那么run的命令會對docker遠端的倉庫中,找到名叫hello-world的鏡像,然后下載到本地,再運行。
docker官方的鏡像倉庫訪問地址:
我們可以在docker官方的倉庫中,搜索你感興趣的系統、語言、技術框架等,有很多的技術都已經被docker化了。我們就可以很方便地用別人已經做好的容器,站在前人的基礎上繼續工作。
從列表中點開一項后,會有對這個鏡像的詳細介紹。比如,ubuntu的鏡像。
如果我們想要下載這個鏡像,只需要按照他的提示,在命令行輸入 docker pull ubuntu 這樣就行了。
~ sudo docker pull ubuntu using default tag: latest latest: pulling from library/ubuntu 2f0243478e1f: pull complete d8909ae88469: pull complete 820f09abed29: pull complete 01193a8f3d88: pull complete digest: sha256:8e2324f2288c26e1393b63e680ee7844202391414dbd48497e9a4fd997cd3cbf status: downloaded newer image for ubuntu:latest
下載好后鏡像,會保存在本地的倉庫中。查看本地的鏡像。
~ sudo docker images repository tag image id created size ubuntu latest f8d79ba03c00 2 weeks ago 126.4 mb hello-world latest c54a2cc56cbb 7 weeks ago 1.848 kb
目前,有2個本地鏡像,一個是hello-world,另一個是ubuntu。
4. 制作自己的docker鏡像
我們也可以制作自己的鏡像,然后上傳到官方的倉庫中,讓更多的人來使用。如果要制作自己的docker鏡像,你只需要寫一個dockerfile文件就行了。
下面我們創建一個能進行網絡訪問的docker,從網站抓取最新8篇的文章列表,并打印到控制臺。
創建項目目錄
~ mkdir fensme && cd fensme
創建dockerfile,依賴于上文中下載的ubuntu鏡像,還要需要安裝curl庫用于網頁抓取,同時用于jq庫解析json數據。
~ vi dockerfile from ubuntu:latest run apt-get update && apt-get install -y curl jq cmd curl http://api.fens.me/blogs/ | jq .[]
打包,創建名為fensme的鏡像。
# 打包 ~ sudo docker build -t fensme . # 查看鏡像列表 ~ sudo docker images repository tag image id created size fensme latest 41b68972b35a 4 minutes ago 182.8 mb ubuntu latest f8d79ba03c00 2 weeks ago 126.4 mb hello-world latest c54a2cc56cbb 7 weeks ago 1.848 kb
運行fensme的鏡像,這樣就實現了網站數據的抓取。
~ sudo docker run fensme % total % received % xferd average speed time time time current dload upload total spent left speed 100 1421 100 1421 0 0 715 0 0:00:01 0:00:01 --:--:-- 715 { "title": "r語言解讀自回歸模型", "date": 20160819, "link": "http://blog.fens.me/r-ar/", "img": "http://blog.fens.me/wp-content/uploads/2016/08/r-ar.png" } { "title": "r語言量化投資常用包總結", "date": 20160810, "link": "http://blog.fens.me/r-quant-packages/", "img": "http://blog.fens.me/wp-content/uploads/2016/08/quant-packages.png" } { "title": "r語言跨界調用c++", "date": 20160801, "link": "http://blog.fens.me/r-cpp-rcpp", "img": "http://blog.fens.me/wp-content/uploads/2016/08/rcpp.png" } { "title": "r語言解讀多元線性回歸模型", "date": 20160727, "link": "http://blog.fens.me/r-multi-linear-regression/", "img": "http://blog.fens.me/wp-content/uploads/2016/07/reg-multi-liner.png" } { "title": "r語言解讀一元線性回歸模型", "date": 20160725, "link": "http://blog.fens.me/r-linear-regression/", "img": "http://blog.fens.me/wp-content/uploads/2016/07/reg-liner.png" } { "title": "r語言中文分詞包jiebar", "date": 20160721, "link": "http://blog.fens.me/r-word-jiebar/", "img": "http://blog.fens.me/wp-content/uploads/2016/07/jiebar.png" } { "title": "2016天善智能交流會第22場: r語言為量化而生", "date": 20160704, "link": "http://blog.fens.me/meeting-hellobi-20160701/", "img": "http://blog.fens.me/wp-content/uploads/2016/07/meeting-hellobi.png" } { "title": "r語言為量化而生", "date": 20160703, "link": "http://blog.fens.me/r-finance/", "img": "http://blog.fens.me/wp-content/uploads/2016/07/r-finance.png" }
這個例子,我們通過docker封裝了一個非常簡單的爬蟲,當你需要的時候啟動它,把結果寫到數據庫中。當執行完任務,系統資源就釋放了,你需要再為它考慮。
比較簡單地就可以把一個技術或一個功能docker化,從而構建出個性化的docker。
5. 上傳docker鏡像到公共倉庫
最后一步,其實就是把我們做好的docker鏡像上傳到官方的倉庫中,讓其他的人也可以使用。
首先需要去docker hub上面注冊一個賬號,然后登錄進去。
在docker hub上,創建一個自己的倉庫。
在本地操作系統,綁定docker hub的賬號
~ sudo docker login --username=bsspirit --email=bsspirit@163.com flag --email has been deprecated, will be removed in 1.13. password: login succeeded
接下來,要你剛才創建的fensme的鏡像加上命名空間,對應該docker hub上面鏡像名bsspirit/fensme。
# 給fensme增加命名空間 ~ sudo docker tag 8496b10e857a bsspirit/fensme:latest ~ sudo docker images repository tag image id created size bsspirit/fensme latest 8496b10e857a about a minute ago 182.8 mb fensme latest 8496b10e857a 15 minutes ago 182.8 mb ubuntu latest f8d79ba03c00 2 weeks ago 126.4 mb hello-world latest c54a2cc56cbb 7 weeks ago 1.848 kb
上傳bsspirit/fensme鏡像,然后你就可以在docker hub的網站上看到你自己的鏡像了。
~ sudo docker push bsspirit/fensme the push refers to a repository [docker.io/bsspirit/fensme] d9c50c22842b: pushed 4699cbd1a947: pushed 2bed5b3ec49f: pushed 3834bde7e567: pushed d8d865b23727: pushed latest: digest: sha256:bfea736a92b6e602d6bbca867715b0e985f2e9bc3ea4a75b545d7e009e22ac2b size: 1362
打開docker hub網站,刷新頁面。
最后,如果其他人需要使用這個docker鏡像,像最開始介紹的,直接下載運行就可以了。
~ sudo docker run bsspirit/fensme
通過上面的操作,我們就把docker在linux ubuntu中的系統安裝完成。
“Ubuntu中如何安裝Docker”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。