日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

docker 实践

發布時間:2024/2/28 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker 实践 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.? 基本概念

Docker 包括三個基本概念

  • 鏡像(Image)

    • Docker 鏡像 是一個特殊的文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數(如匿名卷、環境變量、用戶等)。鏡像 不包含 任何動態數據,其內容在構建之后也不會被改變。

  • 容器(Container)

    • 鏡像(Image)和容器(Container)的關系,就像是面向對象程序設計中的 類 和 實例 一樣,鏡像是靜態的定義,容器是鏡像運行時的實體。容器可以被創建、啟動、停止、刪除、暫停等。

  • 倉庫(Repository)

    • 鏡像構建完成后,可以很容易的在當前宿主機上運行,但是,如果需要在其它服務器上使用這個鏡像,我們就需要一個集中的存儲、分發鏡像的服務,Docker Registry 就是這樣的服務。

      一個 Docker Registry 中可以包含多個 倉庫(Repository);每個倉庫可以包含多個 標簽(Tag);每個標簽對應一個鏡像。

      通常,一個倉庫會包含同一個軟件不同版本的鏡像,而標簽就常用于對應該軟件的各個版本。我們可以通過 <倉庫名>:<標簽> 的格式來指定具體是這個軟件哪個版本的鏡像。如果不給出標簽,將以 latest 作為默認標簽。

      以 Ubuntu 鏡像 為例,ubuntu 是倉庫的名字,其內包含有不同的版本標簽,如,16.04, 18.04。我們可以通過 ubuntu:16.04,或者 ubuntu:18.04 來具體指定所需哪個版本的鏡像。如果忽略了標簽,比如 ubuntu,那將視為 ubuntu:latest。

      倉庫名經常以 兩段式路徑 形式出現,比如 jwilder/nginx-proxy,前者往往意味著 Docker Registry 多用戶環境下的用戶名,后者則往往是對應的軟件名。但這并非絕對,取決于所使用的具體 Docker Registry 的軟件或服務。

2. 獲取鏡像

? ? 從 Docker 鏡像倉庫獲取鏡像的命令是 docker pull。其命令格式為:

docker pull [選項] [Docker Registry 地址[:端口號]/]倉庫名[:標簽]

?

具體的選項可以通過 docker pull --help 命令看到,這里我們說一下鏡像名稱的格式。

  • Docker 鏡像倉庫地址:地址的格式一般是 <域名/IP>[:端口號]。默認地址是 Docker Hub(docker.io)。

  • 倉庫名:如之前所說,這里的倉庫名是兩段式名稱,即 <用戶名>/<軟件名>。對于 Docker Hub,如果不給出用戶名,則默認為 library,也就是官方鏡像。

例如:

[root@localhost ~]# docker pull hello-world Using default tag: latest Trying to pull repository docker.io/library/hello-world ... latest: Pulling from docker.io/library/hello-world Digest: sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c Status: Image is up to date for docker.io/hello-world:latest

?

3. 運行鏡像

有了鏡像后,我們就能夠以這個鏡像為基礎啟動并運行一個容器

$ docker run -it --rm ubuntu bashroot@11626e421dd2:/# cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.2 LTS" root@11626e421dd2:/# exit exit [root@localhost ~]#

docker run 就是運行容器的命令,具體格式我們會在 容器 一節進行詳細講解,我們這里簡要的說明一下上面用到的參數。

  • -it:這是兩個參數,一個是 -i:交互式操作,一個是 -t 終端。我們這里打算進入 bash 執行一些命令并查看返回結果,因此我們需要交互式終端。

  • --rm:這個參數是說容器退出后隨之將其刪除。默認情況下,為了排障需求,退出的容器并不會立即刪除,除非手動 docker rm。我們這里只是隨便執行個命令,看看結果,不需要排障和保留結果,因此使用 --rm 可以避免浪費空間。

  • ubuntu:18.04:這是指用 ubuntu:18.04 鏡像為基礎來啟動容器。

  • bash:放在鏡像名后的是 命令,這里我們希望有個交互式 Shell,因此用的是 bash。

進入容器后,我們可以在 Shell 下操作,執行任何所需的命令

通過 exit 退出這個容器。

4. 列出鏡像

docker image ls [root@localhost ~]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE xxx/myun/yyy l.0 a44423f447a3 2 weeks ago 497 MB docker.io/ubuntu latest 7e0aa2d69a15 4 weeks ago 72.7 MB docker.io/hello-world latest d1165f221234 2 months ago 13.3 kB xxx/myun/zzz 4f475c1f 77a7d51744ef 5 months ago 648 MB

列表包含了 倉庫名、標簽、鏡像 ID、創建時間 以及 所占用的空間。

其中倉庫名、標簽在之前的基礎概念章節已經介紹過了。鏡像 ID 則是鏡像的唯一標識,一個鏡像可以對應多個 標簽。因此,在上面的例子中,我們可以看到 ubuntu:18.04 和 ubuntu:bionic 擁有相同的 ID,因為它們對應的是同一個鏡像。

一般來說,虛懸鏡像已經失去了存在的價值,是可以隨意刪除的,可以用下面的命令刪除

