摘要:進(jìn)入發(fā)現(xiàn)運(yùn)行鏡像的容器有可能也是一個(gè)系統(tǒng)。每次使用都會(huì)創(chuàng)建一個(gè)容器,如果出現(xiàn)已經(jīng)存在的提示,請(qǐng)使用去移除這個(gè)容器。使用可以獲取權(quán)限容器如何查看準(zhǔn)確說如何進(jìn)入到容器。這個(gè)就表示啟動(dòng)容器后啟動(dòng)保證有個(gè)進(jìn)行在運(yùn)行。
前言
這篇文章采用自問自答的方式記錄自己的接觸Docker的所想與困惑.
學(xué)習(xí)方式菜鳥教程過一遍 -> 實(shí)戰(zhàn)總結(jié) -> Docker官網(wǎng)查找細(xì)節(jié)
基礎(chǔ)知識(shí)Docker搜索鏡像 docker search
Docker查看本地鏡像 docker images
運(yùn)行鏡像 docker run 鏡像ID
停止鏡像 docker stop 鏡像ID
重啟鏡像 docker start 鏡像ID
刪除容器 docker rm name
刪除鏡像:需要注意刪除鏡像和容器的命令不一樣。 docker rmi ID ,其中 容器(rm) 和 鏡像(rmi)
拖取鏡像:docker pull name
提交容器:容器中做了一些安裝和更改,可以使用docker commit 進(jìn)行提交得到一個(gè)新的鏡像,以后就不需要安裝之前安裝過的東西
主機(jī)拷貝文件到容器,容器拷貝到宿主主機(jī)分別是: docker cp [options] 容器ID:源路徑 目的路徑和docker cp [options] 源路徑 容器ID: 目的路徑。也可以用掛載 在docker run的時(shí)候用 -v命令指定,但是掛載需要和宿主主機(jī)關(guān)聯(lián),有點(diǎn)耦合的感覺
docker save 保存一個(gè)或者多個(gè)鏡像為壓縮文件,使用docker load加載
docker logs 可以查看一些密碼的生存,比如Jenkins
docker ps 和docker ps -a 前者查看運(yùn)行的容器,后者查看包括不成功運(yùn)行的所有容器
docker 和 docker common --help 幫助獲取命令更多細(xì)節(jié)
問題Docker容器和宿主主機(jī)的概念好迷糊
宿主主機(jī)就是當(dāng)前安裝了docker的系統(tǒng),可以是window也可以是liunx. 容器就是鏡像運(yùn)行的一個(gè)環(huán)境,使用docker
run可以創(chuàng)建這個(gè)容器(環(huán)境),docker exec -it 容器ID(容器別名 --name)可以進(jìn)入到這個(gè)容器中。進(jìn)入發(fā)現(xiàn)運(yùn)行鏡像的容器有可能也是一個(gè)liunx系統(tǒng)。在這個(gè)容器中我們可以安裝其他工具,比如vim,比如jdk,比如tomcat等,這樣安裝好以后直接使用docker -commit 變成一個(gè)新的鏡像,以后直接通過docker run 新鏡像就能獲得之前安裝好的vim jdk等這個(gè)新環(huán)境。每次使用docker run 都會(huì)創(chuàng)建一個(gè)容器,如果出現(xiàn)已經(jīng)存在的提示,請(qǐng)使用docker stop 、docker rm去移除這個(gè)容器。
Docker容器如何進(jìn)入和運(yùn)行
Docker容器運(yùn)行其實(shí)只要通過 docker run 就可以跑起響應(yīng)的鏡像,并能使用這個(gè)鏡像,比如jenkins鏡像,先通過docker search jenkins 找到倉(cāng)庫(kù)列表,然后docker pull拉去官網(wǎng)鏡像, 直接docker run
鏡像ID就可以啟動(dòng)Jenkins并且通過瀏覽器訪問到這個(gè)Jenkins。使用docker run --privileged=true可以獲取權(quán)限
Docker容器如何查看? 準(zhǔn)確說如何進(jìn)入到Docker容器。 可以使用docker exec 這個(gè)命令,在liunx下可能有很多例子(docker exec -it -u root 容器別名 /bin/bash),但是如果是window,那么分為兩種模式,一種是Window容器(docker exec -it -u root 容器別名 powershell),一種是liunx 容器(docker exec -it -u root 容器別名 bash),
Docker容器運(yùn)行時(shí)的資源掛載
liunx的掛載是將磁盤分區(qū)掛載指定目錄,這個(gè)目錄代表就是這個(gè)分區(qū)。那么這里資源掛載又是怎么回事呢?在使用docker run命令的時(shí)候可以使用-v來指定將宿主主機(jī)目錄掛載在容器的目錄下,這樣做的好處是我不需要在容器中安裝新的東西,只要將宿主主機(jī)已經(jīng)存在的內(nèi)容在docker run的時(shí)候用-v掛載一下就可以了,在容器下面會(huì)創(chuàng)建這個(gè)掛載的目錄。比如說是宿主主機(jī)的jdk路徑用-v /usr/jdk:/usr/container/jdk 掛載后在容器下面就會(huì)存在jdk路徑,那么這個(gè)容器的jdk路徑在什么時(shí)候使用呢? 比如這個(gè)容器是Jenkins所在的容器,那么通過Web頁(yè)配置Jenkins所需的jdk路徑指的就是這個(gè)容器內(nèi)的路徑,我們不需要在容器里面在安裝jdk了
具體掛載寫法語(yǔ)法請(qǐng)看這篇文章 這篇文章很全 ,容器指定的掛載路徑會(huì)自動(dòng)生成
容器運(yùn)行的時(shí)候如何掛載新路徑
在使用docker安裝jenkins的時(shí)候,將容器運(yùn)行起來然后在web頁(yè)面進(jìn)行大半天的插件下載,進(jìn)入配置頁(yè)的時(shí)候發(fā)現(xiàn)忘記掛載jdk了,這可怎么辦? 簡(jiǎn)單來說可以在容器下自己安裝一個(gè)jdk,不一樣要掛載。 但是如果非得掛載那么只能docker 刪掉當(dāng)前容器在run一次,這樣做的結(jié)果是你之前在網(wǎng)頁(yè)配置的jenkins已經(jīng)不存在了需要從頭再來
掛載后需要更改宿主主機(jī)中的tomcat版本,從7.9變成8.5,會(huì)直接影響容器嗎
這個(gè)問題求助過別人,也查過資料,貌似只要更改宿主主機(jī)就可以了,具體還得等日后實(shí)踐
容器權(quán)限不夠
進(jìn)入容器后通過 ls -l 發(fā)現(xiàn) 用戶和用戶組是root 只有用戶才有wrx權(quán)限,用戶組和其他人沒有任何操作權(quán)限,我們知道x權(quán)限關(guān)系到你能不能cd到這個(gè)目錄,連x都沒有該如何是好? 通過 w 和 who命令 或者命令提示符后面的$符可以看到當(dāng)前用戶不是root,可以在docker exec的時(shí)候指定 -u root參數(shù)來讓進(jìn)入的用戶是個(gè)root用戶提示符#是root
/bin/bash的作用
docker命令是不是就跟個(gè)/bin/bash,什么意思? 這是表示載入容器后運(yùn)行bash ,docker中必須要保持一個(gè)進(jìn)程的運(yùn)行,要不然整個(gè)容器就會(huì)退出。這個(gè)就表示啟動(dòng)容器后啟動(dòng)bash保證有個(gè)進(jìn)行在運(yùn)行。看懂了嗎,反正在下很迷糊
容器沒有vim ? 不同使用yum安裝?
請(qǐng)點(diǎn)擊這里獲取方法
window 安裝docker
最悲催的是1G內(nèi)容的云服務(wù)里玩不了docker,因此大多數(shù)還是在window下安裝docker。安裝需要注意幾點(diǎn)內(nèi)容,必須是window10企業(yè)版或者專業(yè)版,如果是win10家庭版的還是去某寶花幾塊錢買個(gè)序列號(hào)升級(jí)一下(去【開始——設(shè)置——更新——激活】點(diǎn)擊更改產(chǎn)品密鑰,然后把密鑰復(fù)制粘貼進(jìn)去)如何查看當(dāng)前電腦操作系統(tǒng)版本:點(diǎn)擊這里,下圖是官網(wǎng)使用Hyper-v虛擬機(jī)安裝,
一路安裝下去后出現(xiàn)了下面的錯(cuò)誤Hardware assisted virtualization and data execution protection must be enabled in the BIOS. See https://docs.docker.com/docke...。 虛擬化禁用了,進(jìn)入bios,直接找到configuration(或advanced->CPU configuration)開啟Intel Virtualization Technology, 解決好了沒遇到其他問題,默認(rèn)倉(cāng)庫(kù)太慢,修改daemon.json里面的內(nèi)容(everything下個(gè)快速搜索)
容器中生成的jar包拷貝到主機(jī)window目錄中
docker cp myjenkins:/var/jenkins_home/workspace/xxx/target/xxx-0.0.1-SNAPSHOT.jar D:
docker cp --help 顯示的第一條命令是從容器拷貝主機(jī),第二條命令是主機(jī)拷貝容器
docker run Jenkins容器的時(shí)候不指定jenkins_home的掛載路徑會(huì)如何?
jenkins容器會(huì)自動(dòng)生成/var/jenkins_home路徑,這個(gè)路徑存放第三方工具構(gòu)建好的一些包war/jar,以后如有需要可以進(jìn)入這個(gè)目錄下獲取包
proceed &)_(&
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/27502.html
摘要:綜上,一個(gè)好的教程應(yīng)該是通俗易懂,由淺入深,全面詳盡的展示知識(shí)內(nèi)容,展現(xiàn)出全面的知識(shí)輪廓知識(shí)體系,以及學(xué)習(xí)該教程所需要的知識(shí)水平,并且給出建議,和學(xué)習(xí)其它知識(shí)的渠道。這才是對(duì)讀者,對(duì)知識(shí)負(fù)責(zé)任的態(tài)度。 現(xiàn)在網(wǎng)絡(luò)發(fā)達(dá),網(wǎng)上資料多,查閱方便,所以網(wǎng)上學(xué)習(xí)的確是一種很好的途徑,但是網(wǎng)上的資料很多都呈碎片化的,并且質(zhì)量良莠不齊,有的還有時(shí)效性,錯(cuò)誤性等問題。很多原因往往給學(xué)習(xí)者帶來很大的困擾,...
摘要:我強(qiáng)烈推薦這本書給初學(xué)者,因?yàn)楸緯鴤?cè)重于統(tǒng)計(jì)建模和機(jī)器學(xué)習(xí)的基本概念,并提供詳細(xì)而直觀的解釋。關(guān)于完善簡(jiǎn)歷,我推薦以下網(wǎng)站和文章怎樣的作品集能幫助我們找到第一數(shù)據(jù)科學(xué)或機(jī)器學(xué)習(xí)方面的工作簡(jiǎn)歷是不夠的,你還需要作品集的支撐。 showImg(https://segmentfault.com/img/bVblJ0R?w=800&h=533); 作者 | Admond Lee翻譯 | Mik...
摘要:摘要本文以過來人的身份將自身年的研究經(jīng)驗(yàn)做了一下分享,希望本文對(duì)于即將開始從事人工智能研究的朋友有所幫助。此外,還有各種會(huì)議也值得關(guān)注。三大會(huì)議分別是以及。此外,當(dāng)演講者向現(xiàn)場(chǎng)觀眾演講時(shí),他們往往優(yōu)先考慮的是清晰度而不是簡(jiǎn)潔性。 摘要: 本文以過來人的身份將自身2年的研究經(jīng)驗(yàn)做了一下分享,希望本文對(duì)于即將開始從事人工智能研究的朋友有所幫助。 人工智能研究這個(gè)領(lǐng)域是有一定門檻的。對(duì)于初學(xué)...
閱讀 2328·2021-10-11 10:59
閱讀 2608·2021-10-11 10:58
閱讀 3314·2021-09-08 09:35
閱讀 3813·2021-09-02 15:21
閱讀 1468·2019-08-30 15:53
閱讀 2618·2019-08-29 14:16
閱讀 2079·2019-08-26 14:00
閱讀 2962·2019-08-26 13:52