Docker3-使用 Docker 鏡像

在第一個筆記中我們已經(jīng)說過了 Docker 三大核心概念, 其中鏡像是最為重要的, 因?yàn)?Docker 運(yùn)行容器前需要本地存在對應(yīng)的鏡像, 如果鏡像沒有保存在本地, Docker 會嘗試從默認(rèn)鏡像倉庫下載, 用戶也可以通過配置, 使用自定義鏡像倉庫.

查詢鏡像

由于容器的創(chuàng)建需要鏡像, 那么我們就先說說如何查詢鏡像
我們使用 docker search 命令可以搜索遠(yuǎn)程倉庫共享的鏡像.
例如

docker search nginx
//輸出如下信息
NAME                          DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                         Official build of Nginx.                        6267      [OK]
jwilder/nginx-proxy           Automated Nginx reverse proxy for docker c...   1054                 [OK]
richarvey/nginx-php-fpm       Container running Nginx + PHP-FPM capable ...   392                  [OK]
webdevops/php-nginx           Nginx with PHP-FPM                              82                   [OK]
million12/nginx-php           Nginx + PHP-FPM 5.5, 5.6, 7.0 (NG), CentOS...   77                   [OK]
h3nrik/nginx-ldap             NGINX web server with LDAP/AD, SSL and pro...   38                   [OK]
bitnami/nginx                 Bitnami nginx Docker Image                      30                   [OK]
evild/alpine-nginx            Minimalistic Docker image with Nginx            16                   [OK]
funkygibbon/nginx-pagespeed   nginx + ngx_pagespeed + openssl on docker-...   11                   [OK]
webdevops/nginx               Nginx container                                 8                    [OK]
webdevops/php-nginx-dev       PHP with Nginx for Development (eg. with x...   7                    [OK]
blacklabelops/nginx           Dockerized Nginx Reverse Proxy Server.          5                    [OK]
1science/nginx                Nginx Docker images that include Consul Te...   4                    [OK]
frekele/nginx                 docker run --rm --name nginx -p 80:80 -p 4...   3                    [OK]
ixbox/nginx                   Nginx on Alpine Linux.                          3                    [OK]
dock0/nginx                   Arch container running nginx                    2                    [OK]
xataz/nginx                   Light nginx image                               2                    [OK]
servivum/nginx                Nginx Docker Image with Useful Tools            2                    [OK]
drupaldocker/nginx            NGINX for Drupal                                2                    [OK]
tozd/nginx                    Dockerized nginx.                               1                    [OK]
xutongle/nginx                nginx http                                      1                    [OK]
c4tech/nginx                  Several nginx images for web applications.      0                    [OK]
unblibraries/nginx            Baseline non-PHP nginx container                0                    [OK]
funkygibbon/nginx             nginx + openssl automated build, customisa...   0                    [OK]
watsco/nginx                  nginx:1.11-alpine                               0                    [OK]

可以看到返回了很多包含關(guān)鍵字的鏡像, 其中包括鏡像名字, 描述, 星級(表示該鏡像的歡迎程度), 是否官方創(chuàng)建, 是否自動創(chuàng)建.

注意: 默認(rèn)的輸出結(jié)果將按照星級評價進(jìn)行排序.

用的人越多星級就越高, 所以我們?nèi)绻幌氩榭吹偷男羌壴趺崔k呢?
我們可以通過 search命令的參數(shù)-s, --stars=X來進(jìn)行指定.

docker search -s 300 nginx
//輸出如下信息
Flag --stars has been deprecated, use --filter=stars=3 instead
NAME                      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                     Official build of Nginx.                        6267      [OK]
jwilder/nginx-proxy       Automated Nginx reverse proxy for docker c...   1054                 [OK]
richarvey/nginx-php-fpm   Container running Nginx + PHP-FPM capable ...   392                  [OK]

這樣就會輸出星級大于或等于300的鏡像.

可以看到我們查詢的鏡像中的描述信息被截斷顯示了, 這樣我們不是很方便了解這個鏡像, 所以我們需要將所有的描述進(jìn)行顯示; 我們可以使用--no-trunc=true|false來輸出詳細(xì)的描述信息.

