摘要:上一篇簡(jiǎn)介常用命令與實(shí)踐一六鏡像操作獲取鏡像下載鏡像到本地上有大量的高質(zhì)量的鏡像可以用,這里我們就說(shuō)一下怎么獲取這些鏡像。
【上一篇:Docker簡(jiǎn)介、常用命令與實(shí)踐(一)】 六、Docker鏡像操作 6.1 獲取鏡像(下載鏡像到本地)
Docker Hub?上有大量的高質(zhì)量的鏡像可以用,這里我們就說(shuō)一下怎么獲取這些鏡像。
從 Docker 鏡像倉(cāng)庫(kù)獲取鏡像的命令是?docker pull。其命令格式為:
docker pull [選項(xiàng)] [Docker Registry 地址[:端口號(hào)]/]倉(cāng)庫(kù)名[:標(biāo)簽]
docker中拉取指定版本的鏡像比如:
docker pull mongo:3.2.4 dockre pull redis:3.2
具體的選項(xiàng)可以通過(guò)?docker pull --help
6.2 列出本地鏡像要想列出已經(jīng)下載下來(lái)的鏡像,可以使用docker image ls或docker images命令。
6.3 刪除本地鏡像如果要?jiǎng)h除本地的鏡像,可以使用?docker image rm?命令,其格式為:
$ docker image rm [選項(xiàng)] <鏡像1> [<鏡像2> ...]七、Docker容器操作 7.1 說(shuō)在前面
/bin/bash是linux的命令行工具,類似于window的cmd進(jìn)入dos系統(tǒng)。
7.2 查看容器docker ps #查看啟動(dòng)的容器 docker ps -a #查看所有容器,包含沒(méi)有啟動(dòng)的容器7.3 啟動(dòng)容器
????啟動(dòng)容器有兩種方式,一種是基于鏡像新建一個(gè)容器并啟動(dòng),另外一個(gè)是將在終止?fàn)顟B(tài)(stopped)的容器重新啟動(dòng)。
????因?yàn)?Docker 的容器實(shí)在太輕量級(jí)了,很多時(shí)候用戶都是隨時(shí)刪除和新創(chuàng)建容器。
語(yǔ)法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
COMMAND: 容器啟動(dòng)后進(jìn)入容器中要執(zhí)行的命令.
OPTIONS:(常用選項(xiàng))
-d: 讓 Docker 在后臺(tái)運(yùn)行而不是直接把執(zhí)行命令的結(jié)果輸出在當(dāng)前宿主機(jī)下 -t:?選項(xiàng)讓Docker分配一個(gè)偽終端(pseudo-tty)并綁定到容器的標(biāo)準(zhǔn)輸入上,? -i:?則讓容器的標(biāo)準(zhǔn)輸入保持打開(kāi)。 -name:為容器命名 -v: 創(chuàng)建數(shù)據(jù)卷 -p: 綁定端口7.3.1 基于鏡像新建一個(gè)容器并啟動(dòng)
docker run
docker run命令有兩個(gè)參數(shù),一個(gè)是鏡像名,一個(gè)是要在鏡像中運(yùn)行的命令。
例如:
docker run -p 5000:5000 –name web training/webapp7.3.2 后臺(tái)運(yùn)行
????更多的時(shí)候,需要讓 Docker 在后臺(tái)運(yùn)行而不是直接把執(zhí)行命令的結(jié)果輸出在當(dāng)前宿主機(jī)下。此時(shí),可以通過(guò)添加 -d 參數(shù)來(lái)實(shí)現(xiàn)。
$ docker run -d CONTAINER [CONTAINER...]
例如:
docker run –d –p 5000:5000 training/webapp7.3.3 交互運(yùn)行
啟動(dòng)一個(gè) bash 終端,允許用戶進(jìn)行交互。
$ docker run -it CONTAINER [CONTAINER...] /bin/bash
-t:選項(xiàng)讓Docker分配一個(gè)偽終端(pseudo-tty)并綁定到容器的標(biāo)準(zhǔn)輸入上,?
-i:?則讓容器的標(biāo)準(zhǔn)輸入保持打開(kāi)。
在交互模式下,用戶可以通過(guò)所創(chuàng)建的終端來(lái)輸入linux命令
例如:創(chuàng)建centos容器并且進(jìn)入centos容器中
docker run -it centos /bin/bash7.4 終止容器
$ docker stop CONTAINER [CONTAINER...]
例如:
docker run –d –p 5000:5000 training/webapp7.5 啟動(dòng)一個(gè)停止的容器
$ docker start CONTAINER [CONTAINER...]
例如:
docker stop web7.6 重啟容器
$ docker restart CONTAINER [CONTAINER...]
例如:
docker restart web7.7 刪除容器
$ docker rm CONTAINER [CONTAINER...]
例如:
docker rm web7.8 獲取容器的輸出信息
$ docker logs CONTAINER [CONTAINER...]
例如:
docker logs web7.9 進(jìn)入容器
docker exec :在運(yùn)行的容器中執(zhí)行命令
語(yǔ)法
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS說(shuō)明:
-d :分離模式: 在后臺(tái)運(yùn)行-i :即使沒(méi)有附加也保持STDIN 打開(kāi)
-t :分配一個(gè)偽終端
$ docker exec –it CONTAINER /bin/bash
例如:
docker exec –it web7.10 主機(jī)和容器間拷貝 7.10.1.容器拷貝到主機(jī)
docker cp ed0f8bb24f3e:/opt/webapp/app.py d:/www
ed0f8bb24f3e: 容器id
/opt/webapp/app.py: 容器中的文件
d:/www: 主機(jī)文件夾
docker cp d:/www/文件 ed0f8bb24f3e:/opt/webapp/7.11 給鏡像打上標(biāo)簽(tag)
tag的作用主要有兩點(diǎn):一是為鏡像起一個(gè)容易理解的名字,二是可以通過(guò)docker tag來(lái)重新指定鏡像的倉(cāng)庫(kù),這樣在push時(shí)自動(dòng)提交到倉(cāng)庫(kù)。
將同一IMAGE_ID的所有tag,合并為一個(gè)新的
# docker tag 195eb90b5349 seanlook/ubuntu:rm_test
新建一個(gè)tag,保留舊的那條記錄
# docker tag Registry/Repos:Tag New_Registry/New_Repos:New_Tag八、數(shù)據(jù)卷 8.1 什么是數(shù)據(jù)卷
數(shù)據(jù)卷?是一個(gè)可供一個(gè)或多個(gè)容器使用的特殊目錄,可以繞過(guò)聯(lián)合文件系統(tǒng)(UFS),為一個(gè)或多個(gè)容器提供訪問(wèn)。數(shù)據(jù)卷設(shè)計(jì)的目的在于對(duì)數(shù)據(jù)的持久化,它完全獨(dú)立于容器的生命周期,因此Docker不會(huì)在刪除容器時(shí)刪除其掛載的數(shù)據(jù)卷,也不會(huì)存在類似垃圾收集的機(jī)制。
數(shù)據(jù)卷提供很多有用的特性:
數(shù)據(jù)卷?可以在容器之間共享和重用
對(duì)數(shù)據(jù)卷的修改會(huì)立馬生效
對(duì)數(shù)據(jù)卷的更新,不會(huì)影響鏡像
數(shù)據(jù)卷默認(rèn)會(huì)一直存在,即使容器被刪除
注意:數(shù)據(jù)卷的使用,類似于Linux下對(duì)目錄或文件進(jìn)行mount,鏡像中的被指定為掛載點(diǎn)的目錄中的文件會(huì)隱藏掉,能顯示看的是掛載的數(shù)據(jù)卷。
8.2 為什么要使用數(shù)據(jù)卷將本地主機(jī)中的代碼運(yùn)行在docker容器中。
8.3 掛載數(shù)據(jù)卷的前提授權(quán)本地磁盤(pán)
8.4 掛載一個(gè)主機(jī)目錄作為數(shù)據(jù)卷 8.4.1 第一種掛起一個(gè)數(shù)據(jù)卷運(yùn)行一個(gè)nginx容器 ,-v 掛起一個(gè)卷,nginx用來(lái)訪問(wèn)網(wǎng)頁(yè)的地址 , -d 以守護(hù)進(jìn)程來(lái)運(yùn)行,--name 給一個(gè)名字
docker run -d --name nginx -v /usr/share/nginx/html/ nginx
檢查容器的運(yùn)行狀態(tài)
docker inspect nginx
對(duì)index.html文件做一些改動(dòng)
echo "hello docker" > index.html8.4.2 第二種通過(guò)本地目錄掛載到容器里面的數(shù)據(jù)卷中去
docker run -p 8090:80 -d -v $PWD/html:/usr/share/nginx/html nginx docker run -d -v d:/www/webapp:/opt/webapp training/webapp8.4.3 第三種創(chuàng)建一個(gè)僅僅提供數(shù)據(jù)的容器,把這個(gè)容器當(dāng)做volume掛載到其它容器里面去
# -v 表示的是volume(數(shù)據(jù)卷) --name 名字 nginx 是這個(gè)容器的基礎(chǔ)鏡像 docker create -v $PWD/data:/usr/share/nginx/html --name data_container nginx
運(yùn)行一個(gè)新的容器,把上面提供數(shù)據(jù)的容器當(dāng)做數(shù)據(jù)卷掛載到當(dāng)前的容器中運(yùn)行,-it表示交互的方式運(yùn)行,會(huì)直接進(jìn)入到這個(gè)容器中
docker run -it --volumes-from data_container nginx /bin/bash root@772cbe131d01:/usr/share/nginx/html# echo "Hello Nginx&Docker" > index.html
退出容器查看data目錄:
九、常見(jiàn)疑問(wèn)Docker的容器是以鏡像來(lái)創(chuàng)建的,鏡像是不是一個(gè)類似操作系統(tǒng)的環(huán)境?
是的,你可以將Docker理解為一個(gè)輕量化的虛擬機(jī),至于我們經(jīng)常說(shuō)的什么Tomcat鏡像、MySQL鏡像之類的,只是這個(gè)輕量化的虛擬機(jī)中安裝了相應(yīng)的軟件。鏡像的名字也就說(shuō)明了鏡像的功能。
是不是到正式環(huán)境上還要安裝Docker,然后把應(yīng)用部署在其中?
是的,構(gòu)建Docker鏡像、運(yùn)行Docker容器,都需要安裝Docker,但這是一勞永逸的,因?yàn)槲覀兪褂玫氖前惭b了各種各樣功能軟件的Docker鏡像和Docker容器。
參考教程:Docker之編程環(huán)境應(yīng)用
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/27576.html
摘要:獲取阿里云加速器地址進(jìn)入登錄阿里云進(jìn)入后臺(tái)配置加速器點(diǎn)擊后就會(huì)重啟并應(yīng)用配置的鏡像地址了檢查加速器是否生效配置加速器之后,如果拉取鏡像仍然十分緩慢,請(qǐng)手動(dòng)檢查加速器配置是否生效,在命令行執(zhí)行,如果從結(jié)果中看到了如下內(nèi)容,說(shuō)明配置成功。 一、為什么要使用Docker以及與虛擬機(jī)的區(qū)別? 1.1 為什么要使用Docker Docker的思想來(lái)自于集裝箱。集裝箱解決了什么問(wèn)題?在一艘大船上,...
摘要:此刻的后手指依舊飛速地敲打鍵盤(pán),絲毫沒(méi)有要停不下來(lái)意思。閱讀本期技術(shù)周刊,你不光能弄明白什么是,使用的意義何在,還將被傳授秘籍,以達(dá)的境界。周刊篩選的每篇內(nèi)容,是作者的獨(dú)到見(jiàn)解,踩坑總結(jié)和經(jīng)驗(yàn)分享。 showImg(https://segmentfault.com/img/bVC5qJ?w=900&h=385); 啪嗒啪嗒,啪嗒啪嗒,聽(tīng)到后排動(dòng)感十足的清脆鍵盤(pán)響,我就能猜到公司程序員定...
摘要:以下為幾個(gè)常用的指令依賴鏡像所有都必須以命令開(kāi)始,表示其依賴的鏡像。的端口不使用公有端口。與命令使用數(shù)組語(yǔ)法。推薦阿里云,畢竟有錢(qián),穩(wěn)定。參數(shù)表示后臺(tái)守護(hù)進(jìn)程運(yùn)行容器。執(zhí)行,運(yùn)行應(yīng)用。 docker 即容器 一些概念 Docker Registry Docker 遠(yuǎn)程鏡像倉(cāng)庫(kù) DockerHub DaoCloud / Aliyun Docker Images Docker Imag...
閱讀 2688·2023-04-26 01:44
閱讀 2803·2021-09-10 10:50
閱讀 1531·2019-08-30 15:56
閱讀 2488·2019-08-30 15:44
閱讀 588·2019-08-29 11:14
閱讀 3527·2019-08-26 11:56
閱讀 3099·2019-08-26 11:52
閱讀 1063·2019-08-26 10:27