卷(volumes) 和 綁定掛載(bind mounts) 容許您在主機和容器之間共享文件,這樣即便在容器中止後也能夠持久存儲數據。html
若是在 Linux 上運行 Docker,那麼還有第三種選擇:tmpfs
掛載。當您建立帶有 tmpfs
掛載的容器時,容器能夠在容器的可寫層以外建立文件。nginx
與卷和綁定掛載不一樣,tmpfs
掛載是臨時的,只存留在主機內存中。當容器中止時,tmpfs
掛載將被刪除,在那裏寫入的文件不會被持久化。docker
這對於臨時存儲您不想在主機或容器可寫層中持久存儲的敏感文件很是有用。bash
tmpfs
掛載。--tmpfs
或 --mount
標記最初,--tmpfs
標記用於獨立容器,--mount
標記用於集羣服務。可是從 Docker 17.06 開始,您還能夠將 --mount
與獨立容器一塊兒使用。一般,--mount
標記表達更加明確和冗長。最大的區別是,--tmpfs
標記不支持任何可配置的選項。app
--tmpfs
: 設置 tmpfs
掛載不容許您指定任何可配置選項,而且只能與獨立容器一塊兒使用。--mount
:由多個鍵-值對組成,,每一個鍵-值對由一個 <key>=<value>
元組組成。--mount
語法比 --tmpfs
更冗長:
type
),能夠是 bind
、volume
或者 tmpfs
。本主題討論 tmpfs
,所以類型(type
)始終爲 tmpfs
。destination
),將容器中 tmpfs
掛載設置的路徑做爲其值。能夠用 destination
、dst
或者 target
來指定。tmpfs-size
和 tmpfs-mode
選項。請查看下文的 指定 tmpfs 選項。下面的示例儘量同時展現 --mount
和 --tmpfs
兩種語法,而且先展現 --mount
。spa
--tmpfs
和 --mount
行爲之間的差別--tmpfs
標記不容許指定任何可配置選項。--tmpfs
標記不能用於集羣服務。對於集羣服務,您必須使用 --mount
。要在容器中使用 tmpfs
掛載, 請使用 --tmpfs
標記, 或者使用帶有 type=tmpfs
和 destination
選項的 --mount
標記。沒有用於 tmpfs
掛載的源(source
)。code
下面的示例在 Nginx 容器中的 /app
建立一個 tmpfs
掛載。第一個例子使用 --mount
標記,第二個使用 --tmpfs
標記。htm
--mount
:blog
$ docker run -d \ -it \ --name tmptest \ --mount type=tmpfs,destination=/app \ nginx:latest
--tmpfs
:內存
$ docker run -d \ -it \ --name tmptest \ --tmpfs /app \ nginx:latest
經過運行 docker container inspect tmptest
來驗證掛載是不是 tmpfs
掛載,查看 Mounts
部分:
"Tmpfs": { "/app": "" },
刪除容器:
$ docker container stop tmptest $ docker container rm tmptest
tmpfs
掛載容許兩個配置選項,兩個選項都不是必需的。 若是須要指定這些選項,則必須使用 --mount
標記,由於 --tmpfs
標記不支持。
選項 | 描述 |
---|---|
tmpfs-size |
tmpfs 掛載的大小(以字節爲單位)。默認無限制。 |
tmpfs-mode |
tmpfs 的八進制文件模式。例如,700 或 0770 。默認爲 1777 或全局可寫。 |
下面的示例將 tmpfs-mode
設置爲 1770
,所以在容器中它不是全局可讀的。
docker run -d \ -it \ --name tmptest \ --mount type=tmpfs,destination=/app,tmpfs-mode=1770 \ nginx:latest