docker search --no-trunc=true -s 300 nginx
//輸出如下信息
NAME                      DESCRIPTION                                                                      STARS     OFFICIAL   AUTOMATED
nginx                     Official build of Nginx.                                                         6267      [OK]
jwilder/nginx-proxy       Automated Nginx reverse proxy for docker containers                              1054                 [OK]
richarvey/nginx-php-fpm   Container running Nginx + PHP-FPM capable of pulling application code from git   392                  [OK]

還有一個參數(shù)的作用是僅顯示自動創(chuàng)建的鏡像, --automated=true|false

當(dāng)然我們也可以從 Docker Hub 網(wǎng)站搜索鏡像


獲取鏡像

本筆記前面, 我們已經(jīng)說過了, 容器運(yùn)行前提需要本地存在對應(yīng)的鏡像, 如果本地沒有保存鏡像, 那么就需要在倉庫下載.
可以使用docker pull命令直接從 Docker Hub鏡像源來下載鏡像, 該命令的格式為docker pull NAME[:TAG].

其中, NAME 是鏡像倉庫的名稱(用來區(qū)分鏡像), TAG 是鏡像的標(biāo)簽(往往用來表示版本信息). 通常情況下, 描述一個鏡像需要包括 "名稱+標(biāo)簽" 信息.

我們來實(shí)戰(zhàn)獲取一個鏡像

docker pull centos:6.8
//輸出如下信息
6.8: Pulling from library/centos
67f15db7c18f: Pull complete
Digest: sha256:37ee2dcd9a3a430136b566efb4aa1111ed332bfdef8b0de51a25d26891689fd7
Status: Downloaded newer image for centos:6.8

這樣我們就已經(jīng)下載下來了我們需要的鏡像.

如果不顯示指定 TAG, 則默認(rèn)會選擇 latest 標(biāo)簽, 這會下載倉庫中最新版本的鏡像.

docker pull centos
//輸出如下信息
Using default tag: latest
latest: Pulling from library/centos
d5e46245fe40: Pull complete
Digest: sha256:aebf12af704307dfa0079b3babdca8d7e8ff6564696882bcb5d11f1d461f9ee9
Status: Downloaded newer image for centos:latest

下面的截圖是我在 Docker Hub 查找的 CentOS 鏡像截圖, 方便大家理解.


可以看到有一個 TAG 為 latest 的.

注意: 一般來說, 鏡像的 latest 標(biāo)簽意味著該鏡像的內(nèi)容會跟蹤最新的非穩(wěn)定版本而發(fā)布, 內(nèi)容是不穩(wěn)定的.
從穩(wěn)定性上考慮, 不要在生產(chǎn)環(huán)境中忽略鏡像的標(biāo)簽信息或使用默認(rèn)的 latest 標(biāo)簽中的鏡像.

我們再下載一個鏡像 ubuntu 鏡像

docker pull ubuntu
//輸出如下信息
Using default tag: latest
latest: Pulling from library/ubuntu
75c416ea735c: Pull complete
c6ff40b6d658: Pull complete
a7050fc1f338: Pull complete
f0ffb5cf6ba9: Pull complete
be232718519c: Pull complete
Digest: sha256:a0ee7647e24c8494f1cf6b94f1a3cd127f423268293c25d924fbe18fd82db5a4
Status: Downloaded newer image for ubuntu:latest

下載過程中可以看出, 鏡像文件一般由若干層(layer)組成, 75c416ea735c這樣的串是層的唯一 id(實(shí)際上完整的 id 包括256比特, 由64個十六進(jìn)制字符串組成).

使用 docker pull 命令下載時會獲取輸出鏡像的各層信息. 當(dāng)不同的鏡像包括相同的層時, 本地僅存儲,層的一份內(nèi)容, 這樣減少了需要的存儲空間.

我們查詢鏡像的時候發(fā)現(xiàn), 查詢出了很多鏡像

