玩裝Docker(3)-使用鏡像

鏡像加速器

國(guó)內(nèi)從Docker Hub拉取鏡像有時(shí)會(huì)遇到困難此改,此時(shí)可以配置鏡像加速器卡骂,國(guó)內(nèi)很多云服務(wù)商都提供了國(guó)內(nèi)加速器服務(wù):

對(duì)于使用systemd的系統(tǒng)岂贩,在/etc/docker/daemon.json 中寫入一下內(nèi)容:

{
  "registry-mirrors": [
    "https://dockerhub.azk8s.cn",
    "https://reg-mirror.qiniu.com"
  ]
}

你也可以在其中添加跟多的鏡像加速器抡驼,之后重新啟動(dòng)服務(wù)就可以了:

sudo systemctl daemon-reload
sudo systemctl restart docker

對(duì)于win10系統(tǒng)來(lái)說(shuō)蹬蚁,在任務(wù)欄托盤Docker圖標(biāo)內(nèi)右鍵菜單選擇Settings趁怔,打開配置窗口后在左側(cè)導(dǎo)航菜單選擇Docker Engine,在右側(cè)像上邊一樣編輯json文件带污,之后點(diǎn)擊Apply&Restart保存后Docker就會(huì)重啟并應(yīng)用配置的鏡像地址了僵控。

檢查加速器是否生效

docker info

pi@raspberrypi:/etc/docker $ docker info
Client:
 Debug Mode: false

Server:
 Containers: 1
  Running: 0
  Paused: 0
  Stopped: 1
 Images: 1
 Server Version: 19.03.6
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: b34a5c8af56e510852c35414db4c1f4fa6172339
 runc version: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 4.19.97-v7+
 Operating System: Raspbian GNU/Linux 10 (buster)
 OSType: linux
 Architecture: armv7l
 CPUs: 4
 Total Memory: 926.1MiB
 Name: raspberrypi
 ID: IV3S:6ZNI:JBT4:64YW:4KPG:GB57:AK22:LVUH:UXPE:RMNM:3WI6:RRMX
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Registry Mirrors:
  https://dockerhub.azk8s.cn/
  https://reg-mirror.qiniu.com/
 Live Restore Enabled: false

WARNING: No swap limit support
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support

在其中可以看到 Registry Mirrors下就是你配置的鏡像加速器。

gcr.io 鏡像