docker image prune

5. 刪除本地鏡像

如果要刪除本地的鏡像,可以使用 docker image rm 命令,其格式為:

$ docker image rm [選項] <鏡像1> [<鏡像2> ...]

?

用 ID、鏡像名、摘要刪除鏡像

其中,<鏡像> 可以是 鏡像短 ID、鏡像長 ID、鏡像名 或者 鏡像摘要。

也可以用鏡像名,也就是 <倉庫名>:<標簽>,來刪除鏡像。

?

6.?使用 Dockerfile 定制鏡像

Dockerfile 是一個文本文件,其內包含了一條條的 指令(Instruction),每一條指令構建一層,因此每一條指令的內容,就是描述該層應當如何構建。

  • FROM 指定基礎鏡像
    • 所謂定制鏡像,那一定是以一個鏡像為基礎,在其上進行定制。就像我們之前運行了一個 nginx 鏡像的容器,再進行修改一樣,基礎鏡像是必須指定的。而 FROM 就是指定 基礎鏡像,因此一個 Dockerfile 中 FROM 是必備的指令,并且必須是第一條指令。
  • RUN執行命令
    • RUN 指令是用來執行命令行命令的。由于命令行的強大能力,RUN 指令在定制鏡像時是最常用的指令之一。其格式有兩種:

      • shell 格式:RUN <命令>,就像直接在命令行中輸入的命令一樣。剛才寫的 Dockerfile 中的 RUN 指令就是這種格式

      • exec 格式:RUN ["可執行文件", "參數1", "參數2"],這更像是函數調用中的格式。

      • Dockerfile 支持 Shell 類的行尾添加 \ 的命令換行方式,以及行首 # 進行注釋的格式

  • docker build 命令進行鏡像構建

    • docker build [選項] <上下文路徑/URL/->

      ?

?

?

?

3. docker 命令

在https://hub.docker.com/repository/docker/xxx/rt_prj?中創建一個repository:rt_prj, 選擇private,xxx 默認為username,

上傳repository命令為:

docker push xxx/rt_prj:tagname

?

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的docker 实践的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 激情婷婷综合 | 激情 小说 亚洲 图片 伦 | 爱爱视频一区二区 | 91精品国产91久久久久久吃药 | 一区二区av在线 | 天堂а在线中文在线新版 | 台湾佬美性中文 | 国产色99| 日韩精品一区二区不卡 | 男人在线网站 | 天天色播| 黄色网址免费 | 青青草97国产精品免费观看 | 国产xxx视频| 91亚洲国产精品 | 国产卡一卡二卡三无线乱码新区 | 成 人片 黄 色 大 片 | 香蕉视频性 | 综合久久网 | 久久手机视频 | 久久成人人人人精品欧 | 中文字幕一区二区三区人妻不卡 | 日本电车痴汉 | 超污视频在线观看 | av播播| 午夜在线一区二区三区 | 伊人222成人综合网 亚洲日本中文 | 少妇高潮久久久久久潘金莲 | 日日碰狠狠添天天爽无码 | 麻豆午夜 | 影音先锋黄色资源 | wwwsss在线观看 | 69看片 | 91精品国产综合久久精品图片 | 亚洲AV无码国产日韩久久 | 午夜免费福利小电影 | 宅宅少妇无码 | 欧美国产综合 | 一级片一区二区三区 | 亚洲综合精品视频 | 美女扒开腿让人桶爽 | 综合激情四射 | 国产视频麻豆 | 欧美极品videos精品 | 成人亚洲综合 | 中文字幕五区 | 国产成人在线播放视频 | 91禁动漫在线 | 宅男的天堂| 夜夜爽日日澡人人添 | 中文精品在线 | 亚洲一区二区三区欧美 | 伊人久久av | 国产三级三级三级 | 国产一区在线免费观看 | 一区二区乱码 | 亚洲第九页 | 久久精品国产亚洲av麻豆 | 婷婷在线综合 | 福利在线一区二区 | 国产精品日韩一区二区 | 免费av观看网站 | 久久毛片网站 | 99久久久无码国产精品衣服 | jizz免费观看 | 久久无码国产视频 | 国产最新毛片 | youjizz在线视频| 综合一区在线 | 免费在线观看网址入口 | 国产情侣在线播放 | 亚洲最大的成人网 | 无码人妻精品一区二区蜜桃色欲 | 成人手机在线视频 | 国产精品刘玥久久一区 | 九一国产在线观看 | 国产精品人 | 国产成人欧美一区二区三区91 | 中文字幕第七页 | 青草99| 亚洲国产高清视频 | 处女朱莉第一次 | 亚洲啪啪网址 | 国精产品一区 | 99国产超薄肉色丝袜交足 | 那里有毛片看 | 国产极品美女在线 | 欧美人与性动交α欧美片 | 天天色综| 国产乱真实合集 | 中文精品一区二区三区 | 国产剧情av在线 | 亚洲ⅴ国产v天堂a无码二区 | 快色av| 99产精品成人啪免费网站 | 中文字幕在线网 | 私人av | 成人综合站 | 亚洲一区二区免费看 |