docker search -s 300 nginx
//輸出如下信息
Flag --stars has been deprecated, use --filter=stars=3 instead
NAME                      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                     Official build of Nginx.                        6267      [OK]
jwilder/nginx-proxy       Automated Nginx reverse proxy for docker c...   1054                 [OK]
richarvey/nginx-php-fpm   Container running Nginx + PHP-FPM capable ...   392                  [OK]

例如jwilder/nginx-proxy, jwilder 屬于用戶名, nginx-proxy 屬于鏡像名.
當(dāng)你想將這些鏡像全部下載下來的時候, 可以使用-a參數(shù), 來下載我們查詢到的所有鏡像.

docker pull -a ubuntu

查看鏡像信息

當(dāng)我們電腦上的鏡像越來越多的時候, 我們怎么能知道我們的本地主機(jī)上有多少鏡像呢? 我們可以使用docker images命令來列出本地主機(jī)上的所有鏡像信息.

docker images
//輸出如下信息
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              d355ed3537e9        4 days ago          119 MB
hello-world         latest              1815c82652c0        10 days ago         1.84 kB
centos              latest              3bee3060bfc8        2 weeks ago         193 MB
centos              6.8                 0cd976dc0a98        9 months ago        195 MB

REPOSITORY: 來自于哪個倉庫, 比如centos倉庫用來保存centos系列的基礎(chǔ)鏡像.
TAG: 鏡像的標(biāo)簽信息, 比如6.8 latest用來標(biāo)注不同的版本信息. 標(biāo)簽只是標(biāo)志, 并不能標(biāo)識鏡像內(nèi)容.
IMAGE ID: 鏡像的 ID.
CREATED: 創(chuàng)建時間
SIZE: 鏡像大小, 優(yōu)秀的鏡像往往體積都非常小.

images 命令支持的參數(shù)
-a, --all=true|false: 顯示所有圖像(默認(rèn)不顯示中間圖像圖層). 默認(rèn)值為false
--digests=true|false: 顯示鏡像摘要. 默認(rèn)值為false.
還有其它的 大家可以使用docker images --helpman docker-images 命令查看

使用 inspect 命令查看詳細(xì)信息
使用docker inspect 命令可以獲取該鏡像的詳細(xì)信息, 包括制作者 適應(yīng)架構(gòu) 各層的數(shù)字摘要等.

docker inspect centos:6.8
//輸出信息
[
    {
        "Id": "sha256:0cd976dc0a9881f77d054ca36c8700c3d66ac77121a1869ad8223a53edf123e9",
        "RepoTags": [
            "centos:6.8"
        ],
        "RepoDigests": [
            "centos@sha256:37ee2dcd9a3a430136b566efb4aa1111ed332bfdef8b0de51a25d26891689fd7"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2016-08-30T18:20:34.565935321Z",
        "Container": "4a66b6a87804820f367b575e18d52e7227b8d3cb40fbe55e05871b70bd091641",
        "ContainerConfig": {
            "Hostname": "75ac91db8d44",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "#(nop) ",
                "CMD [\"/bin/bash\"]"
            ],
            "Image": "sha256:bfcabb206d5af74961b49d4584c4b16ef3658b05d5c969ed0f038a5c49d3296f",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "build-date": "2016-06-02",
                "license": "GPLv2",
                "name": "CentOS Base Image",
                "vendor": "CentOS"
            }
        },
        "DockerVersion": "1.12.1",
        "Author": "The CentOS Project <cloud-ops@centos.org>",
        "Config": {
            "Hostname": "75ac91db8d44",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/bash"
            ],
            "Image": "sha256:bfcabb206d5af74961b49d4584c4b16ef3658b05d5c969ed0f038a5c49d3296f",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "build-date": "2016-06-02",
                "license": "GPLv2",
                "name": "CentOS Base Image",
                "vendor": "CentOS"
            }
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 194545356,
        "VirtualSize": 194545356,
        "GraphDriver": {
            "Name": "devicemapper",
            "Data": {
                "DeviceId": "7",
                "DeviceName": "docker-253:1-256921-57c4711bc6f1fbc6d91e79ffa7e1428bd57c55001d905d7734a7e028dddd5f81",
                "DeviceSize": "10737418240"
            }
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:b1b065555b8aba5ae83d5d59d611a6b0cc470e9c14b7e4bee081398309e474a5"
            ]
        }
    }
]