國(guó)內(nèi)無(wú)法直接獲取 gcr.io/*鏡像鱼冀,我們可以將 gcr.io/<repo-name>/<image-name>:<version> 替換為 gcr.azk8s.cn/<repo-name>/<image-name>:<version>.

使用Docker鏡像

Docker運(yùn)行容器前需要本地存在對(duì)應(yīng)的鏡像报破,如果本地不存在該鏡像,Docker會(huì)從鏡像倉(cāng)庫(kù)下載該鏡像千绪。DockerHub上有大量的高質(zhì)量鏡像可以使用充易。

從Docker鏡像倉(cāng)庫(kù)獲取鏡像的命令是docker pull:

docker pull [選項(xiàng)] [Docker Registry 地址[:端口號(hào)]/]倉(cāng)庫(kù)名[:標(biāo)簽]

  • Docker鏡像倉(cāng)庫(kù)地址格式:<域名/IP>[:端口號(hào)] 默認(rèn)地址是Docker Hub
  • 倉(cāng)庫(kù)名:倉(cāng)庫(kù)名是兩段式名稱,即 <用戶名>/<軟件名> 對(duì)于Docker Hub如果不給出用戶名荸型,則默認(rèn)為library盹靴,也就是官方鏡像。
  • 標(biāo)簽:通常是鏡像的版本瑞妇,例如ubuntu:18.04 后的18.04就是其版本稿静,如果不加標(biāo)簽?zāi)J(rèn)為latest
pi@raspberrypi:~ $ docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
b9b5ae93466e: Pull complete
9e8983199234: Pull complete
1e76f87f706a: Pull complete
b196ba84f492: Pull complete
Digest: sha256:04d48df82c938587820d7b6006f5071dbbffceb7ca01d2814f81857c631d44df
Status: Downloaded newer image for ubuntu:18.04
docker.io/library/ubuntu:18.04

根據(jù)上面命令中給出的信息可以看到鏡像地址為library官方庫(kù)的ubuntu:18.04鏡像。從下載過(guò)程中可以看到分層存儲(chǔ)的概念辕狰,鏡像是由多層存儲(chǔ)所構(gòu)成改备,下載也是一層一層的下載,并非單一文件蔓倍。下載過(guò)程給出了每一層的ID的12位悬钳,下載完成后給出該鏡像完整的sha256的摘要。

運(yùn)行

有了鏡像后偶翅,我們就能以這個(gè)鏡像為基礎(chǔ)啟動(dòng)并運(yùn)行一個(gè)容器默勾,以上面的ubuntu為例,如果我們打算啟動(dòng)里面的bash并進(jìn)行交互式操作的話:

pi@raspberrypi:~ $ docker run -it --rm \
> ubuntu:18.04 \
> bash
root@2f41fb0d333d:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.4 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.4 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

最后我們通過(guò)exit退出這個(gè)容器聚谁。

列出鏡像

要想列出已經(jīng)下載下來(lái)的鏡像母剥,可以使用docker image ls 命令:

pi@raspberrypi:~ $ docker image ls
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
ubuntu                18.04               981c0bc3c335        4 hours ago         46.7MB
arm32v7/hello-world   latest              851163c78e4a        7 weeks ago         4.85k

列表包含了倉(cāng)庫(kù)名、標(biāo)簽、鏡像ID媳搪、創(chuàng)建時(shí)間以及所占用的空間铭段。

虛懸鏡像

有時(shí)候你在鏡像列表中,可以看到一個(gè)特殊的鏡像:

<none>               <none>              00285df0df87        5 days ago          342 MB

其沒(méi)有倉(cāng)庫(kù)名也沒(méi)有標(biāo)簽秦爆,這個(gè)鏡像原本是有名字的序愚,但是隨著官方鏡像維護(hù),發(fā)布了新版本后等限,重新docker pull ubuntu:18.04時(shí)爸吮,unbutu:18.04這個(gè)鏡像名被轉(zhuǎn)移到新下載的鏡像身上,而舊的鏡像上的這個(gè)名稱就被取消了望门,從而成為了none形娇。這類無(wú)標(biāo)簽鏡像也被稱為虛懸鏡像〕镂螅可以用以下命令專門顯示:

doker image ls -f dangling=true

通常情況下這個(gè)虛懸鏡像并沒(méi)有存在的價(jià)值桐早,可以隨意刪除:

docker image prune

刪除本地鏡像

如果要?jiǎng)h除本地的鏡像,可以使用docker image rm命令:

docker image rm [選項(xiàng)] <鏡像1>[<鏡像2>...]

其中鏡像可以是鏡像短ID厨剪、鏡像長(zhǎng)ID哄酝、鏡像名稱來(lái)刪除鏡像。使用腳本的時(shí)候可能會(huì)使用長(zhǎng)ID祷膳,其他多數(shù)使用短ID陶衅,短ID不要求個(gè)數(shù)只要能唯一區(qū)分鏡像就可以了。

pi@raspberrypi:~ $ docker image rm arm32v7/hello-world
Error response from daemon: conflict: unable to remove repository reference "arm32v7/hello-world" (must force) - container 0382315f3e5d is using its referenced image 851163c78e4a

可以看到報(bào)錯(cuò)了直晨,這是因?yàn)樵趧h除鏡像前必須要先用docker rm刪除依賴于這個(gè)鏡像的所有容器(哪怕是已經(jīng)停止的容器),否則無(wú)法刪除該鏡像搀军。

pi@raspberrypi:~ $ docker rm 03823
03823
pi@raspberrypi:~ $ docker image rm arm32v7/hello-world
Untagged: arm32v7/hello-world:latest
Untagged: arm32v7/hello-world@sha256:d32a4c07ce3055032a8d2d59f49ca55fafc54a4e840483b590f7565769dc7e00
Deleted: sha256:851163c78e4ad68e6fe5391f0894aafd164d40c4d4d0a56b4291f0dc2c75cc2c
Deleted: sha256:2536d8d4e4b1baa6515d44eb77a1402d6be0a533e7d191c51cb8428ba5ece3f4
pi@raspberrypi:~ $ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              18.04               981c0bc3c335        28 hours ago        46.7MB

使用docker rm 容器id 刪除容器后,在刪除image這樣就成功了勇皇。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末罩句,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子敛摘,更是在濱河造成了極大的恐慌的止,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件着撩,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡匾委,警方通過(guò)查閱死者的電腦和手機(jī)拖叙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)赂乐,“玉大人薯鳍,你說(shuō)我怎么就攤上這事。” “怎么了挖滤?”我有些...
    開封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵崩溪,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我斩松,道長(zhǎng)伶唯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任惧盹,我火速辦了婚禮乳幸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘钧椰。我一直安慰自己抓于,他們只是感情好裸弦,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般吼和。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上差导,一...
    開封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天砌函,我揣著相機(jī)與錄音,去河邊找鬼娄徊。 笑死闽颇,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的寄锐。 我是一名探鬼主播兵多,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼橄仆!你這毒婦竟也來(lái)了剩膘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤盆顾,失蹤者是張志新(化名)和其女友劉穎怠褐,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體您宪,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡奈懒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了宪巨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片磷杏。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖捏卓,靈堂內(nèi)的尸體忽然破棺而出极祸,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布遥金,位于F島的核電站浴捆,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏稿械。R本人自食惡果不足惜选泻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望溜哮。 院中可真熱鬧滔金,春花似錦、人聲如沸茂嗓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)述吸。三九已至忿族,卻和暖如春蝌矛,著一層夾襖步出監(jiān)牢的瞬間道批,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工入撒, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留隆豹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓茅逮,卻偏偏與公主長(zhǎng)得像璃赡,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子献雅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容