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