如果我們只要其中一項(xiàng)內(nèi)容時, 可以使用-f來指定, 例如,獲取鏡像的Architecture:

docker inspect centos:6.8 -f {{".Architecture"}}
//輸出信息
amd64

**使用 history 命令查看鏡像歷史
既然鏡像由多個層組成, 那么怎么知道各個層的具體內(nèi)容是什么呢? 可以使用history命令, 該命令列出各個層的創(chuàng)建信息.

docker history centos:6.8
//輸出信息
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
0cd976dc0a98        9 months ago        /bin/sh -c #(nop)  CMD ["/bin/bash"]            0 B
<missing>           9 months ago        /bin/sh -c #(nop)  LABEL name=CentOS Base ...   0 B
<missing>           9 months ago        /bin/sh -c #(nop) ADD file:beeefa390db7bc0...   195 MB
<missing>           9 months ago        /bin/sh -c #(nop)  MAINTAINER The CentOS P...   0 B

刪除鏡像

使用 docker rmi 命令可以刪除鏡像, 命令格式為docker rmi IMAGE [IMAGE...], 其中IMAGE可以為標(biāo)簽或 ID.

docker rmi ubuntu:latest
//輸出信息
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:a0ee7647e24c8494f1cf6b94f1a3cd127f423268293c25d924fbe18fd82db5a4
Deleted: sha256:d355ed3537e94e76389fd78b77241eeba58a11b8faa501594bc82d723eb1c7f2
Deleted: sha256:dd864b96a38e849779c42a04159bbb39c7ab47253bf222049b471d8f26b60d14
Deleted: sha256:80e85c818fa0447c96a42501ca7457ad83e5834aa76f22c366342106889b7411
Deleted: sha256:11a2a269cf6ec2cefcb4e24370b8b2d7a4875450bafd3a70bd42eb787481d798
Deleted: sha256:1118f33a0ee7a874a04318248a886b2bdaf44cba286644ab7ded870aefe64b62
Deleted: sha256:cb11ba6054003d39da5c681006ea346e04fb3444086331176bf57255f149c670

創(chuàng)建鏡像

創(chuàng)建鏡像的方法主要有三種: 基于已有鏡像的容器創(chuàng)建 基于本地模板導(dǎo)入 基于 Dockerfile 創(chuàng)建
基于已有鏡像的容器創(chuàng)建
該方法主要是使用 docker commit命令. 命令格式為 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] 主要選項(xiàng)包括:
-a, --author="": 作者信息.
-c, --change=[]: 提交的時候執(zhí)行 Dockerfile 指令, 包括 CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR等.
-m, --message="": 提交消息
-p, --pause=true: 提交時暫停容器運(yùn)行.

我們使用centos 來創(chuàng)建或啟動一個容器, 并在容器中創(chuàng)建一個文件夾之后推出

docker run -it centos:6.8
[root@080ce2211b8a /]# mkdir test
[root@080ce2211b8a /]# exit

此刻該容器跟原 centos:6.8 鏡像相比, 已經(jīng)發(fā)生改變, 可以使用docker commit 命令來提交為一個新的鏡像.

docker commit 的語法格式為:
docker commit [選項(xiàng)] <容器ID或容器名> [<倉庫名>[:<標(biāo)簽>]]

容器名是 啟動容器時通過--name所指定
容器ID是 root@080ce2211b8a 中的 080ce2211b8a

 docker commit \
>     --author "作者" \
>     --message "說明" \
> 080ce2211b8a \
> test:0.1
sha256:bfc1e916eb6e787afab5be9e3b25ea29e799d2bcd7b461e22d666b0ec406606a

順利的話, 會返回新創(chuàng)建的鏡像的 ID 信息, 例如bfc1e916eb6e787afab5be9e3b25ea29e799d2bcd7b461e22d666b0ec406606a

