




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、項目1 Docker容器安裝和使用通過本章了解Docker的安裝,鏡像Image、鏡像倉庫Registry和容器Container的使用和管理。目錄任務(wù)2.1 Docker安裝 任務(wù)1.2 Docker 鏡像任務(wù)1.3 Docker 容器任務(wù)2.1 Docker安裝2.1.1 CentOS 操作系統(tǒng)安裝 Docker系統(tǒng)要求Docker最低支持CentOS 7,Docker 需要安裝在 64 位的平臺,并且內(nèi)核版本不低于 3.10。 CentOS 7 滿足最低內(nèi)核的要求,但由于內(nèi)核版本比較低,部分功能(如 overlay2 存儲層驅(qū)動)無法使用,并且部分功能可能不太穩(wěn)定。手動安裝(1)添加內(nèi)核
2、參數(shù)編輯配置文件/etc/sysctl.conf,將以下內(nèi)容添加rootclient # vi /etc/sysctl.confnet.ipv4.ip_forward = 1net.ipv4.conf.default.rp_filter = 0net.ipv4.conf.all.rp_filter = 0任務(wù)2.1 Docker安裝(2)重新加載 sysctl.conf rootlocalhost # sysctl -pnet.ipv4.ip_forward = 1net.ipv4.conf.default.rp_filter = 0net.ipv4.conf.all.rp_filter =
3、0(3)刪除iptables防火墻規(guī)則并保存$ iptables F$ iptables X$ iptables Z$ /usr/sbin/iptables-save任務(wù)2.1 Docker安裝2.12添加 yum 源rootregistry # cat /etc/yum.repos.d/yum.repo centosname=centosbaseurl=54/file/cr/2017/centos7.2/gpgcheck=0enabled=1iaasname=iaasbaseurl=54/file/cr/2017/iaas/iaas-repo/gpgcheck=0enabled=1任務(wù)2.1
4、 Docker安裝配置DNS服務(wù)器地址rootclient # vi /etc/resolv.conf generated by /usr/sbin/dhclient-scriptsearch openstacklocalnameserver 14nameserver 配置倉庫地址所有節(jié)點配置/etc/sysconfig/docker文件修改如下配置(配置倉庫地址)ADD_REGISTRY=-add-registry 3:5000INSECURE_REGISTRY=-insecure-registry 3:5000 任務(wù)2.1 Docker安裝使用DaoCloud 加速器rootclient
5、# curl -sSL https:/get.daocloud.io/daotools/set_mirror.sh | sh -s http:/ef0cb1d0.m.daocloud.ioSuccess.You need to restart docker to take effect: sudo systemctl restart docker rootclient # sudo systemctl restart docker 任務(wù)2.1 Docker安裝更新系統(tǒng)$ yum update安裝docker-iorootregistry # yum -y install docker-ioLo
6、aded plugins: fastestmirrorbase | 3.6 kB 00:00:00 centos | 3.6 kB 00:00:00 extras | 3.4 kB 00:00:00 iaas | 2.9 kB 00:00:00 . systemd-libs.x86_64 0:219-30.el7_3.6 systemd-sysv.x86_64 0:219-30.el7_3.6 Complete!任務(wù)2.1 Docker安裝任務(wù)2.1 Docker安裝啟動docker并設(shè)置為開機(jī)自啟 rootlocalhost yum.repos.d# systemctl start dock
7、er.servicerootlocalhost yum.repos.d# systemctl enable docker.service檢查Docker是否正確安裝rootlocalhost yum.repos.d# docker infoContainers: 0 Running: 0 Paused: 0 Stopped: 0Images: 0Server Version: 1.10.3在windows中安裝Docker Toolbox2.13.在windows中安裝Docker 首先需要從網(wǎng)上下載Docker Toolbox.setup,然后next一鍵安裝Docker Toolbox 安
8、裝完成,并運(yùn)行start .sh任務(wù)2.2 Docker 鏡像Docker 運(yùn)行容器前需要本地存在對應(yīng)的鏡像,如果鏡像不存在本地,Docker 會從鏡像倉庫下載,默認(rèn)是 Docker Hub 公共注冊服務(wù)器中的倉庫。本章將介紹更多關(guān)于鏡像的內(nèi)容,包括:從倉庫獲取鏡像,管理本地主機(jī)上的鏡像,介紹鏡像實現(xiàn)的基本原理。Docker Hub 上有大量的高質(zhì)量的鏡像可以用,從 Docker Registry 獲取鏡像的命令是 docker pull。其命令格式為:docker pull 選項 Docker Registry地址:具體的選項可以通過 docker pull -help 命令看到,這里說一下
9、鏡像名稱的格式。任務(wù)2.2 Docker 鏡像2.21 獲取鏡像從docker hub拉取ubuntu鏡像$ docker pull ubuntu:14.0414.04: Pulling from library/ubuntubf5d46315322: Pull complete9f13e0ac480c: Pull completee8988b5b3097: Pull complete40af181810e7: Pull completee6f7c7e5c03e: Pull completeDigest: sha256:147913621d9cdea08853f6ba9116c2e27a3ce
10、ffecf3b492983ae97c3d643fbbeStatus: Downloaded newer image for ubuntu:14.04任務(wù)2.2 Docker 鏡像從私有庫拉取ubuntu鏡像rootclient /# docker pull 1:5000/ubuntu/14.04.3.tar:latestTrying to pull repository 1:5000/ubuntu/14.04.3.tar . latest: Pulling from 1:5000/ubuntu/14.04.3.tar任務(wù)2.2 Docker 鏡像查看ubuntu鏡像是否下載到本地rootcli
11、ent /# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE1:5000/rancher/agent-instance v0.8.3.tar 6dccaa66a75d 6 months ago 330.9 MB1:5000/rancher/agent v1.0.2.tar deb5c6987c83 6 months ago 454.3 MB1:5000/ubuntu/14.04.3.tar latest ebdc8e295a2e 11 months ago 187.9 MB任務(wù)2.2 Docker 鏡像4.從鏡像啟動一個容器rootclien
12、t /# docker run -t -i -name next_container ubuntu/14.04.3.tar:latest /bin/bashroot917b059d9f30:/#任務(wù)2.2 Docker 鏡像2.22 運(yùn)行有了鏡像后,就可以以這個鏡像為基礎(chǔ)啟動一個容器來運(yùn)行。以上面的 ubuntu:14.04 為例,如果打算啟動ubuntu里面的bash 并且進(jìn)行交互式操作的話,可以執(zhí)行下面的命令。rootclient /# docker run -t -i -name next_container ubuntu/14.04.3.tar:latest /bin/bashroot
13、917b059d9f30:/#任務(wù)2.2 Docker 鏡像2.23 列出鏡像要想列出已經(jīng)下載下來的鏡像,可以使用 docker images 命令。$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEredis latest 5f515359c7f8 5 days ago 183 MBnginx latest 05a60462f8ba 5 days ago 181 MBmongo 3.2 fe9198c04d62 5 days ago 342 MB任務(wù)2.2 Docker 鏡像鏡像體積 Docker Hub 中顯示的體積是壓縮后的體積。在鏡像
14、下載和上傳過程中鏡像是保持著壓縮狀態(tài)的,因此 Docker Hub 所顯示的大小是網(wǎng)絡(luò)傳輸中更關(guān)心的流量大小。由于 Docker 使用 Union FS,相同的層只需要保存一份即可,因此實際鏡像硬盤占用空間很可能要比這個列表鏡像大小的總和要小的多。任務(wù)2.2 Docker 鏡像虛懸鏡像鏡像既沒有倉庫名,也沒有標(biāo)簽,均為 :這類無標(biāo)簽鏡像也被稱為虛懸鏡像(dangling image),可以用下面的命令專門顯示這類鏡像:$ docker images -f dangling=trueREPOSITORY TAG IMAGE ID CREATED SIZE 00285df0df87 5 days
15、ago 342 MB可以用下面的命令刪除。$ docker rmi $(docker images -q -f dangling=true)任務(wù)2.2 Docker 鏡像中間層鏡像默認(rèn)的 docker images 列表中只會顯示頂層鏡像,如果希望顯示包括中間層鏡像在內(nèi)的所有鏡像的話,需要加 -a 參數(shù)。$ docker images -a任務(wù)2.2 Docker 鏡像2.24 列出部分鏡像根據(jù)倉庫名列出鏡像$ docker images ubuntuREPOSITORY TAG IMAGE ID CREATED SIZEubuntu 16.04 f753707788c5 4 weeks ag
16、o 127 MBubuntu latest f753707788c5 4 weeks ago 127 MBubuntu 14.04 1e0c3dd64ccd 4 weeks ago 188 MB列出特定的某個鏡像,也就是說指定倉庫名和標(biāo)簽$ docker images ubuntu:16.04REPOSITORY TAG IMAGE ID CREATED SIZEubuntu 16.04 f753707788c5 4 weeks ago 127 MB任務(wù)2.2 Docker 鏡像以特定格式顯示Docker images q 只顯示鏡像ID$ docker images -q5f515359c7
17、f805a60462f8ba下面的命令會直接列出鏡像結(jié)果,并且只包含鏡像ID和倉庫名:$ docker images -format .ID: .Repository5f515359c7f8: redis05a60462f8ba: nginx任務(wù)2.2 Docker 鏡像以表格等距顯示,并且有標(biāo)題行,和默認(rèn)一樣,不過自己定義列:$ docker images -format table .IDt.Repositoryt.TagIMAGE ID REPOSITORY TAG5f515359c7f8 redis latest05a60462f8ba nginx latestfe9198c04d62
18、 mongo 3.200285df0df87 f753707788c5 ubuntu 16.04f753707788c5 ubuntu latest1e0c3dd64ccd ubuntu 14.04任務(wù)2.2 Docker 鏡像2.25 查找鏡像通過docker search來查找鏡像,首先查找本地,然后本地庫,然后docker hub庫。rootclient # docker search ubuntu INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATEDdocker.io docker.io/ubuntu Ubuntu is a Debian-ba
19、sed Linux operating s. 5280 OK docker.io docker.io/ubuntu-upstart Upstart is an event-based replacement for . 69 OK 任務(wù)2.2 Docker 鏡像2.26 利用 commit 理解鏡像構(gòu)成現(xiàn)在以定制一個 Web 服務(wù)器為例子,來講解鏡像是如何構(gòu)建的。docker run -name webserver -d -p 80:80 nginx這條命令會用 nginx 鏡像啟動一個容器,命名為 webserver,并且映射了 80 端口,這樣可以用瀏覽器去訪問這個 nginx 服務(wù)器。直
20、接用瀏覽器訪問的話,會看到默認(rèn)的 Nginx 歡迎頁面。任務(wù)2.2 Docker 鏡像現(xiàn)在,假設(shè)非常不喜歡這個歡迎頁面,希望改成歡迎 Docker 的文字,可以使用 docker exec命令進(jìn)入容器,修改其內(nèi)容。$ docker exec -it webserver bashroot3729b97e8226:/# echo Hello, Docker! /usr/share/nginx/html/index.htmlroot3729b97e8226:/# exit現(xiàn)在再刷新瀏覽器的話,會發(fā)現(xiàn)內(nèi)容被改變了。任務(wù)2.2 Docker 鏡像修改了容器的文件,也就是改動了容器的存儲層??梢酝ㄟ^ do
21、cker diff 命令看到具體的改動。$ docker diff webserverC /rootA /root/.bash_historyC /runC /usrC /usr/shareC /usr/share/nginxC /usr/share/nginx/htmlC /usr/share/nginx/html/index.html任務(wù)2.2 Docker 鏡像Docker commit (將容器保存為鏡像)$ docker commit -author Tao Wang -message 修改了默認(rèn)網(wǎng)頁 webserver nginx:v2sha256:07e33465974800ce
22、65751acc279adc6ed2dc5ed4e0838f8b86f0c87aa1795214任務(wù)2.2 Docker 鏡像可以在 docker images 中看到這個新定制的鏡像$ docker images nginxREPOSITORY TAG IMAGE ID CREATED SIZEnginx v2 07e334659748 9 seconds ago 181.5 MB任務(wù)2.2 Docker 鏡像用 docker history 具體查看鏡像內(nèi)的歷史記錄,如果比較 nginx:latest 的歷史記錄,會發(fā)現(xiàn)新增了剛剛提交的這一層。$ docker history nginxI
23、MAGE CREATED CREATED BY SIZE COMMENT07e334659748 54 seconds ago nginx -g daemon off; 95 B 修改了默認(rèn)網(wǎng)頁新的鏡像定制好后,可以來運(yùn)行這個鏡像。docker run -name web2 -d -p 81:80 nginx任務(wù)2.2 Docker 鏡像2.27使用 Dockerfile 定制鏡像(1)創(chuàng)建鏡像目錄rootclient /# mkdir static_webrootclient /# cd static_web/rootclient static_web# touch Dockerfilero
24、otclient static_web# lltotal 0-rw-r-r-. 1 root root 0 Dec 25 13:59 Dockerfile任務(wù)2.2 Docker 鏡像(2)編輯新鏡像內(nèi)容rootclient static_web# vi Dockerfile # Version: 0.0.1FROM ubuntu/14.04.3.tarMAINTAINER James Turnbull jamesRUN apt-get updateRUN apt-get install -y nginxRUN echo Hi, I am in your container /var/www/
25、html/index.htmlEXPOSE 80任務(wù)2.2 Docker 鏡像(3)執(zhí)行命令來構(gòu)建新鏡像 rootclient static_web# sudo docker build -t=jamtur01/static_web .-t :構(gòu)建一個名稱Sending build context to Docker daemon 2.048 kBStep 1 : FROM ubuntu/14.04.3.tar - 8e1acf623cb6Step 2 : MAINTAINER James Turnbull james - Running in 99c1fff85acf - bc46e1a77
26、642Removing intermediate container 99c1fff85acfStep 3 : RUN apt-get update & apt-get install -y nginx - Running in 7a3788bdfef1Err trusty InRelease任務(wù)2.2 Docker 鏡像2.29 刪除本地鏡像如果要刪除本地的鏡像,可以使用 docker rmi 命令,其格式為:docker rmi 選項 .-f :強(qiáng)制刪除;-no-prune :不移除該鏡像的過程鏡像,默認(rèn)移除;任務(wù)2.3 Docker 容器2.3.1 啟動容器 docker run-d 后
27、臺運(yùn)行-i 交換式運(yùn)行-name 添加名字-t 添加標(biāo)簽-v 添加數(shù)據(jù)卷-rm 容器刪除后清除緩存任務(wù)2.3 Docker 容器2.3.2 終止容器 docker stop此外,當(dāng)Docker容器中指定的應(yīng)用終結(jié)時,容器也自動終止。 2.3.3 進(jìn)入容器 docker attach$ docker attach nostalgic_hypatiaroot243c32535da7:/#但是使用 attach 命令有時候并不方便。當(dāng)多個窗口同時 attach 到同一個容器的時候,所有窗口都會同步顯示。當(dāng)某個窗口因命令阻塞時,其他窗口也無法執(zhí)行操作了。任務(wù)2.3 Docker 容器2.3.4 容器內(nèi)
28、部操作檢查容器主機(jī)名root1cec78443028:/# hostname1cec78443028檢查容器接口root1cec78443028:/# ip a檢查容器的進(jìn)程root1cec78443028:/# ps -auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.0 18164 2016 ? Ss 05:25 0:00 /bin/bashroot 18 0.0 0.0 15564 1148 ? R+ 05:35 0:00 ps aux任務(wù)2.3 Docker 容器2.3.5 查看容器日志及相關(guān)操作
29、獲取守護(hù)式容器的日志rootl-client # docker logs ubuntu_containerhello world跟蹤守護(hù)式容器的日志rootl-client # docker logs -f ubuntu_containerhello world在容器級別啟動syslogrootl-client # docker run -log-driver=syslog -name ubuntu_container -d ubuntu:14.04.3 /bin/sh -c while true; do echo hello world; sleep 1; done441c3de8dbcbf
30、b09d9586c456d47417150dc7cdaf9cfb26597945b27a68bb310任務(wù)2.3 Docker 容器查看守護(hù)式容器的進(jìn)程rootl-client # docker top ubuntu_containerUID PID PPID C STIME TTY TIME CMDroot 7356 965 0 06:26 ? 00:00:00 /bin/sh -c 查看容器占用系統(tǒng)資源情況rootl-client # docker statsCONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O441c3de8dbcb 0.10% 2.372 MB
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025商業(yè)大廈租賃合同協(xié)議書
- 2025房屋租賃合同書范本超詳細(xì)
- 2025水果定購合同范本
- 2025關(guān)于租賃合同簡易版
- 城軌車輛運(yùn)營與規(guī)章-內(nèi)容九 內(nèi)容八 內(nèi)容七 內(nèi)容六 內(nèi)容五 內(nèi)容四 內(nèi)容三 內(nèi)容二 內(nèi)容一-1738426037551
- 《成語:傳統(tǒng)文化的微縮畫卷》教學(xué)課件
- 《精益生產(chǎn)案例解析》課件
- 七臺河職業(yè)學(xué)院《土木工程專業(yè)導(dǎo)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 山東省新泰一中2025年高三5月三模歷史試題含解析
- 上海杉達(dá)學(xué)院《設(shè)計思維》2023-2024學(xué)年第二學(xué)期期末試卷
- GB/T 4135-2016銀錠
- GA/T 992-2012停車庫(場)出入口控制設(shè)備技術(shù)要求
- 河流專題復(fù)習(xí)-重點課件
- 企業(yè)風(fēng)險管理-戰(zhàn)略與績效整合(中文版)
- 2022年全國職工書屋推薦書目
- 哈薩克斯坦鐵路車站代碼
- 裝配式建筑設(shè)計設(shè)計專篇
- 《教育心理學(xué)》教材
- 綏滿公路大慶黃牛場至齊齊哈爾宛屯段擴(kuò)建項目B4合同段施工組織設(shè)計
- 身體紅綠燈課件
- Pentacam白內(nèi)障應(yīng)用(第二版)
評論
0/150
提交評論