基于本地模板導(dǎo)入
用戶也可以直接從一個操作系統(tǒng)模板文件導(dǎo)入一個鏡像, 主要使用 docker import 命令. 命令格式為 docker import [OPTIONS] file|URL|-[REPOSITORY[:TAG]]
要直接導(dǎo)入一個鏡像, 可以使用 OpenVZ 提供的模板來創(chuàng)建, 或者用其他已導(dǎo)出的鏡像模板來創(chuàng)建.

例如, 下載了 ubuntu-14.04 的模板壓縮包, 之后使用以下命令導(dǎo)入:

$ cat ubuntu-14.04-x86_64-minimal.tar.gz | docker import - ubuntu:14.04

然后查看新導(dǎo)入的鏡像, 會發(fā)現(xiàn)她們已經(jīng)在本地存在了.


導(dǎo)出和導(dǎo)入鏡像

用戶可以使用 docker savedocker load命令來導(dǎo)出和導(dǎo)入鏡像.

docker save -o ubuntu_14.04.tar ubuntu:14.04
docker load --input ubuntu_14.04.tar
或:
docker load < ubuntu_14.04.tar

上傳鏡像

可以使用 docker push 命令上傳鏡像到倉庫, 默認(rèn)上傳到Docker Hub官方倉庫.

docker push NAME[:TAG] | [REGISTRY_HOST[:REGISTRY_PORY]/]NAME[:TAG]

在第一次上傳時, 會提示輸入登錄信息或進(jìn)行注冊.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末仓技,一起剝皮案震驚了整個濱河市氛什,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌五嫂,老刑警劉巖肄满,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡只磷,警方通過查閱死者的電腦和手機(jī)经磅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钮追,“玉大人预厌,你說我怎么就攤上這事≡模” “怎么了轧叽?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵黍判,是天一觀的道長忌怎。 經(jīng)常有香客問我,道長受楼,這世上最難降的妖魔是什么甥角? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任网严,我火速辦了婚禮,結(jié)果婚禮上蜈膨,老公的妹妹穿的比我還像新娘屿笼。我一直安慰自己,他們只是感情好翁巍,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布驴一。 她就那樣靜靜地躺著,像睡著了一般灶壶。 火紅的嫁衣襯著肌膚如雪肝断。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天驰凛,我揣著相機(jī)與錄音胸懈,去河邊找鬼。 笑死恰响,一個胖子當(dāng)著我的面吹牛趣钱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播胚宦,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼首有,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了枢劝?” 一聲冷哼從身側(cè)響起井联,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎您旁,沒想到半個月后烙常,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鹤盒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年蚕脏,在試婚紗的時候發(fā)現(xiàn)自己被綠了侦副。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蝗锥,死狀恐怖跃洛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情终议,我是刑警寧澤汇竭,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站穴张,受9級特大地震影響细燎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜皂甘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一玻驻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧偿枕,春花似錦璧瞬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至墓塌,卻和暖如春瘟忱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背苫幢。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工访诱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人韩肝。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓触菜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親哀峻。 傳聞我的和親對象是個殘疾皇子涡相,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評論 2 354

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

  • Docker — 云時代的程序分發(fā)方式 要說最近一年云計算業(yè)界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,532評論 15 147
  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一谜诫、Docker 簡介 Docke...
    極客圈閱讀 10,499評論 0 120
  • 0x01 核心概念 Docker鏡像類似于虛擬機(jī)鏡像漾峡,可以理解為一個面向Docker引擎的只讀模板攻旦,包含了文件系統(tǒng)...
    閑云逸心閱讀 4,717評論 0 9
  • 0. 前言 docker是什么喻旷?docker是用GO語言開發(fā)的應(yīng)用容器引擎,基于容器化牢屋,沙箱機(jī)制的應(yīng)用部署技術(shù)且预〔郯溃可...
    sessionboy閱讀 3,854評論 2 49
  • 寫這個東東的時候,正在讀《游戲力》這本書锋谐,同時那個階段經(jīng)常立足于育兒角度來思考繪本故事能帶給我們什么啟示遍尺,遇上《給...
    山雨open爸閱讀 2,199評論 0 1